使用Jmeter发送请求的时候,需要配置元件,配置请求Header、Cookie、数据集合等。可以模拟多个在线用户登录,修改请求头数据。
CSV Data Set Config元件可以从文件中读取数据,将CSV作为测试数据输入源,可以构造不同的输入参数给不同的线程使用。官方手册地址https://jmeter.apache.org/usermanual/component_reference.html#CSV_Data_Set_Config
添加路径,右键选择需要添加的API接口 -> 配置元件 -> CSV DATA Set Config
主要配置项目的含义
cookie 用来识别当前请求的用户身份的,一般在登录验证之后,服务端返回给客户端,之后请求其它接口,客户端携带了 Cookie 就不需要再进行登录验证了。官网手册地址 https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Cookie_Manager.
CookieManager.check.cookies=false
。比如登录认证服务器域名是a.test.com.cn, 其它请求的域名在 b.dev.com.cn请求头配置器,可以在请求头中配置 token, 签名串等。官方手册地址
https://jmeter.apache.org/usermanual/component_reference.html#HTTP_Header_Manager
本地启动一个web项目来测试,接口的响应速度,吞吐率。
测试项目地址 : https://gitee.com/3281328128/bootdo/tree/bootdo2.0/。
启动服务之后,显示的首页
可以先录制一下相关的接口,参考上一篇博客,如何录制接口Jmeter 测试脚本录制器-HTTP 代理服务器。我录制的结果如下
新建线程组
复制上一步录制的接口
先分析登录流程,可以发现,整个过程如下,(1)调用获取验证码接口 blog/getVerify (2)调用登录接口 blog/login(3)调用保存用户接口 user-add-new/sys/user/save。没找到合适的OCR识别工具去识别验证码,后端修改了生成验证码的逻辑,固定成了1234
配置相关的元件
(1)准备csv 源文件,第一行是参数的名称,user_name,password,email
用记事本打开的格式如图
(2)配置 CSV Data Set Config
只需要配置文件名,其它配置项用默认的即可。使用绝对路径,如图
配置接口参数
name : ${user_name}
username: ${user_name}
password: ${password}
email: ${email}
配置监听器
在线程组下面添加查看结果树、聚合报告
设置线程的数量
这里需要模拟100个用户同时添加的接口的负载,设置成100,和CSV 的数据量保持一致。
配置完成之后,启动线程
在查看结果树看到请求的 cookie
在聚合报告查看接口的性能