Jmeter性能测试基本流程

Jmeter 一般理解为轻量级的性能压力测试工具,主要场景应用在单接口测试,也可以做负载的业务场景测试;

Jmeter接口性能测试流程:

1、接口信息确认,确认接口能正常调通并正确返回数据(一般可借助Fiddler,Postman等辅助工具)

2、创建测试计划 添加:Test Plan —> 添加 Thread Group —> 添加Http Request(即接口) —> 添加Http cookie/Header —> 添加Assertion —> 添加 listener

基本的接口性能测试,只需要上面6个步骤即可,如下图:


1.png

2.1、Test Plan
如下图,输入Name即可,一般不需要使用User Defined Variables等其他选项配置


2.png

2.2、Thread Group
添加线程组,设置用户并发数量及加压方式等信息,如下图:


3.png

Name:一般输入接口名称
Number of Threads (User): 就是并发用户数
Ramp-up period (Seconds): 就是加压方式,比如上面并发用户数200,Ramp-Up period 设置为100,理解就是200个虚拟用户要在100秒内全部加压,即:每秒加压2个虚拟用户的意思。
Loop Count: 循环跑多少次,比如设置1000,那么200Vu,总共就会调用200*1000次接口进行测试; Infinite,表示一直跑,直到手动点击Stop,这个可能会导致失败的接口,应你手动点Stop时,还会有VU正在跑,突然Stop了,可能会有Scoket closed 的错误,一般建议选infinite时,启用Duration(seconds),指定跑多少时间,这样不会有socket closed错误

2.3、Http Request(即接口)
添加要测试的接口,如下图所示:


4.png

Name:一般输入接口名称
Protocol: 协议,我们测试的接口基本都是http或https协议
Server Name or IP:被测接口对于的域名或者IP
Port Number: 端口,有就输入,没有就空着
Http Request: 请求方式,一般Get 或 Post
path: 就是接口路径,根据接口实际输入
Conent encoding: 编码类型
parameters: 一般就是接口的请求数据,比如请求body

输入上面的基本信息,要确保:Protocal + Server Name or Ip + Port Number + Path, 这几部分拼接起来就是接口的完整绝对URL地址

2.4、Http cookie/Header
要使接口能正常调用返回数据,一般都有进行身份验证,也就是添加接口的header和cookie等信息
一般可以首先在Fiddler或Postman里调式接口,看需要哪些Cookie和Header,然后添加到Jmeter里来即可,如下图:


5.png
6.png

2.5、Assertion
在进行接口测试时,不能只凭返回了http code 200,就认为接口正常了,200只表示接口调用成功了,但并不能证明接口就返回了预期的数据,所以一般我们要确保接口返回了我们想要的数据,才认为接口是通过的。

这个验证过程就是:Assertion(断言)

断言有很多种,我们在接口性能测试过程中,一般使用文本断言就可以了,就是调用接口后,我从接口返回的body里去找一个指定的字符串,如果找到了这个字符串,那就认为接口是成功了且正确返回了数据。比如查找地块的接口,我知道如果接口成功了,Response Data 的body里会有地块名称,那么我就把指定一个地块名称(比如:地块1)当成断言的字符串。


7.png
8.png

如上图,那么当执行测试时,如果从接口返回的body里找不到字符串“地块”,那么Jmeter就会判断接口Failed,就算返回的Http code 是200

2.6、listener
listener 就是监听的结果,也就是我们要的测试结果指标。

一般简单的接口测试,我们基本关注的指标有这结果:响应时间,TPS,并发用户数(这三个指标Jmeter本身没有对应的Listener或不好用,可以找三方的插件),服务器资源使用率,聚合报告,Summary Report等,如下图:


9.png

2.7 body data 参数化
添加cvs data set config 组件


image.png

请求里的data body 用cvs data set configf里的参数名就可以


image.png

参数文件为csv格式,格式如下:
{"agent_id": "5677437a0bb811f0981450ebf6bd1b4d","deep_think": "N","query": "水稻有几个生育期?","stream": true}
{"agent_id": "5677437a0bb811f0981450ebf6bd1b4d","deep_think": "N","query": "浙江地区水稻几月份收割?","stream": true}
{"agent_id": "5677437a0bb811f0981450ebf6bd1b4d","deep_think": "N","query": "水稻怎么施肥?","stream": true}
{"agent_id": "5677437a0bb811f0981450ebf6bd1b4d","deep_think": "N","query": "水稻怎么防治虫害?","stream": true}

3、点执行按钮,就可以直接执行测试了,先查看接口返回数据对不对,确定接口正确返回数据了,再执行压力测试


10.png
11.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容