带开关控制器的JMeter中的参数化URL

时间:2018-11-08 20:33:19

标签: jmeter

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

我想参数化以下变量:

主机

端口

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

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

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

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

dev dev.mycom.io 80

preprod preprod.mycom.io 80

prod prod.mycom.io 80

localDev local.mycom.com 8080

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

然后在WebScoket打开连接中的下一步我设置:服务器名称或IP:$ {host}和端口:$ {port}

我添加了Switch Controller,在其中添加了WebSocket请求响应采样器

但是在SwitchControllet中,我不知道如何设置“切换值”,也不知道如何为其他环境设置值。

参数化的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

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

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

    • dev.properties

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

      host=prod.mycom.io
      port80
      
  2. HTTP Request Defaults添加到您的测试计划中,并使用__P() function引用属性,例如${__P(host,)}${__P(port,)}

    enter image description here

  3. 当您需要切换环境时,可以通过-q command line argument将相关的.properties文件传递给JMeter,例如:

    jmeter -q dev.properties -t test.jmx 
    

    jmeter -q prod.properties -t test.jmx