1.简介
1.1 打开方式
①点击bat,打开
②添加JMeter系统情况变量,输⼊命令jmeter即可启动JMeter⼯具
1.2 配置
简体中文
放大字体
1.3 利用
①添加线程组
②创建http哀求
2. 组件
2.1 线程组
控制JMeter将⽤于执⾏测试的线程数,也可以把⼀个线程理解为⼀个测试⽤⼾。
编辑线程数
多个哀求,总会有失败,要采取什么步伐?
进行添加,发现内容和postman一样,为什么出现错误,检察,发现Content-Type类型不一样:
修改:
2.2 HTTP取样器
2.3 检察结果树
上述已答复
一般只在调试阶段会用到
2.4 HTTP Cookie管理器
没有用:
用了:
2.5 HTTP哀求默认值
在同一个线程组,协议,ip,端口号不会改变,可以添加管理:
此时,就不要配置这些:
当取样器中存在未配置的选项,会在默认值中取:
配置了就不会取
2.6 ⽤⼾定义的变量
这样就可以一次修改多个变量
2.7 CSV数据⽂件设置
以登陆接⼝为例,当我们执⾏登陆接⼝的性能测试时,⼿动配置了⽤⼾名和密码为固定的username和 password,然⽽现实使⽤中不大概只有⼀个⽤⼾登陆,为了模拟更真实的登录情况,我们需要提供更 多的⽤⼾username和password来实现登录利用
修改登录接口:
线程改为2,去循环读取两个数据
运行:
2.8 JSON提取器
当检察列表页时,哀求头中需要cookie
配置哀求头,成功
此时哀求成功
但是,有的利用,好比登录,不需要cookie,怎么做?
修改作用域
将这个配置放在列表页,只作用在列表页
那么如果多个哀求都需要呢?下面解释
接⼝响应成功,通过提取返回值对应字段,可⽤于其他接⼝的参数配置
后续,就不固定值了,直接从凭证中拿:
必须利用固定的格式
JSON利用符参考:
Operator | Description | $ | 表⽰根元素 | @ | 当前元素 | * | 通配符。全部节点 | .. | 选择全部符合条件的节点 | .<name> | ⼦元素 | ['<name>' (, '<name>')] | 括号表⽰⼦元素或⼦元素列表 | [<name> (,<name> )] | 数组索引或索引列表 | [start:end] | 数组切⽚利用符 | [?(<expression>)] | 过滤器表达式。表达式必须评估为布尔值 | 参考⽂档:https://github.com/json-path/JsonPath
此处可以输入表达式,点击test判断对不对
这里要注意:
发生覆盖怎么办呢?
办理办法:不再添加信息头管理器到子集,拿出去
如下布局:
下面看一种情况,办理id不存在的题目
列表页会返回有效的id,提取出来作为参数值
放到详情页:
那如果有多个详情页接口,每个接口都用到写死的id值,而这个值后续大概需要修改,最好的方式用批量修改.在用户定义的变量检察
2.9 JSON断⾔
接⼝发送哀求成功,响应码为200并不能完全代表接⼝哀求成功,我们更多需要关注接⼝响应数据是否符合预期。
注意:
1)若不选Additionally assert value,表⽰添加断⾔值,则可⽤来判断字段是否存在
2)选择Additionally assert value,则必须添加Expected Value期望的断⾔值
3)若不选Match as regular expression正则匹配,则Expected Value必须填写完备,少⼀个字符都 会导致断⾔失败
4)若选择Match as regular expression正则匹配,则Expected Value可以仅写上部分关键词即可断 ⾔成功
2.10 同步定时器(集合点)
JMeter同步定时器的作⽤主要在于模拟多⽤⼾并发访问的场景,确保多个线程能够同时执⾏某个操 作,以到达真正的并发效果。
通过三角符可以检察线程状态
发现:
这几个线程陆陆续续的完成了测试
为了到达并发的效果,需要添加同步定时器:
这里的模拟数量不能大于线程组里配置的线程数,凌驾就会一直等待
当<=时,线程组的线程数与当前模拟数量必须成整数倍,最好把循环打开,制止最好一次为准备好的线程达不到并发数,会一直等
2.11 事务控制器
JMeter事务控制器的作⽤主要⽤于测试执⾏嵌套测试元素所耗费的总时间。这相称于模拟⽤⼾进⾏⼀系列利用的测试。
看聚合报告:
2.12 安装插件
在工作中执行性能测试,是一点一点加上去的
因此需要安装新的插件来⽀持线程数的配置。
通过插件管理⼯具下载其他插件:Install :: JMeter-Plugins.org
此时重新打开:
下载监听器插件和线程组插件:
此时就多了这些东西:
每隔30s启动10个线程,这些线程要在5s内完成准备
两次就可以把这20个线程都准备好
This group will start:启动多少个线程,同线程组中的线程数
First, wait for:等待多少秒才开始压测,⼀般默认为0
Then start:⼀开始有多少个线程数,⼀般默认为0
Next,add:下⼀次增加多少个线程数
threads every:当前运⾏多⻓时间后再次启动线程,即每⼀次线程启动完成之后的的连续时间;
using ramp-up: 启动线程的时间;若设置为5秒,表⽰每次启动线程都连续5秒
thenhold loadfor:线程全部启动完之后连续运⾏多⻓时间
finally,stop/threadsevery:多⻓时间开释多少个线程;若设置为5个和1秒,表⽰连续负载竣事之后 每1秒钟开释5个线程
测试:
2.13 常⻅监听器
如上
3. 测试报告
⽣成性能测试报告的命令:
Jmeter -n -t 脚本⽂件 -l ⽇志⽂件 -e -o ⽬录
-n : ⽆图形化运⾏
-t : 被运⾏的脚本
-l : 将运⾏信息写⼊⽇志⽂件,后缀为jtl的⽇志⽂件
-e : ⽣成测试报告
-o : 指定报告输出⽬录
注意:⽇志⽂件和⽬录可以不存在,若为已经存在的情况下需要保证内容为空,否则会出现错误!
4. 性能分析
三大指标:
1.响应时间
如果响应时间凌驾了要求,代表系统到了瓶颈
原因:
系统不稳固,有时快有时慢
随着并发压力变大而慢慢变慢,响应时间变高
2. 错误率(可靠性)
高并发场景下,系统是否能够正常处理业务
要求:4个9,5个9
原因:
接口哀求错误
服务器无法继续处理,到达了瓶颈
后端系统限流(配置了不能凌驾多少并发),熔断,降级
3.吞吐量
波动很大:系统性能不稳固
慢慢变高,在趋于稳固:和并发量强相关.如果并发量小于吞吐量,慢慢增大并发量,吞吐量也会随着增加
慢慢变低,并发量页淘汰了:要么说明性能测试要竣事了,并发淘汰,也大概是系统变得卡顿,从而导致响应时间变慢,导致单个线程发起的并发量变少
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |