有这样一个压力测试环境,有一个上传页面,上传成功之后服务器会返回一些上传信息(比如文件的 id 或者保存路径之类的信息),然后压力机会继续下一个请求,比如调整 id 为 xx 的文件的一些信息等等。问题来了:JMeter 是不知道上传后文件的 id 的,第二个请求势必从第一个请求的返回结果中提取出文件 id,然后依此为参数发起第二次请求。那么 JMeter 如何把上一个请求的结果作为下一个请求的参数呢?本文将介绍如何使用正则提取器解决这个问题。
        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 即可;
  • 缺省值表示参数没有取到值的话,默认给它的值。一般不填。

2. 用参采样器的参数化
        比如文件修改请求采样器
/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 等提取器进行提取。
        参考资料

JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器的更多相关文章

  1. jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器

    1.简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如 ...

  2. 细雨学习笔记:Jmeter上一个请求的结果作为下一个请求的参数--使用正则提取器

    Jmeter接口自动化--使用正则提取器,可以把上一个请求的结果取出来,作为下一个请求的入参

  3. 【转】jmeter 如何将上一个请求的结果作为下一个请求的参数——使用正则提取器

    1.简介 Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如 ...

  4. JMeter 将上一个请求的结果作为下一个请求的参数——使用正则提取器(转载)

    在接口测试和压力测试过程中,经常会将几个流程串联起来才能测试.如:我要进行获取用户信息接口测试,我就要先登录成功后,才能获取用户信息.所以,我就要首先要登录,获得我的登录凭证(tokenId或tick ...

  5. jmeter将上一个请求的结果作为下一个请求的参数——使用正则提取器

    转自:http://www.cnblogs.com/0201zcr/p/5089620.html 在压力测试的时候,经常要将几个流程串联起来才能将程序测试通过.如:我现在用户首先要登录,获得我登录的凭 ...

  6. 【转载】jmeter将上一个接口返回值作为下一个接口的请求参数

    第一:通过JSON Extractor 插件来提取JSON响应结果 原文地址:http://blog.csdn.net/dreamtl/article/details/68957122 接口响应结果, ...

  7. JMeter CSRFToken认证登陆(正则提取器的使用)

    转自:http://blog.csdn.net/lion19930924/article/details/51189210 前几天用JMeter模拟登陆,但是这个网站开启了csrf认证,因此在post ...

  8. Jmeter系列(27)- 详解正则提取器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 有了 JSON 提取器为啥还要用正则提 ...

  9. Jmeter正则提取器常用的几种方式

    使用jmeter的同学都知道,jmeter提供了各种各样的提取器,如jsonpath.Beanshell.Xpath.正则等!!! 我们就针对正则提取器如何使用进行说明. 举例说明:假设取sessio ...

随机推荐

  1. java json 转换

    1.直接输出: 2.字符串 通过eval转换输出,里面涉及到一个转义问题,还要注意eval的用法里面需要加"("+ + ")" 3.

  2. hydra 使用总结

    参考链接: http://blog.csdn.net/MarshalEagle/article/details/51896083 https://www.waitalone.cn/hydra-v8-w ...

  3. Git命令执行漏洞

    Git命令造成的反弹shell 漏洞描述: Git LFS可以.lfsconfig使用LFS由存储库中的文件配置(部分),并且可以将Git LFS指向ssh://. [lfs] url = ssh:/ ...

  4. 二进制学习 wsample01a.exe

    有趣的二进制学习 wsample01a.exe 这是一个基础的入门小程序,点击运行后发现弹出小框,Hello! Windows 用ida静态分析程序,这一段是程序的主逻辑,也是全部逻辑:) 可以看到程 ...

  5. 找出程序GasMileage中的哪一行与下列叙述相对应:

    找出程序GasMileage中的哪一行与下列叙述相对应: a.通知程序将使用Scanner类   import java.util.Scannner; b.创建一个Scanner类的对象   Scan ...

  6. 【转载分享】 JLINKv9在迅为iTOP-4412精英板上的应用

    本文转自:https://www.amobbs.com/thread-5680586-1-1.html 很多人买迅为iTop4412精英板,在Android或Linux+Qt跑起来后学习开发调试应用程 ...

  7. Python print输出重定向到文件和屏幕,超简单

    import sys import os class Logger(object): def __init__(self, filename="log.txt"): self.te ...

  8. kali2.0的初始设置

    1.修改源 leafpad /etc/apt/sources.list 加kali源 deb http://http.kali.org/kali kali-rolling main non-free ...

  9. TCP连接的TIME_WAIT和CLOSE_WAIT 状态解说【转】

    相信很多运维工程师遇到过这样一个情形: 用户反馈网站访问巨慢, 网络延迟等问题, 然后就迫切地登录服务器,终端输入命令"netstat -anp | grep TIME_WAIT | wc ...

  10. 网页块元素定位建议使用的xpath方式

    取上图的新手上路文字 使用xpath "//div[@class='pbm mbm bbda cl']//li[contains(string(),'用户组')]/span/a/text() ...