参数化:(一个变量,多处使用),避免大多数请求全部命中缓存
为了防止被系统缓存命中大部分测试数据,我们需要使用不同的测试数据来模拟真实的场景进行压力测试。
安装插件:
Custom JMeter Functions
Dummy Sampler
UDP Protocol Support
Console Status Logger
Additional Graphs
Basic Graphs
custom Thread group
参数化其他的方法:timer,logic,controller,TCP,UDP,JDBC,Bean shell、所有接口
参数化的几种方式:
1)Test Plan中定义全局的变量
2)User Defined Variables:在整个测试计划中都生效
3)User Parameters:对每一个线程定义变量
4)CSV Data Set Confing:文件做参数化,适用于大数据量的情况
1.放入jar包
2.点击小爪爪----Available
参数+关联的例子:
第一步:设置默认请求ip,提供多个接口有相同的请求域名时使用
第二步:
resgiter接口
参数:{"username":"lilya1","password":"lil333333y","email":"lily33333@qq.com"}
第三步:
加断言,查看返回的code结果是否是00,00表示注册成功
第四步:已经用的用户名再次注册时不能使用了,所以需要我们设置参数化
参数化{"username":"lily${__Random(1,100000,rand)}","password":"lil333333y","email":"lily33333@qq.com"}
${__MD5(lil333333y,md5)}
添加debug,然后执行---》》
{"username":"lily${counter}","password":"lil333333y","email":"lily33333@qq.com"}
login接口:
要想使用上一步注册的用户来登录,用户名值"lilya${rand}",rand是注册时用户名生成随机数保存的名称
{"username":"lilya${rand}", "password":"${__MD5(lil333333y,md5)}"}
{"token": "2874c6075bb6eec0eb28ad90feefdabc", "code": "00", "userid": 119, "login_time": "2019-08-29 22:09:08"}
后续新增博文或其他的操作时都需要userID/token,故需要提取取userid和token
添加正则处理器
create接口:用到上面提取到的userid和token
{"userid":${userid}, "token": "${token}", "title":"python", "content":"python port test mmm"}
另一种参数化:递增取值