在jmeter中如何在远程服务器上参数化测试计划?

时间:2014-10-28 07:28:59

标签: selenium jmeter

我正在使用jmeter来运行一些负载测试并将其设置为分布式测试。我想在每台远程计算机上运行相同的测试计划,但希望以某种方式根据运行的远程服务器参数化每次运行。测试计划有一个单独的线程组,它贯穿无限循环的测试采样器。测试采样器都是基于硒的测试用例和开放浏览器来加载网页。例如,当我运行负载测试时,我需要类似的东西:

server 1: run threadgroup with 10 users using selenium + ghost webdriver
server 2: run threadgroup with 1 user using selenium + chrome webdriver
server 3: run threadgroup with 1 user using selenium + firefox webdriver

2 个答案:

答案 0 :(得分:1)

哦,这是一个完全黑客,我不喜欢它,但这是我如何解决它。

1)。创建1个用户定义的变量(add-> Config-> User Defined Variables)。将所有主机的配置添加为单独的行,如下所示:

  • 10.1.2.1_numThreads = 10
  • 10.1.2.2_numThreads = 1
  • 10.1.2.3_numThreads = 2

2)。在线程组中,将“线程数”值设置为:

${__V(${__machineIP()}_numThreads)}

如果测试计划在10.1.2.1上运行,则将创建10个用户;如果在10.1.2.2上运行,则将创建1个用户;如果在10.1.2.3上运行,则为2个用户。通过这种方式,我可以参数化每个服务器,并通过更新单个用户定义的配置元素,向每个服务器传递尽可能多的不同变量。如果更容易,可以使用__machineName()函数而不是machineIP()。在Windows中,您可以通过右键单击我的计算机并选择属性来获取计算机名称 - 它区分大小写。

答案 1 :(得分:0)

使用相同的文件名创建一个CSV文件&服务器1,服务器2和服务器2上的相同路径服务器3.

在Server1,Server 2&中保留不同的值。服务器3。

因此,当您提供文件名称&主Jmeter机器(控制器)中的路径,例如C:\ test.csv

负载生成器(远程服务器)将在其本地路径中搜索此文件。

希望这会有所帮助。