性能测试工具Jmeter学习和使用

这篇具有很好参考价值的文章主要介绍了性能测试工具Jmeter学习和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

性能测试工具Jmeter学习和使用

摘要: 在日常的开发中,软件测试人员能够对程序进行功能上的测试以确保用户的正常使用,但对于一个需要发布在服务器上供多用户同时使用的软件而言,还需要模拟多用户同时使用的场景,对站点进行性能测试。但安排100个人同时访问测试站点显然是不可行的,此时就需要一个像Jmeter这样的软件测试工具来模拟用户行为,进行性能测试。同时也可能出现一个进程中多个线程同时运行的情况,此时对其性能进行测试也是一个软件测试人员应当掌握的。

关键字: Jmeter,性能测试,测试计划

1 Jmeter安装

1.1 Jmeter介绍

Apache JMeter是一款开源测试工具,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资源的性能,Jmeter可用于模拟大量负载来测试一台服务器、网络或者对象的健壮性或者分析不同负载下的整体性能。

Jmeter相较LoadRunner而言极为小巧,无需复杂的安装,但因为它是使用Java开发的工具,需要JDK环境。其功能强大,设计之初只是一个简单的web性能测试工具,但经过不段的更新扩展,现在可以完成数据库、FTP、LDAP、WebService等方面的测试。扩展性极强。它可以测试性能、接口、甚至可以通过加载浏览器驱动完成UI自动化的工作。

Jmeter不支持IP欺骗,这一点比起LoadRunner略显不足,而且Jmeter无法验证JS程序与页面UI,须与Selenium一起才能完成web2.0应用的测试。

1.2 安装

由于Jmeter是使用Java编写的,在安装前必须先确保电脑有Java的JDK和JRE。Java环境配置完成后,到官网下载所需要的Jmeter版本得到一个压缩包,在自己选择的文件目录下解压即可。

1.3 运行

进入解压文件夹内部的bin目录下,有ApacheJMeter.jar、jmeter.bat、jmeter.sh三个文件都可以用来启动Jmeter。其中,ApacheJMeter.jar是图形化启动入口,在各系统中都能运行,jmeter.bat可以在Windows系统下启动,jmeter.sh可以在Linux下命令行启动。但后两者启动后会出现一个控制台和图形界面,在使用图形界面的过程中必须一直保持开启控制台。为方便使用,建议由ApacheJMeter创建快捷方式到桌面。

在安装好后进行使用时可能会出现中文乱码的问题,将bin目录下的jmeter.properties第1062行代码注释取消,编码格式改为utf-8即可。

2 测试计划

进行测试前,在创建测试计划之后将测试计划进行保存,Jmeter可以保存整个测试计划或仅保存其中的一部分,保存时选择要保存的部分右键另存为即可。

2.1 线程组

线程组元素是任何测试计划的起点。所有控制器和取样器必须在线程组下。其他元素(例如,侦听器)可以直接放置在测试计划下,在这种情况下,它们将应用于所有线程组。顾名思义,线程组元素控制JMeter将用于执行测试的线程数。线程组的控件可以用来设置线程数、加速时还有执行测试的次数。

每个线程将完整地执行测试计划,并且完全独立于其他测试线程。多个线程用于模拟与服务器应用程序的并发连接。

在创建线程组时,会发现线程组分为了setUp线程组、tearUp线程组和线程组,查阅资料后对三种线程组进行简单介绍。

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 1 线程组

1)setUp线程组

一种特殊类型的线程组,可用于执行预测试操作。位于该线程组的线程会被先执行,等该线程组的线程全都执行完毕后再去执行其他线程组的线程。

2)tearUp线程组

一种特殊类型的线程组,可用于执行测试后动作。在其他线程组的线程都完成后,才会执行该线程组的线程。

3)线程组

这个就是我们通常添加运行的线程。通俗的讲一个线程组,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。

2.2取样器

取样器被用来模拟用户的操作,实现向服务器或站点发出HTTP请求、WebService(SOAP/XML-RPC Request)请求或者Java请求等功能。我们可以把HTTP请求元件看成是一个没有界面的浏览器,它可以发送HTTP请求,接收服务器的响应数据。取样器是测试中向服务器发送请求、记录响应信息、记录响应时间的最小单元。JMeter提供了多种不同的取样器。如HTTP请求、FTP请求、JUnit请求、SMTP请求等。

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 2 取样器类型

2.3 监听器

监听器提供对JMeter运行时JMeter收集的有关测试用例的信息的访问。最常用的应该是“查看结果树”侦听器,用于显示取样器请求和响应的详细信息,包括每个线程的结果都可以在结果树中查看。

