Jmeter 的使用

目录

线程组

HTTP请求默认值

HTTP信息头管理器

查看结果树

用户定义的变量

CSV数据文件设置

JSON提取器

JSON断言

同步定时器

聚合报告

事务控制器

逐步增压测试

导出测试报告


使用Jmeter来测试已经写好的博客系统

线程组

要进行测试,先添加线程组,并且设置参数:

这里设置线程数为3,相当于有三个用户发起请求:

HTTP请求默认值

由于他们的IP地址和端口号都一样,为了方便在请求之前设置一个请求默认值,将请求要发送给的ip地址和端口号写死:

HTTP信息头管理器

因为后端接口要接受的请求是json字符串格式,所以在http信息头管理器中设置Content-Type:application/json,如果是使用表单数据的话就不需要这个了,直接在参数中填写即可:

在进行除登录页的其他页面功能测试的时候,需要之前的登录信息,这个登录信息放在请求头中的user_token中,所以在http信息头管理中还需要加入token:

这里的token可以从登录页面的响应信息中获取:

还要注意一点:这里的信息头的名称要和我们自己设置的这个token的名称是一样的,如果不确定可以先在开发者工具中找到这个名称直接复制就好了:

查看结果树

为了方便查看请求结果,设置查看结果树:

查看结果树中能看到的信息包括:

用户定义的变量

如果有多个地方需要用到用户名和密码,可以自己定义变量,写在用户自定义变量中:

在使用的时候,需要用${username}才能正确获取到这个username变量中的值,并且在json传中,获取这个变量的时候也需要使用""将变量名包裹起来:

CSV数据文件设置

如果想要测试多个用户名密码的登录,可以使用CSV文件来进行:

这里需要注意的是csv的文件格式一定要对

JSON提取器

详情页测试需要blogId,这里我们可以使用JSON提取器,提取之前请求的返回值:

注意:这里要进行json提取,就需要让博客列表页有返回值,不然就没办法提取

这里是正则表达式的语法:正则表达式

这里博客列表页返回的数据是这个样子的(本文主要介绍jmeter的使用,这里的乱码无伤大雅):

JSON断言

如果不存在这样的内容,那么就会断言报错:

如果是不匹配也会出现断言报错,并且给出了断言报错的原因:

也可以使用正则表达式来匹配:

同步定时器

虽然前面设置了三个线程,但是通过这个日志可以看出,线程1执行结束后,线程2、3才准备好了。所以他们并不是在同一时间发出的请求。同步定时器就有这样的作用,让这三个线程都准备好了之后在统一开始发送请求。

这里就可以看出,和之前的并不一样,这三个线程都处于started状态之后,才开始发送请求了。

聚合报告

这个和查看结果树功能差不多,都是查看运行之后的数据信息的

通过这个我们可以看到具体的吞吐量的信息:

事务控制器

有的时候一个接口是一个事务,有的时候多个接口是一个事务,如果多个接口是一个事务的话,那就需要用事务控制器来将这多个接口在一个事务下。

事务控制器,就是将几个请求放在同一个事务里,使用事务控制器需要将这些请求统一放到事务控制器的下面,这样这些请求才能是一个事务:

与上面没有事务控制器的时候相比,这个时候的聚合报告中多了一行------事务控制器:

逐步增压测试

并且给这个线程组添加一个监听器

要使用这个两个功能还需要安装两个插件:jpgc - Standard Set 和 Custom Thread Groups。

下面是运行的结果:

我们可以看出在55秒之前,响应时间不是很长,所以TPS呈现一个向上增长的趋势,这是因为:在一开始的时候响应时间并不是很长,但是总的事务数在增加,相应的成功的事务数肯定也在增加,所以TPS呈现上升趋势;在55秒到1分50秒的这段时间内,响应时间增大,TPS整体呈现较为平缓的趋势,这是因为:这个时候线程增加到最大,导致响应时间增大,响应时间变大,成功总事务数也变大,所以TPS总体上是平缓的;在1分50秒之后,响应时间开始减少,TPS也开始下降,这是因为:在最大线程数持续了30秒之后,线程开始减少,系统压力减少,所以响应时间开始减少,并且总事务也开始减少,因此TPS整体上是一个下降趋势,直到所有线程结束。

导出测试报告

使用 jmeter -n -t [测试文件] -l [后缀为.jtl的日志文件] -e -o [导出目录] 来导出测试报告,其中日志文件和导出目录可以不存在,如果存在也要为空,不然就会导出失败。

在导出目录的文件夹中,有一个html文件,打开这个文件就可以看到具体的测试报告了

相关推荐
爱码驱动1 天前
校园IT交流论坛-软件测试报告(功能/接口/自动化)
自动化·测试
甜甜圈圈子1 天前
基于CANoe的uds诊断的配置以及使用
测试
林开落L2 天前
【项目实战】在线五子棋对战项目测试报告
功能测试·jmeter·压力测试·postman·性能测试·xmind
Bear on Toilet2 天前
1.1 认识测试
测试
aka卡卡3 天前
搭建Mock服务
测试
泽众云测试3 天前
性能测试平台POneV2.0.6新版本-支持Jmeter脚本自动转化快速启用压测
jmeter·性能测试平台·pone性能测试平台
夜晚打字声4 天前
12(十二)Jmeter分布式配置
分布式·jmeter
夜晚打字声4 天前
11(十一)Jmeter设置全局变量
jmeter
kekegdsz4 天前
高丢包、高延迟、断网秒切:开源一个 Android 弱网测试利器
android·测试