首页 > 解决方案 > 使用 Switch Controller 参数化 JMeter 中的 url

问题描述

我在使用 websocket 连接的 JMeter 后端应用程序中进行测试——在 JMeter 中这是一个插件:Peter 的 Web Socket Sampler……。

我想参数化以下变量:

主持人

港口

和securityKey 让可以在它们之间切换。

可以使用 4 个不同的主机,四个不同的 securityKey。

我不想使用任何外部文件。

所以我从测试计划中定义的用户定义变量开始,当我定义:主机、端口和安全密钥。我设置了以下内容:

开发 dev.mycom.io 80

preprod preprod.mycom.io 80

产品 prod.mycom.io 80

localDev local.mycom.com 8080

然后我必须将其设置为适合 3 种不同的测试环境:开发、生产、

然后在 WebScoket Open Connection 中设置:服务器名称或 IP:${host} 和端口:${port}

我添加了 Switch Controller,在其中添加了 WebSocket request-response Sampler

但是在 SwitchControllet 中我不知道如何设置 Switch Value,也不知道如何为另一个环境设置值。

对此进行参数化的最佳方法是什么?

标签: jmeter

解决方案


我不认为 Switch Controller 在这里适用,我建议采用另一种方法,即:

  1. 创建几个属性文件,例如:

    • dev.properties

      host=dev.mycom.io
      port=80
      
    • prod.properties

      host=prod.mycom.io
      port80
      
    • 等等
  2. HTTP 请求默认值添加到您的测试计划并使用__P() 函数引用属性,例如${__P(host,)}${__P(port,)}

    在此处输入图像描述

  3. 当您需要切换环境时,您可以通过-q命令行参数将相关的 .properties 文件传递​​给 JMeter,例如:

    jmeter -q dev.properties -t test.jmx 
    

    或者

    jmeter -q prod.properties -t test.jmx 
    

推荐阅读