但使用时结果树只能查看与它同级别或低级别目录下的测试结果。

2.4 断言

断言用来验证结果是否正确,将一个预设的结果与实际结果匹配,匹配则成功,反之则失败。断言可以清楚地展示结果是否符合预期,方便测试人员快速地处理结果信息。

2.5 定时器

默认情况下,JMeter线程按顺序执行采样器而不会暂停。我们建议您通过将可用计时器之一添加到您的线程组来指定延迟。如果您不添加延迟,JMeter 可能会在很短的时间内发出过多的请求,从而使您的服务器不堪重负。

计时器可以使JMeter的每个采样器采样之前有一定的延迟时间。

如果您选择将多个计时器添加到线程组,JMeter 将获取计时器的总和并在执行计时器适用的采样器之前暂停该时间量。定时器可以作为采样器或控制器的子级添加,以限制它们应用到的采样器。

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 3 定时器类型

2.6 执行顺序

配置元素、预处理器、计时器、取样器、后处理器(除非SampleResult为null)、断言(除非SampleResult为null)、监听器(除非SampleResult为null)。

具体的区别在于计时器、断言、预处理器和后处理器只有在有适用的采样器时才被处理。逻辑控制器和采样器按照出现的顺序进行处理。其他测试元素根据其发现范围和测试元素的类型进行处理。[在一种类型中,元素按照它们在树中出现的顺序进行处理]。

例如,在以下测试计划中:

  • 控制器
    • n 后处理器1
    • n 采样器1
    • n 采样器2
    • n 计时器1
    • n 断言1
    • n 预处理器1
    • n 计时器2
    • n 后处理器2

执行顺序为:

预处理器1->计时器1->计时器2->采样器1->后处理器1->后处理器2->断言1->预处理器1->计时器1->计时器2->采样器2->后处理器1->后处理器2->断言1

3 测试实例

设置了HTTP请求的默认值。由于所测试的项目是本人所编写的运行在本地端口的项目,所以其路径开头都是类似的http://192.168.43.127:8080/,其遵守的协议、IP地址和端口号乃至请求方式在很多情况下都是一致的,顾设置了HTTP请求的默认值,使得在之后的HTTP请求访问中都不在需要填写已设置默认值的信息栏,能够简化一些重复性的操作。

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 4 设置请求默认值

填写HTTP请求,由于编写的姓名路径比较简单,所以一个请求中没有无需填写路径,另一个请求下的路径只有一个user和不同的端口号9090.

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 5 HTTP请求HOME Page

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 6 后台数据请求

具体的查询结果在下图中的结果树部分已经详细显示,如图:

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 7 后台数据请求结果

性能测试工具Jmeter学习和使用,# 软件质量保障与测试,测试工具,jmeter,学习

图 8 HomePage请求结果

4 与LoadRunner的比较

角度 Jmeter LoadRunner
价格 开源软件,无需支付任何费用 商业软件,需支付相应费用以开通正版软件商品
安装 只需要将安装包解压,然后配置好相对的环境变量即可使用。简单快捷。 安装环境比较严谨,安装过程中可能会出现各种各样的问题报错
是否有IP欺骗功能
报表设计 报表较少,对于分析性能不足以作为依据,需要在相关的服务器上另外写脚本记录服务器性能 十分齐全,对分析性能不足时能提供很多的依据
性能配置 主要通过增加线程组的数量,或者设置循环的次数来达到增加并发用户 可以通过Controller场景设置进行配置达到配置不同的性能测试需求
是否适用于web测试 可以做web程序的功能测试,利用Jmeter中的样本取样,可以做灰盒测试 可以,但相较而言更加的复杂,故主要用于作性能测试
文档支持 Jmeter为开源软件,官方的文档比起专业的测试软件要略差一些,需要有自己的理解 作为商业软件,有开发公司的技术支持和网上的大量资料

5 实验感想

在目前接触到的常见的开发中,对于一个站点的性能测试一直是目前的我们所了解到的测试的死角。学生阶段还处在开发与纠错的阶段,对于只能完成一个简单网页的学生而言,性能方面的测试虽然可能还比较陌生,但这并不能代表其重要性就如所知晓的一样低。当前的学习其实还不足以掌握Jmeter各种操作,还能说有一扇关于性能测试的门已经被推开,但内里的情况还需自己去探索。

参考文献

的我们所了解到的测试的死角。学生阶段还处在开发与纠错的阶段,对于只能完成一个简单网页的学生而言,性能方面的测试虽然可能还比较陌生,但这并不能代表其重要性就如所知晓的一样低。当前的学习其实还不足以掌握Jmeter各种操作,还能说有一扇关于性能测试的门已经被推开,但内里的情况还需自己去探索。

