一、跨线程组的鉴权
前提:第一个接口和第二个接口存在接口关联(通过token鉴权),同时还存在cookie鉴权。
接口压测:接口压力测试的任务,要求对其中的一个接口进行500虚拟用户并发,但是这个接口必须要先登录之后获取到token才可以请求成功。
两种获取token的方式:
1、通过登录接口获取
2、通过一个独立接口获取
A、首先设置jmeter.properties里面的参数
CookieManager.save.cookies=true
才能够看到Cookie
B、跨线程组cookie鉴权
只能在一个线程组里面传值的叫局部变量(正则,JSON,用户自定义变量)
能够在多个线程组之间传值的叫全局变量
需要通过Beanshell组件(既能使用java语言,也有自己的语法的组件)来设置:
__setProperty() 设置Jmeter的全局属性,能够在多个线程组之间传值。
__P() 获取全局属性
其他同理操作
二、Jmeter执行数据库操作
应用场景:数据库断言
1.在测试计划中引入数据库的驱动文件
2.设置数据库连接池
3、发送JDBC数据库请求
使用Beanshell的场景:
1、数据库断言
2、接口加密(AES,DES,MD5,BASE64,RSA,SHA1--SHA256)
3、签名(混合加密和签名sign)
Beanshell语言+java语言
三、Jmeter+Ant+Git+Jenkins实现持续集成
应用场景:接口回归测试,多个测试人员实现版本控制.
1、实现Jmeter的非GUI命令行测试
命令格式一:没有报告
jmeter -n -t test.jmx
-n 命令行执行
-t 制定Jmeter的jmx脚本文件的名称
命令格式二:生成jt报告
jmeter -n -t test.jmx -l result.jtl
-l 表示生成jtl报告名称
命令格式三:生成html格式
jmeter -n -t test.jmx -l result.jtl -e -o results
2、通过Ant执行
参考文件:https://cloud.tencent.com/developer/article/2053749
如果需要build.xml文件和jmeter.results.shanhe.me.xsl,可以百度网盘中 jmeter报告所需的文件 进行下载
(1)下载Ant并解压
(2)需要一个build.xml配置文件
(3)通过Ant命令运行
Jmeter加强:
1、加解密
2、beanshell语言(深入应用,自定义函数,引入外部java文件,class,jar等)
3、websocket和dubbo接口
4、jenkins持续集成