我正在使用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
答案 0 :(得分:1)
哦,这是一个完全黑客,我不喜欢它,但这是我如何解决它。
1)。创建1个用户定义的变量(add-> Config-> User Defined Variables)。将所有主机的配置添加为单独的行,如下所示:
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
负载生成器(远程服务器)将在其本地路径中搜索此文件。
希望这会有所帮助。