jmeter将多个值传递给主体数据中的变量

jmeter将多个值传递给主体数据中的变量,jmeter,Jmeter,在HTTP请求主体数据中,我想设置可以有多个值的变量 例如,drivers license变量(具有yes/no选项)。如何定义一个具有这些选项的变量,以及每个线程具有这两个选项中的随机选择?使用UDV: 为每个可能的选项创建如下所示 HTTP请求的“Body Data”部分应如下所示,以便在运行时获取随机选项值 { "license" : "${__V(option_${__Random(1,3,)})}" } 检查功能:和 我看到下面发送的请求 { "licens

在HTTP请求主体数据中,我想设置可以有多个值的变量


例如,drivers license变量(具有yes/no选项)。如何定义一个具有这些选项的变量,以及每个线程具有这两个选项中的随机选择?

使用UDV:

  • 为每个可能的选项创建如下所示

  • HTTP请求的“Body Data”部分应如下所示,以便在运行时获取随机选项值

    {
        "license" : "${__V(option_${__Random(1,3,)})}"
    }
    
  • 检查功能:和
  • 我看到下面发送的请求

    {
        "license" : "yes" 
    }
    

  • 使用CSV数据集配置并使用文件配置变量名
  • 在txt文件中的下一行写“是”和“否”,如下所示
  • 对 没有

    在params中使用csv数据集配置中使用的变量名,这样第一个线程将接受“是”,第二个线程将接受“否”——您可以使用更多线程来接受不同的值

    注意:在CSV数据集配置中,EOF上的循环应为真。

    只需使用函数即可。无论您想要随机选择“是”或“否”,请使用以下结构:

    ${__javaScript(var yesno = ['yes'\,'no']; yesno[Math.floor(Math.random()*yesno.length)],)}
    
    演示:


    有关上述JMeter函数和其他JMeter函数的更多信息,请参阅本系列文章。

    只是一个小小的改进-Random(1,3,)应该是Random(1,2,)。在JMeter中,最小值和最大值都包含随机函数。
    ${__javaScript(var yesno = ['yes'\,'no']; yesno[Math.floor(Math.random()*yesno.length)],)}