【性能测试】Jmeter详细操作-小白使用手册(2)

本篇文章主要介绍Jmeter中如何使用

JSON断言、同步定时器、事务控制器、CSV数据文件设置、HTTP Cookie管理器

目录

一:JSON断言

1:正确结果展示

2:错误结果展示

3:JSON配置

[(1)Additionally assert value添加断言值](#(1)Additionally assert value添加断言值)

[(2)Match as regular expression正则匹配](#(2)Match as regular expression正则匹配)

4:正则表达式

(1)\d匹配数字

(2)\s匹配字符

(3)最小匹配多少次

5:使用展示

二:同步定时器

1:场景引入

2:实现并发效果

3:前后对比

4:如果模拟用户组数量大于线程组数量

三:事务控制器

1:创建事务控制器

2:聚合报告的信息讲解

四:CSV数据文件设置

1:场景引入

2:创建我们要的信息

(1)创建一个表格

(2)保存文件

3:参数介绍

4:结果展示

[五:HTTP Cookie管理器](#五:HTTP Cookie管理器)

1:浏览器请求访问场景引入

2:Jmeter中不设置Cookie管理器演示

[3:设置HTTP Cookie管理器](#3:设置HTTP Cookie管理器)


一:JSON断言

1:正确结果展示

2:错误结果展示

使用错误的名称

登录返回的数据中没有code1这个数据,所以没有找到这个result,换成data

3:JSON配置

(1)Additionally assert value添加断言值

①若不选Additionally assert value,表⽰添加断⾔值,则可⽤来判断字段是否存在
②选择Additionally assert value,则必须添加Expected Value期望的断⾔值(这里区分大小写)

(2)Match as regular expression正则匹配

③若不选Match as regular expression正则匹配,则Expected Value必须填写完整,少⼀个字符都会导致断⾔失败
④若选择Match as regular expression正则匹配,则Expected Value可以仅写上部分关键词即可断⾔成功

去匹配我们的token字符串

4:正则表达式

(1)\d匹配数字

(2)\s匹配字符

\s匹配所有空白符,包括换行;\S非空白符,不包括换行;

(3)最小匹配多少次

5:使用展示

二:同步定时器

1:场景引入

配置了五个线程,我们想要让这个五个线程达成同步并发的效果,但是看我们当前的执行情况,这些线程是在1s内陆陆续续的完成,没有达成我们预想中并发执行的效果。(这里就是谁先准备好,谁就先发起请求)

2:实现并发效果

想象一个场景:我们行人在过马路前需要等待红灯跳转到绿灯,行人在这个等待的过程中越聚越多,绿灯一亮,行人则蜂拥而过。

同步定时器可以理解为集合点,当线程数量达到指定值后,再⼀起释放,可以瞬间产⽣很⼤的
压⼒。这样,可以更好地模拟真实的⽤⼾并发访问场景,提⾼测试的准确性和可靠性。

配置的数量与我们前面设置好的线程组的数量保持一致

3:前后对比

所有线程都准备好了,一起发送请求,达到并发的效果

4:如果模拟用户组数量大于线程组数量

这里就会卡主,因为没有它会一直等待到50个线程准备完毕,才发送请求。所以这里设置的数量不可以大,那可以小吗?

答案也是不可以的,假设我们当前设置的模拟用户组数量为3,那么我们就是分3个一组请求一次,但是我们设置的是5个线程呀,还有2个线程凑不出来3,所以就迟迟不能发送请求。也会卡主

那又有一个问题了: 若小于配置的线程数,线程组中的线程数与当前配置的数据必须成整数倍。这个结论是否正确呢?

也是不可以的,假设我们的线程组数量为(6),我们第一轮准备好的线程数(5)>=配置的数量3,就直接发送请求了(3),此时还有一个就落单了,落单的那个线程就会一直等

所以当配置的数量小于线程数时,最好把循环打开,避免最后一次为准备好的线程数量达不到并发数

三:事务控制器

我们现在有5个接口

打开聚合报告,就会显示五个接口的相关测试信息

1:创建事务控制器

思考:我们现在如果想要把登录接口和列表接口合并成一个事物,应该怎么做呢?

执行合并操作

再打开聚合报告,就会发现,多了一行我们的登录事务

2:聚合报告的信息讲解

登录和用户信息接口平均响应时间分别为34ms和22ms,相加登录事务为56ms

列表页返回的data数据比较多,所以响应的时间比较高是正常的

一般看90%的请求对应的响应时间

(1)异常就是错误率

(2)吞吐量------有两种划分方式

①请求的数量划分

TPS------每秒处理的事务数量(常用)发送很多请求,每秒处理的事务数越高,tps越高,性能越高

QPS------每秒的查询率

②网络数据包划分

四:CSV数据文件设置

1:场景引入

以登陆接⼝为例,当我们执⾏登陆接⼝的性能测试时,⼿动配置了⽤⼾名和密码为固定的username和password,然⽽实际使⽤中不可能只有⼀个⽤⼾登陆,为了模拟更真实的登录环境,我们需要提供更多的⽤⼾username和password来实现登录操作

我们现在不把用户名和密码写死,

2:创建我们要的信息

(1)创建一个表格

word文档

(注:如果我们数据库当中的用户数量不多的话,可以自己添加一些数据进去,这里在查看数据库是可以格式化查看,比如select * from user\G)无分号,格式化查看

(2)保存文件

3:参数介绍

⽂件名:填写csv⽂件的路径。建议使⽤绝对路径。

• ⽂件编码:UTF-8

• 变量名称:从csv数据⽂件中读起的数据需要保存到的变量名。有多个变量时⽤逗号分隔

• 是否忽略⾸⾏:是否从csv数据⽂件第⼀⾏开始读取。

• 分隔符:要求与csv数据⽂件中多列的分隔符⼀致

• 遇到⽂件结束符再次循环:若选择为True当数据不够的时候会从头取。若选择False,则需要勾选

下⾯的配置,遇到⽂件结束符停⽌线程,这⾥如果不勾选,请求将会报错。

4:结果展示

配置多个线程数,我们才能看到多个不同的用户,发起请求

五:HTTP Cookie管理器

1:浏览器请求访问场景引入

我们访问第一个login登录接口,会设置这个Cookie信息,

进行302临时重定向之后,第二次访问最下方的login,也会带上一次的Cookie信息

2:Jmeter中不设置Cookie管理器演示

这里没有加入Cookie管理器所以第二次登陆请求头当中就没有携带上我们当前线程的Cookie信息,所以浏览器就找不到对应的Session会话

3:设置HTTP Cookie管理器

结果展示

相关推荐
文人sec1 天前
性能测试-jmeter9-逻辑控制器、定时器压力并发
测试工具·jmeter·性能优化·模块测试
JenniferSmiling2 天前
Midscene初体验
测试
烧冻鸡翅QAQ3 天前
测试中的Bug
bug·测试
CesareCheung3 天前
JMeter分布式压力测试
分布式·jmeter·压力测试
测试界清流3 天前
jmeter使用技巧
jmeter
春时似衿里3 天前
jmeter配置数据库连接步骤
数据库·jmeter
新知图书3 天前
JMeter的安装部署
jmeter
程序员杰哥3 天前
什么是Jmeter? Jmeter工作原理是什么?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
乐神嘎嘎嘎3 天前
Jmeter测试
jmeter
卓码软件测评3 天前
第三方软件测试机构【性能测试工具用LoadRunner还是JMeter?】
java·功能测试·测试工具·jmeter·性能优化