Jmeter接口测试

Jmeter简介

The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

官网:http://jmeter.apache.org

下载地址:http://jmeter.apache.org/download_jmeter.cgi

用户手册:https://jmeter.apache.org/usermanual/get-started.html

Jmeter安装测试

下载解压

打开官网下载地址,下载最新版本(此处下载二进制tgz版本)

image-20210315194913965

解压

image-20210315195428545

启动:bin目录下的 jmeter.bat

image-20210315195816438

可以看见打开了一个cmd窗口,及一个图形界面应用程序

image-20210315200610805

测试1:简单无参数接口

image-20210315200543170

image-20210315201012486

Ramp-up period:表示上面的进程数需要在多少秒内启动起来(0:一起启动,n:n秒内先后启动,)

Loop Count:循环次数,上面的线程在访问接口时一共循环多少次

添加配置元件:http请求默认值

  • 设置默认值的好处是之后的http请求不需要重复设置了

image-20210315202020328

image-20210315202201068

添加Sample:Http请求

image-20210315201521653

image-20210315202742045

添加监听器:聚合报告,用来查看测试结果(一个大致结果)

如果想要详细结果,需要再添加别的监听器:图形结果,结果树,表格等等

此处添加一个图形结果、和将结果存在表格

image-20210315203231721

image-20210315204701841

启动

image-20210315203940046

选择文件夹保存测试结果(为了方便,暂时保存在桌面)

image-20210315204037445

查看结果

到监听器中查看结果:

image-20210315204359096

image-20210315204853189

image-20210315204633851

清除数据

image-20210315204526301

测试2:模拟多个用户访问有参接口

添加Http请求

image-20210316211645402

此时已经可以启动,但是只能当做单个用户访问。真实场景中肯定不是一个用户访问多次,而是多个用户访问同一个接口。下面的操作可以模拟多个用户访问。

添加控制元件:CSV Date Set Config

image-20210316211907184

在电脑中新建一个文件,如config.txt

在txt文件中输入模拟用户登陆信息

格式如下:

image-20210316212252122

我们按照此格式写入对应信息

image-20210316213116595

将文件导入,并设置相关信息如下

image-20210316212834952

修改Http request的token信息,改成引用的

image-20210316213315992

启动查看结果

image-20210316213452790

Jmeter在Linuxd的命令行使用

使用过程:

  1. 在windows上录好jms文件,传到linux中
  2. 命令行sh jmeter.sh -n -t XXX.jmx -l result.jtl
    • -n 表示不使用图形界面
    • -t 表示脚本
    • -l 表示输出结果
  3. 把result.jtl导入Jmeter
1
2
3
# 提前将apache-jmeter-5.4.1解压
# 将jms文件放到apache-jmeter-5.4.1同级目录中
./apache-jmeter-5.4.1/bin/jmeter.sh -n -t goods_list.jmx -l result.jtl

image-20210317224740172

可以下载result.jtl结果

1
sz result.jtl

查看结果:

打开Jmeter,找到之前创建的聚合报告,点击浏览选择result.jtl即可查看

image-20210318143958813

如果需要再次测量,需要将Linux中的result.jtl结果文件删除

1
rm -rf result.jtl

设置Jmeter语言为中文环境

临时设置

Jmeter菜单栏选择OptionsàChoose LanguageàChinese (Simplified)

这种方法,重启软件后又变为英文环境了。

永久设置

进入bin目录,找到“jmeter.properties”,在文件的第37行后添加“language=zh_CN”,保存之后再打开jmeter就永久变为中文环境了。

image-20210315215137385

Jmeter主要元件

  • 测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器

  • 线程组:代表一定数量的用户,它可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。

  • 配置元件:维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。

  • 前置处理器:负责在请求之前工作,常用来修改请求的设置

  • 定时器:负责定义请求之间的延迟间隔。

  • 取样器(Sampler):是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。

  • 后置处理器:负责在请求之后工作,常用获取返回的值。

  • 断言:用来判断请求响应的结果是否如用户所期望的。

  • 监听器:负责收集测试结果,同时确定结果显示的方式。

  • 逻辑控制器:可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

元件的作用域和执行顺序

元件作用域

  • 配置元件:影响其作用范围内的所有元件。

  • 前置处理器:在其作用范围内的每一个sampler元件之前执行。

  • 定时器:在其作用范围内的每一个sampler有效

  • 后置处理器:在其作用范围内的每一个sampler元件之后执行。

  • 断言:在其作用范围内的对每一个sampler元件执行后的结果进行校验。

  • 监听器:在其作用范围内对每一个sampler元件的信息收集并呈现。

总结:从各个元件的层次结构判断每个元件的作用域。

元件执行顺序:

配置元件->前置处理器->定时器->取样器->后置处理程序->断言->监听器

注意事项:

  • 前置处理器、后置处理器和断言等组件只能对取样器起作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。
  • 如果在同一作用域内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执行。

参考连接:https://blog.csdn.net/pengjiangchun/article/details/105707405?utm_source=app&app_version=4.5.4