1、 jmeter http接口参数化(有多种实现方法)
第一种方法是使用用户定义的变量:
在线程组上右键添加一个配置元件---》用户定义的变量
在http请求中的使用方法
第二种是使用CSV数据文件设置:
在线程组上右键添加一个配置元件---》CSV数据文件设置
设置字段的含义:
文件名:填写设置的文件路径(文件格式一般是txt文件)
文件编码进行下拉选择utf-8
变量名称写的是写入的字段
第三种是使用随机变量
在测试计划中添加随机变量
设置输出的变量名称,输出格式,随机发生器
2、请求带有token信息的请求(提取token请求方便别的接口调用)
针对登录请求的测试结果提取返回信息中的token(一般我使用json提取;也可以使用别的)
登录成功后的返回信息中有access_token,这是一个身份令牌,我提取出来作为一个凭证
添加json提取器,把要提取的变量名字段写出来,然后运行;如果想验证自己写的json提取是否成功可以通过查看结果树去自行验证
提取到token信息后,需要把这个token信息添加到下个请求的请求信息头里面去
请求信息头各字段含义
Accept-Lanuage
指定HTTP客户端浏览器用来展示返回信息优先选择的语言
Accept-Encoding
指定客户端浏览器可以支持的web服务器返回内容压缩编码类型。表示允许服务器在将输出内容发送到客户端以前进行压缩,以节约带宽。而这里设置的就是客户端浏览器所能够支持的返回压缩格式。
Accept
指定客户端能够接收的内容类型,内容类型的先后次序表示客户都接收的先后次序
User-Agent
HTTP客户端运行的浏览器类型的详细信息。通过该头部信息,web服务器可以判断出http请求的客户端的浏览器的类型。
Authorization
授权信息;这里填写token信息;我们上面讲了提取登录返回的token信息,所以我们要在这个字段中填写为${token}
3、调用一些简单的时间函数
当只需要变量天时,可以直接使用 2D、-3D、+1D等,也可以P2D。
${__timeShift( yyyy-MM-dd HH:mm:ss ,P2D,)}
${__timeShift( yyyy-MM-dd HH:mm:ss ,P-3D,)}
${__timeShift( yyyy-MM-dd HH:mm:ss ,P+1D,)}
当需要变量时分秒时,需要首字母PT。1
${__timeShift( yyyy-MM-dd HH:mm:ss ,PT-6H10M10S,)
减少6小时,增加10分钟,增加10秒。
当需要天和分秒一起使用时,需要 P天 T时分秒使用。
${__timeShift( yyyy-MM-dd HH:mm:ss ,P2DT-6H10M10S,)}
增加2天,减少6小时,增加10分钟,增加10秒。
4、添加数据库操作
1、先下载jmeter的数据库驱动,下载地址:MySQL :: Download Connector/J
下载完成后把文件放到jmeter的lib目录下的ext文件中 重启jmeter
2、把刚才添加的文件添加到测试脚本中,这样说明已经脚本引入了数据库驱动
3、在线程组下添加数据库的配置元件JDBC Connection Configuration,填写数据库的配置信息
DataBase URL 格式为:jdbc:mysql://服务器ip:端口号/数据库JDBC Driver Class填写:下拉选择com.mysql.jdbc.Driver 这个地方会有坑(会出现配置失败的请款报告,需要自己手动输入) com.mysql.cj.jdbc.Driver 驱动版本不配套的情况下
username、password 数据库的用户名和密码 root ********
4、添加JDBC Request请求
5、分布式压力测试
分布式压测按照我的想法就是有一台主控机和几台压力机。主控机通过远程控制压力机启动测试,来实现系统不同级别访问量情况下的性能验证
1、先编写需要测试的场景脚本
2、部署主控机和压力机:
- 主控机和压力机可以访问
- 都有安装jmeter,且版本保持一致(脚本相同、插件一致)
- 修改jmeter的配置文件配置部署机器IP:
1、bin目录找到配置文件jmeter.properties
2、设置压力机的ip信息
3、验证是否压力部署成功
6、性能监控工具
脚本执行完成后可以使用查看结果树、聚合报告、汇总报告去查看运行过程中接口的调试情况,当然jmeter也提供了插件去查看这些性能指标
Plugins Manager下载地址:Install :: JMeter-Plugins.org;下载完成后放到lib\ext目录下重新启动程序,插件安装成功后工具的页面出现蜻蜓图标
下载插件:点击Available Plugins选项,并点击PerfMon
添加监控信息