一、相关知识
(1)关联:
用来解决请求与请求间的依赖,例如登录一个网站redmine,然后再退出。
(2)怎样处理关联?
从上一个请求中,提取token值,给下一个请求使用:(先给上一个请求,增加正则表达式提取器,提取teken值;再将token值通过参数化的方式,传给下一个请求)
(3)提取token值方法
- 正则表达式:采用左右边界策略,写正则表达式提取这个token
- 左右边界值(Boundary Extractor)
- 特定的 json Extractor:
(4)badboy工具:
本质就是一个浏览器,可以录制jmeter可以识别的jmx脚本。如果badboy不稳定,可能是因为系统问题,可以放在虚拟机中进行录制,再导出。
(5)cookie和token
- cookie和token一般会一起用,cookie一般保存在浏览器。
- token由服务端产生,是用户的身份标识,交给客户端保存。
- 例如登录redmine网站登录,服务器是redmin网站,客户端是jmeter;redmine网站给了jmeter一个token值,用来识别这个请求来源于jmeter浏览器
二、实现步骤:
(通过添加正则表达式提取器方式)
1、以redmine的登录功能为例,打开badboy,点击红色开始按钮,输入网址刷新,开始录制脚本,点击登录再退出,录制完成后,导出为jmx文件
2、用jmeter打开这个脚本,添加查看结果数,运行查看接口请求有两个失败,是因为这两个接口需要关联token值
3、添加正则表达式提取器,提取token
在前一个接口的响应中,查询token
复制这个字符串:
<input name=“authenticity_token” type="hidden"value=“iFLhTf6I0F3AmoRBFyD4FyASAw0DTkqu3PTKdyC36dQ=” />
<input name="authenticity_token" type="hidden" value="iFLhTf6I0F3AmoRBFyD4FyASAw0DTkqu3PTKdyC36dQ=" />
4、将提取出的token赋给一个变量,传递给下一个请求,用正则表达式代替这个token值:
填写引用名称(起一个变量名传给下一个请求)、正则表达式、模板、匹配数字
<input name="authenticity_token" type="hidden" value="(.+?)" />
5、执行查看结果,登录成功
6、同理,把下一个请求的token也加上
6、执行成功