• 在setUp线程组中初始化全局工具类


    好处

    在setUp线程组中初始化全局工具类,有什么好处?

    • 不同线程组共用一个工具类,有效拆分代码
    • 当工具类需要修改时,只需修改一个地方(遵循『不写重复代码』原则)

    怎么实现

    1. 在 Jmeter 新建 setUp Thread Group

    2. 在 setUp Thread Group 中新建

    3. 在 JSR223 Sampler 中选择 Script language 为 groovy,至于为什么选择 groovy,参考链接:https://www.cnblogs.com/testopsfeng/p/14629162.html

    4. 在 JSR223 Sampler 中输入代码:

      // 工具类
      class Utils<T> {
          /**
           * @param items 数组
           * @return 随机返回一个
           */
          T randomChoose(List<T> items) {
              println("run randomChoose")
              def random = new Random()
              def nextInt = random.nextInt(items.size())  /*0 到 size - 1*/
              def item = items.get(nextInt)
              return item
          }
      }
      // 创建实体类
      def utils = new Utils<Object>()
      // 传入props
      props.put("utils", utils)
      
    5. 在其他线程组的 JSR223 Sampler 中调用工具类,代码如下:

      // 从props获取utils
      def utils = props.get("utils")
      def str = ["111","222","333","444"]
      def choose = utils.randomChoose(str)
      log.error("ThreadNum is: " + ctx.getThreadNum() + " ,choose: " + choose)
      
    6. 在 ${__groovy(,)} 函数中调用工具类,脚本如下(建议在函数助手弹窗中编写脚本,会自动对逗号转义):

      // 其中 __groovy 中的逗号,需要通过转义符 "" 转义。具体原因见:https://jmeter.apache.org/usermanual/functions.html#__groovy
      ${__groovy(props.get("utils").randomChoose(["111"\, "222"\,"333"\,"444"]),)}
      
  • 相关阅读:
    对offsetHeight,clientHeight,scrollHeight的理解
    对word-wrap和word-break的理解
    数据结构之线性表(严蔚敏《数据结构》要求)
    1-数据结构之线性表
    结构体变量声明及初始化的的那些坑
    指针与函数
    数组的深入理解
    0-绪论
    别让无知成恶趣!
    电路分析-3
  • 原文地址:https://www.cnblogs.com/testopsfeng/p/14653118.html
Copyright © 2020-2023  润新知