zoukankan      html  css  js  c++  java
  • Jmeter不同线程组之间的变量引用

      用过LoadRunner的小伙伴应该知道,它的脚本主要分为三个部分,即Login,Action,End三个模块。Login中一般是“初始化”环境所用,而Action模块主要做一些诸如压测的动作。举个例子,对计算的一个单接口进行性能测试。如果你把登录和计算都写在Action模块中,那么压测的时候其实把登录也算进去了,这是与业务场景不符的。所以我们要把压测的业务场景单独抽出来,而登录这些操作作为前置数据准备。那用Jmeter创建三个线程组不就行了?不行,因为Jmeter线程组的执行顺序默认是并行的。

      对于上述问题,解决方法有两个:(以下的例子中,都是取登录后的Token)

    一、BeanShell Sampler

    1.添加线程组"登录",线程组“计算五险一金”,添加请求“login”,添加正则表达提取器

    然后添加一个BeanShell Sampler,把拿到的token设置成全局变量,${__setProperty(token,${token},)}。 

    在“五险一金”线程组中通过函数调用。调用方式:${__property(token)}

     

    二、Beanshell PostProcessor

      我百度了一下,这种方式是有坑的。因为很多教程都没写一个关键点——登录线程组必须使用setUp Thread Group(划重点)。

    1.步骤和上述差不多一致,不同的是添加BeanShell PostProcessor,而不是Sampler,看图。

    代码如下:

    String token=bsh.args[0];

    ${__setProperty(new_token,${token},)}

    在“五险一金”线程中的引用是这样的:${__property(new_token,)}

     

    2.如果我们不用setUp Thread Group呢,来看看效果。

  • 相关阅读:
    c# 数据请求方式提供
    初来乍到,记录第一次发布博客
    JDBC连接LDAP认证Inceptor
    PHP环境搭建以及helloworld.php
    axis2 webservice在websphere上需要设置was共享库
    关于Weblogic优先加载jar包的设置
    time & datetime 模块
    常用模块
    第二模块:函数编程 第1章-练习题
    第二模块:函数编程 第1章·文件处理、函数、装饰器、迭代器、内置方法
  • 原文地址:https://www.cnblogs.com/zichuan/p/9099766.html
Copyright © 2011-2022 走看看