参考文献

[1]. JMeter用户手册,https://dlcdn.apache.org//jmeter/,2022年12月25日文章来源地址https://www.toymoban.com/news/detail-800252.html

到了这里,关于性能测试工具Jmeter学习和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JMeter性能测试工具详解

    1、JMeter简介 Meter 是轻量级的接口性能测试工具,同时具备一定程度的接口自动化测试能力。 JMeter 支持多协议,其中较适合测试使用公有协议(如 HTTP、JDBC 等)的服务或模块,特别适合 B/S 结构的后台性能系统。 JMeter 有大量第三方插件,也可以比较方便的编写适合自己使用

    2023年04月08日
    浏览(56)
  • 【测试工具】JMeter学习 —— Badboy使用和录制

    在说JMeter录制前,先了解学习Badboy录制; Badboy是一个第三方浏览器模拟工具,有录制回放功能; 可进行调试,也可进行自动化测试; Badboy录制脚本直接可以导出为.jmx格式,正好是JMeter的脚本保存格式,这正是我们想要的; jmx其实本质是一个XML格式文件; Request方式; Navi

    2024年02月08日
    浏览(62)
  • 性能测试—Jmeter工具

    开源平台 :metersphere 1. 术语介绍 响应时间(Response time) :对请求作出响应所需要的时间。 在互联网上对于用户响应时间,有一个普遍的标准。 2/5/10秒 原则。 并发用户数(concurrent users) :在同一时间段内访问系统的用户数量。 吞吐量(Throughput) :单位时间内系统处理的客户请求

    2024年02月13日
    浏览(51)
  • 自动化测试工具之 Jmeter性能测试

    1.性能测试概念: 通过自动化测试工具模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试 2.性能测试条件 系统基础功能测试验证完成 系统趋于稳定 3.性能测试基本流程 需求分析 (1)系统信息调研 (2)业务信息调研 (3)性能需求评估   判断是否进行

    2023年04月09日
    浏览(66)
  • 性能测试工具 Jmeter 测试 JMS (Java Message Service)/ActiveMQ 性能

    目录 前言 ActiveMQ 介绍 准备工作 编写jndi.properties添加到ApacheJMeter.jar 中 下载 ActiveMQ 配置 Jmeter 进行测试 点对点 (Queues 队列)

    2024年02月15日
    浏览(56)
  • 性能测试工具 Jmeter 做 Http 接口测试 :编写自定义函数

    目录 一、 前言 二、 编写自定义函数的步骤 1. 新建一个工程,导入 jmeter jar 包。 2. 新建 package:stressTest.functions 3. 新建一个类继承 AbstractFunction,重写以下方法: 4. 打包 5. 将打出来的 jar 包拷贝至 jmeter 的目录: 6. 运行

    2024年02月15日
    浏览(48)
  • 【测试设计】性能测试工具选择:wrk?jmeter?locust?还是LR?

    目录 前言 wrk 优点 缺点 jmeter 优点 缺点 locust 优点 缺点 总结 资料获取方法 当你想做性能测试的时候,你会选择什么样的测试工具呢?是会选择wrk?jmeter?locust?还是loadrunner呢? 今天,笔者将根据自己使用经验,针对jmeter、locust、wrk和loadrunner常用的性能测试工具进行简单介

    2024年02月14日
    浏览(53)
  • 阶段七第二章性能测试工具JMeter参数化

    1.JMeter参数化常用方式 · 用户定义的变量 · 用户参数 · CSV Data Set Config · 函数 2.用户定义的变量 说明:全局参数 所有用户读取的变量值相同 添加方式:测试计划线程组-配置元件-用户定义的变量 参数设置: 参数名:参数值 在HTTP取样器中应用:${参数名} 2.1场景 ·请求:h

    2024年01月19日
    浏览(56)
  • 适合程序员的DB性能测试工具 JMeter

    背景 1、想要一款既要能压数到mysql,又要能压数到postGre,还要能压数到oracle的自动化工具 2、能够很容易编写insert sql(因为需要指定表和指定字段类型压数据),然后点击运行按钮后,就能直接运行;不要写应用代码,因为我比较懒 3、可以指定测试时间,或者TPS等执行时行

    2024年02月12日
    浏览(63)
  • 性能测试工具 jmeter 录制脚本,传递 cookie,循环执行接口

    目录 前言: 代理录制脚本 循环重复添加接口 登录并传递 cookie 给新建产品接口 循环执行脚本  在使用JMeter进行性能测试时,录制脚本是一种常用的方法。录制脚本可以帮助你捕获和重放用户与应用程序之间的交互,以模拟真实的用户行为。

    2024年02月16日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包