1. 提参采样器添加正则表达式提取器
比如上传采样器是 /upload/batchImport/merAdd/20141124/1(因为我们需要从其返回数据中提取我们需要的参数,本文我们称之为"提参采样器"),文件修改请求采样器是 /merServPlat/merInfo/import/add.json(因为它将要使用我们提取的参数,即参数化,本文我们称之为"用参采样器")。
/upload/batchImport/merAdd/20141124/1 上传文件成功之后,服务器会返回 /batchImport/merAdd/20141124/1/201411201455.xls:
JMeter GUI 视图中右击该采样器打开右键菜单 -> 添加 -> 后置处理器 -> 正则表达式提取器,打开"正则表达式提取器"会话页面并编辑其内容如下:
- 引用名称是 /merServPlat/merInfo/import/add.json 请求将要引用到的变量名;
- 正则表达式是提取你想要内容的正则表达式,小括号()表示提取,也就是说对于你想要提取的内容需要用它括起来;
- 模板是使用提取到的第几个值。因为可能有多个值匹配,所以要使用模板。从 1 开始匹配,依次类推。这里只有一个,所以填写 $1$ 即可;
- 匹配数字表示如何取值。0 代表随机取值,1 代表全部取值。这里只有一个,填 1 即可;
- 缺省值表示参数没有取到值的话,默认给它的值。一般不填。
比如文件修改请求采样器 /merServPlat/merInfo/import/add.json 的请求是 /merServPlat/merInfo/import/add.json?file=%2FbatchImport%2FmerAdd%2F20141124%2F1%2F0000000.xls。
中间带有的 %2F 是将 / 转义处理。我们只需要把第一步提取到的参数放进去即可:/merServPlat/merInfo/import/add.json?file=%2FbatchImport%2FmerAdd%2F20141124%2F1%2F${anycall}.xls
3. 添加 Debug Sampler 以对正则提取器进行调试
JMeter GUI 视图中右击 Thread Group 打开其右键菜单 -> 添加 -> Sampler -> Debug Sampler。
4. 添加察看结果树以监听观测执行情况
JMeter GUI 视图中右击 Thread Group 打开其右键菜单 -> 添加 -> 监听器 -> 察看结果树
5. 执行线程组以调试验证正则提取器
CTRL + R 执行线程组,察看结果树的相关报告如下。
提参采样器 /upload/batchImport/merAdd/20141124/1 响应数据:
用参采样器 /merServPlat/merInfo/import/add.json 的请求:
Debug Sampler 的跟踪情况:
证明我们的正则表达式提取参数成功。
后记
除了正则提取器,对于返回结果为 xml 或者 json 内容的请求,JMeter 分别有 XPath Extractor、JSON Path Extractor 等提取器进行提取。
参考资料
原文链接:https://www.f2er.com/regex/361034.html