提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
jmeter
一、提取json数据里面的token参数关联?
现在很多接口的登录是返回一个json数据,token值在返回的json里面,在jmeter里面也可以直接提取json里面的值。
上一个接口返回的token作为下个接口的入参。
1.先在jmeter里面添加http请求,填登录接口的参数,运行之后查看结果数,可以看到正确的返回我们想要的token值
2.添加后置处理器-Json提取器,从返回的结果中提取token值
3.关联请求,添加头部管理器,引用token参数 ${token}
或者 正则提取
1.先在jmeter里面添加http请求,填登录接口的参数,运行之后查看结果数,可以看到正确的返回我们想要的token值
2.添加后置处理器-正则提取器,从返回的结果中提取token值
3.下个请求引用上面的token参数
二、提取html页面参数
有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面。
并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数
1.访问页面,保证返回的结果里面能看到需要提取的参数内容
2.后置处理器添加 XPath 提取器,使用 xpath 表达式提取html页面数据,先在谷歌浏览器上定位调试,保证能正确定位到用 XPath 表达式提取
3.下个请求引用上面的token参数,使用上面一步提取出来的变量${csrftoken}
三、登录cookies管理
web网站的请求大部分都有cookies,jmeter的HTTP Cookie管理器可以很好的管理cookies。
1.直接加一个HTTP Cookie管理器放到请求的最前面,就可以自动管理cookies了。
四、压测时数据参数化
我们在压测登录接口的时候,如果只用一个账号去设置并发压测,这样的结果很显然是不合理的,一个用户并发无法模拟真实的情况。
如果要压测登录接口,肯定得准备几百,甚至上千的账号去登录,测试的结果才具有可参考性。
1.手动准备txt文件数据,再去读取文件
1.先保证一个账号和密码的时候能正常的请求成功
2.测试数据准备:自己先去注册批量账号和密码,我这里以10个账号和密码为例,账号和密码按以下格式,中间逗号隔开,保存为login_user_psw.txt
3.添加配置元件:CSV数据文件设置(CSV Data Set Config),导入txt的数据文件,用2个变量user和psw中间参数默认是逗号隔开
4.接下来把账号和密码引用改成的变量
2.使用计数器
当我们jmeter压测的时候,需要准备一批测试账号,可以先批量注册一些用户,这些用户名称按固定格式。
注册的用户不能重复并且需要自增,那么可以使用计数器来实现。
举例:我想批量注册100个账号,账号名称是yoyo_100到yoyo_199
1.先添加注册请求,单个接口调通后,后面用计数器批量注册
2.注册用户名称前面一部分test_是固定不变的,变的是后面的数字100-199,于是添加配置元件-计数器
3.账号数字部分引用变量yoyo_${register_id}
4.线程组设置线程数和循环次数,我这里是注册100个账号,线程设置为1,循环次数设置100即可。
如果线程设置为2,循环次数就设置50,刚好100次注册请求
执行完成后,100个账号就批量注册完成了
五、压测带token的接口
工作中我们需要压测的接口大部分都是需要先登陆后,带着token的接口(或者带着cookies),我们可以先登陆获取token再关联到下个接口。
比如我现在要压测一个修改用户的个人信息接口,每个用户只