【性能测试】Jmeter下载安装、环境配置-小白使用手册

一:引入

1:软件介绍

JMeter是Apache组织基于Java开发的压⼒测试⼯具,⽤于对软件做性能测试

2:工作原理
3:安装Jmeter
4: 安装 JDK

配置 JAVA_HOME 环境变量步骤: (建议把软件安装在其他盘,不要安装在系统盘)

  1. 找到 JDK 安装路径

    • 默认安装路径:C:\Program Files\Java\jdk-xx.x.x(xx.x.x 为版本号)

    • 例如:C:\Program Files\Java\jdk-17.0.8

  2. 打开系统属性

    • 右键点击「此电脑」→ 选择「属性」

    • 点击左侧「高级系统设置」

    • 在弹出的窗口中点击「环境变量」

  3. 添加系统变量

    • 在「系统变量」区域点击「新建」

    • 变量名:JAVA_HOME

    • 变量值:(填写您的 JDK 安装路径)

      • 例如:C:\Program Files\Java\jdk-17.0.8
    • 点击「确定」

  4. 配置 Path 变量

    • 在「系统变量」区域找到 Path 变量,点击「编辑」

    • 点击「新建」,添加:%JAVA_HOME%\bin

    • 点击「确定」保存

  5. 验证配置

    • 打开命令提示符(CMD)

    • 输入命令:java -version

    • 如果显示 Java 版本信息,说明配置成功

4:启动方式
(1)命令⾏启动

这里安装的是5.6版本,版本不影响启动方式,在用户菜单中搜索环境变量

然后windows+r 回车键 ------打开命令操作,输入jmeter,就可以启动我们的软件了

(2)手动启动

找到安装文件的目录

5:语言配置

找到jmeter.properties这个文件,用记事本打开,修改language=zh_CN

二:基础使用

1:线程组&参数介绍

setUp线程组:一种特殊类型的线程组,用于执行测试前的初始化操作。setUp线程组的执行顺序在普通线程组之前。

tearDown线程组:一种特殊类型的线程组,用于执行测试结束之后的回收工作。tearDown线程组的执行顺序在普通线程组之后。

线程组:普通线程组,一个线程组可以表示一个虚拟用户组,线程组中可以设置线程数量,每一个线程都可以模拟一个虚拟用户。

其他的是安装的部分插件 :到时候窜哟用那个,就是及时下载就OK,这个是下载链接

https://jmeter-plugins.org/install/Install/

看图说话。这俩个参数容易混淆,Ramp-Up,指的是我们10个线程在这1s内匀速启动,调度器的持续时间是,这个说的是这10个线程启动后(也就是1s后),持续测试的时间(这里勾选了永远,即使写了2s,也会一直测试下去)。

(1)Ramp-Up 时间

控制的是线程的启动节奏

(2)调度器持续时间

控制的是整个测试运行的时长

(3)循环次数

指的是要执行的轮次(比如说我设置个循环次数为2,那第一轮10个线程1s启动完,在持续2s不断地发送请求,之后结束第一次循环,紧接着进入第二次循环,还是这10个线程慢启动1s,在持续2s不断地发送请求...)

注意点①:调度器的持续时间是要等所有线程启动后,才开始计时

注意点②:一轮循环结束,新一轮循环还是这10个线程,需要重新匀速启动,在持续时间内发送请求

注意点③:如果这里不勾选,永远,这个选项,那么一定要在输入框中输入数字,否则,在启动的时候,会自动勾选上永远

2:添加结果树

这里用来查看我们查看发出请求后收到的响应结果

取样器结果中需要去关注的信息

(1)响应时间

load time 响应时间 单位是ms

(2)响应码

(这里的响应时间就不正常)Response code

3:添加HTTP请求
(1)HTTP默认请求值

同一个系统中协议,ip,端口是不会发生改变的,所以我们把这些信息提取出来,放到默认值当中,注意它们的作用域是同级的!

注意点:当取样器中存在未配置的选项,会直接去http请求默认配置中取;取样器中配置了的选项就不会去默认配置中取了。

4:请求头的设置
(1)bug复现

主要是针对登录的状态

