Jmeter
-
JMeter 自带的 HTTP(S) Test Script Recorder(HTTP(S) 测试脚本录制器)的基本使用教程:
- 启动 JMeter:打开 JMeter 应用程序。
- 添加线程组:在测试计划下添加一个线程组。
- 可以增加一些过滤条件,过滤掉不需要的请求
- 配置 HTTP(S) Test Script Recorder: - 在工作台中,右键单击“非测试元件”,选择“HTTP(S) Test Script Recorder”。 - 设置端口号(默认 8080),可以根据需要修改。
- 配置浏览器代理: - 在浏览器中设置代理服务器,地址为本地地址(127.0.0.1),端口为刚才设置的 JMeter 录制器端口。
- 启动录制:在 JMeter 中点击“启动”按钮开始录制。
- 在浏览器中进行操作:访问需要录制脚本的网站,进行一系列操作。
- 停止录制:操作完成后,在 JMeter 中点击“停止”按钮。
- 查看录制的脚本:在录制器中可以看到录制到的请求,可进行整理和修改。 需要注意的是,录制后的脚本可能需要根据实际情况进行一些调整和优化,以确保测试的准确性和有效性。
-
用法
- 在Jmeter-http默认请求值中,设置超时时间,当请求超出你规定的时间时,在结果树中会标红
- 在线程组中设置虚拟用户数量,执行脚本,可以在聚合报告中查看其各种指标,例响应时间,吞吐量等
-
逻辑控制器:
- 事务控制器(将多个接口设置为一个事务,聚合报告中的tps和响应时间等会按照事务来计算)。
- 仅一次控制器,常用于登录接口,因为通常只登录一次,一个虚拟用户登录一次
- 吞吐量控制器:发帖的数量一定比回帖的数量少,所以,可以给发帖增加吞吐量控制器,使其只执行20%,即100个请求里,只20个发帖请求。注:不可以将回帖设置为500%,不好用的
-
定时器:
- 固定定时器:像不能在短时间内频繁请求的接口,加上定时器,在一定时间间隔再次发送请求
- 统一随机定时器:两个变量,一个定时,一个随机,例定时3s,随机5s,则在3s和8s之间
- 高斯随机定时器:有个定时,一个偏差
-
集合点(同步定时器)
按照虚拟用户数来执行,是没有实现并发的,并发需通过同步定时器来实现
集合点的含义:当Jmeter生成的虚拟用户数量达到设置的触发集合点的数量时,该数量的虚拟用户同时发送请求,达到并发的效果
也可设置超时时间:即如果在该时间内,Jmeter没生成预设的虚拟用户的数量,也进行同步并发请求
-
插件
安装插件后,运行脚本,可自动生成tps和响应时间等波动图
-
组件执行顺序:
1.测试计划:起点
2.线程组:
3.配置原件
4.前置处理器:
5.逻辑控制器:单次请求,循环请求,判断请求
6.定时器:固定定时器,高斯,随机
7.取样器:请求,http,tcp,jdbc
8.后置处理器:
9.断言:
10.监听器:收集测试结果
-
作用域
兄弟节点,父节点,兄弟下的子节点
-
关联接口测试
上一个接口的返回值,是当前结果的请求参数
-
正则表达式提取器
token为自定义名称
正则表达式,确认提取规则
模板固定
匹配数字为你想要的match数组下标
下一个接口的请求参数值可以填${token},自动带入。
-
测试片段:
用户定义的变量:
将可能会修改的值定义到其中,(类似nacos),其实就是配置,常配置量包括端口号,服务网址。
具体接口使用${port}引用
注意:Jmeter中是从上到下执行,定义变量一定要放在前面
-
CSV数据文件设置:
测试用例写在一个csv文件中(lisi,12345),新建一个CSV数据文件设置,在其中设置测试用例的变量的格式(如username,pwd),在http请求中,将变量用${username}代替。
当其中有多组数据时,添加循环控制器。
有多组数据时,用循环控制器遍历里面的数据。
-
断言:
在请求下面新增断言,采用json断言,取值方式:$.data.xxx,下方填入预期结果。
预期结果也可写在csv文件中,不同数据值不同。
-
解决关联接口问题:
后置处理器中的Json提取器,提取规则$.data.token
赋值规则,随便起名
整个Jmeter中都可以使用已赋值变量,包括名称
-
Jmeter连接数据库
测试计划下,JDBC Connection Configuration,填写自定义名称,用户名,密码,driver class,url
在测试计划中,添加jar包。
在线程组中添加JDBC Request,编写sql语句,将查询行与下方命名一一对应。
断言时引入变量名称即可,变量名称一般为数组,要加_1。
-
随机抽取数据:
采用order by rand(),id取${ids_1}
如果参数中想使用${ids_2}....循环10次
引用计数器,写引用名称n。
但是两个变量无法直接拼接,需要用到__V函数,在最上方工具中,他会告诉你最终格式。
例:${__V(ids_${n})}
-
调试取样器:
遇到问题时使用,出现全部变量信息。
-
加密接口
将入参和出参全部使用算法进行加密。
客户端一开始并不知道怎么加密,它先发送一次请求到服务端。
不安全是因为,证书机构是公开的,黑客可以伪造客户端获取加密算法,不安全。
外项目访问我们的接口,需要给他一段密钥,我们将这个密钥记录到数据库中,首先验证格式。调用我们接口,
-
Jmeter测试加密接口
新增http请求,访问https://www.lddgo.ne,获取加密后的值。
再调用接口。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示