zoukankan      html  css  js  c++  java
  • Jmeter 跨线程组传递参数 之两种方法

     终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子:

    1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)

     响应结果是如下

     2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:

      

    3.在接口B下添加BeanShell PreProcessor,并编写脚本

     

    4.在需要用到登录接口参数的地方,${  }  引用变量即可

    以上用Json Path Extractor 的地方均可以用正则表达式来完成,由于本人对于正则表达式理解起来实在有点费劲,所以就在jmeter下安装的插件

    方法二:

    1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过)

    2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:

    String X-Timestamp=bsh.args[0];

    print (X-Timestamp);

    ${__setProperty(newstamp,${X-Timestamp},)};

    String X-Signature=bsh.args[1];

    print (X-Signature);

    ${__setProperty(newsig,${X-Signature},)};

    String X-Nonce=bsh.args[2];

    print (X-Nonce);

    ${__setProperty(newnonce,${X-Nonce},)};

     此种是设置全局变量的形式
    3.在接口B中直接引用全局变量即可   ${__P(newstamp,)}  

     如此,接口B即可能获取到跨线程组登录接口的响应参数
    ==========================================
    对比以上两种跨线程组传递参数的方法方法二更方便些,设置为全局变量后,其他只要用到登录接口参数的线程组,均可以直接引用,无需像方法一 一样添加Beanshell PreProcessor
  • 相关阅读:
    Analysis Services features supported by SQL Server editions
    Azure DevOps to Azure AppServices
    Power BI For Competition
    Win10开机“提示语音”以及”随机播放音乐”
    Azure DevOps
    Allow Only Ajax Requests For An Action In ASP.NET Core
    Mobile CI/CD 101
    Configure SSL for SharePoint 2013
    AWS Step Function Serverless Applications
    Cordova Upload Images using File Transfer Plugin and .Net core WebAPI
  • 原文地址:https://www.cnblogs.com/superbears/p/7041723.html
Copyright © 2011-2022 走看看