举例,看我们在浏览器中登录后,请求头中就有了这个JWT令牌

!

(2)建立HTTP请求头管理器
(3)在请求头中加入token后正确返回结果

取样器结果:可以查看请求的整体性能指标,例如发送请求的线程名称、请求开始时间、加载时间、延迟时间等。

请求:其下有两个子选项卡,分别是"Request Body"和"Request Headers"。"Request Body"为请求体,可以查看请求体信息;"Request Headers"为请求头,可以查看请求头信息。

响应数据:其下也有两个子选项卡,分别是"Request Body"和"Request Headers" ,"Response Body"为响应体,可以查看响应体数据;"Response Headers"为响应头,可以查看响应头数据。

将登录后的data拿过来

(5)错误信息分析

如果我们在HTTP请求当中把域名写错,会报下面这个错误

三:JSON提取器

1:引入
(1)问题引入

我们配置的这个token是死的,一旦过期,或者重新请求token更新了,那么我们这个请求头中的token就无效了,所以想一想

那可不可以将每次我们登录后拿到的token抽取出来--------->赋值到我们的默认HTTP请求头当中呢

(2)JSON Path Tester

有可能会遇到兼容性问题,重启一下Jmeter即可,直到 test按钮出现为止

(3) JSON操作符
(4)添加JSON配置
(5)配置JSON提取是参数
(6)避免重覆盖问题

总结:我们的HTTP信息头管理器中配置的token变量 ,它去取数据的时候,会去同级和同级的子集中去找,找到就给你拿过来!!

2:运用JSON提取器

如果我们的blogId=9999不存在,就完蛋了,那考虑我们能不能把这个9999写成活的不要写死。

继续JSON提取器, 提取我们列表页中有效的blogId,设置为blogId

后续使用的时候直接${blogId}就可以用了!

四:JSON断言

接口发送请求成功,响应码为200并不能完全代表接口请求成功,我们更多需要关注接口响应数据是否符合预期。

1:添加json断言
2:添加json配置

注意:

1)若不选Additionally assert value,表⽰添加断⾔值,则可⽤来判断字段是否存在

2)选择Additionally assert value,则必须添加Expected Value期望的断⾔值

3)若不选Match as regular expression正则匹配,则Expected Value必须填写完整,少⼀个字符都会导致断⾔失败

4)若选择Match as regular expression正则匹配,则Expected Value可以仅写上部分关键词即可断⾔成功

五:配置原件

性能测试中为了模拟大量用户操作,往往需要进行参数化,JMeter中的参数化可以通过配置元件完成。配置元件可以配置测试计划的一些公用信息(参数),其配置会影响作用域内的所有元件。

配置元件常用的参数化工具有用户定义的变量HTTP 信息头管理器HTTP 请求默认值CSV 数据文件设置和计数器。

1.用户定义的变量

用户定义的变量可以被其作用域范围内的所有元件引用 。如果在测试计划中需要使用用户定义的变量,则可以选中JMeter主界面的测试计划并右键单击 ,在弹出的快捷菜单中依次选择=="添加"-->"配置元件"-->"用户定义的变量" ==,会添加一个用户定义的变量界面,如下图所示。

下面通过一个案例演示用户定义的变量的使用,本案例要求使用JMeter发送一个GET请求,请求地址为https://www.baidu.com:443,通过用户定义的变量定义变量protocol(协议)、domain(域名)和port(端口),使用这3个变量实现请求的参数化。

引用完变量后,在线程组中添加一个察看结果树界面,接着单击菜单栏中的启动按钮" ",执行测试,测试结果如下图所示。

2.HTTP信息头管理器

HTTP信息头管理器用于配置HTTP请求头信息 ,例如请求体的MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)类型Content-Type、浏览器可接受的响应内容类型Accept等。选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择"添加"->"配置元件"->"HTTP信息头管理器" ,会添加一个HTTP信息头管理器界面,如下图所示。

下面通过一个案例演示HTTP信息头管理器的使用。本案例要求使用JMeter发送一个GET请求,请求地址为https://www.baidu.com,在HTTP请求头中进行如下配置。

配置完HTTP请求信息后,执行测试计划,添加察看结果树中的请求头数据如下图所示。

3.HTTP请求默认值

如果一组请求的服务器名称、端口、请求方式 都相同,则可以添加HTTP请求默认值 ,将请求的服务器名称、端口、请求方式配置在HTTP请求默认值中进行统一管理。如果想要在测试计划中添加HTTP请求默认值,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择"添加"->"配置元件"->"HTTP请求默认值 ",如下图所示。

4.CSV数据文件设置

使用JMeter进行测试时,如果参数数据较多,可以将参数写入文件中,设置CSV数据文件可以从文件中读取参数 。如果想要在测试计划中对CSV数据文件进行设置,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择"添加"->"配置元件"->"CSV Data Set Config" ,如下图所示。

文件名:数据文件名,包括路径。

文件编码:文件的编码格式,通常是UTF-8。

变量名称(英文逗号隔开):数据文件中每列参数对应的变量名,多个变量名之间使用英文","隔开。

忽略首行(只在设置了变量名称后才生效):是否从第一行开始读取。

分隔符(用'\t代替制表符'):数据文件中的参数数据之间使用什么分隔符,此处就填写什么分隔符。

是否允许带引号?:如果选择"True",数据文件中有引号,则变量引用后也带引号;如果选择"False",无论数据文件中是否有引号,变量引用后都不带引号。

遇到文件结束符再次循环?:文件结束后是否从头开始读取数据,通常保持默认的True。

遇到文件结束符停止线程?:文件结束后是否停止线程,通常保持默认的False。

线程共享模式:读取的参数作用范围,通常选择"所有现场",表示作用于全局。

下面通过一个案例演示CSV数据文件设置的使用。本案例要求使用JMeter发送一个POST请求,请求地址为http://www.baidu.com。要求循环请求3次,每次携带username、password、code这3个参数,每次的参数值都不相同,如下图所示。

将线程组循环次数设置为3,在HTTP请求界面引用变量,配置完成后执行测试,测试结果,如下图所示。

5.计数器

使用JMeter进行测试时,当需要引用大量的测试数据并要求测试数据能够自增且不能重复 时,则可以使用计数器来实现。计数器设置界面如下图所示。

Starting value:计数器的起始值。

递增:计数器递增的值。

Maximum value:计数器的最大值。

数字格式:可选格式,例如设置为000,格式化后为001,002。

引用名称:用于设置变量名,引用的方式为${变量名}。

与每用户独立的跟踪计数器:每个线程都有自己的计数器。如果勾选该复选框,则用户1获取的值为1,用户2获取的值为2。如果不勾选该复选框,就表示全局计数器,则用户1获取的值为1,用户2获取的值也是1。

在每个线程组迭代上重置计数器:可选项,当勾选"与每用户独立的跟踪计数器"复选框时才可以使用。如果勾选了该复选框,则每次线程组迭代都会重置计数器的值。

下面通过一个案例演示计数器的使用。本案例要求使用JMeter发送一个POST请求,请求地址为http://www.baidu.com。要求发送请求时携带参数id,并循环请求6次,每次请求的递增值为1,其中最大值为5,数字格式为000,如下图所示。

相关推荐
颜挺锐1 天前
JMeter TCP 取样器 行尾字节值是 62,是代表的什么意思?
网络协议·tcp/ip·jmeter
Qredsun11 天前
jmeter setUp Thread Group
jmeter
Qredsun11 天前
jmeter全局变量的设置与使用
jmeter
菩提树下的打坐13 天前
性能测试进阶:从 JMeter 基线到 SLO 驱动的压测体系
学习·jmeter
zzz_236815 天前
ShopXO 商城系统测试报告:功能、后台管理、异常状态与 JMeter 性能验证
jmeter
小白上线*^_^*15 天前
Jmeter从入门到精通指南
软件测试·测试工具·jmeter·接口测试·测试工程师
zzz_236817 天前
码上面试平台测试报告:功能、后台管理、异常状态与 JMeter 性能验证
jmeter·面试·职场和发展
郑重其事,鹏程万里19 天前
JMeter组件说明
jmeter