JMeter远程服务器 - 数百个一对一测试

时间:2017-01-05 15:32:54

标签: csv jmeter

我需要使用JMeter测试一组HTTP Tomcat服务器。我有一个'n'目标服务器列表和'n'JMeter远程测试服务器列表,以及将在URL中针对每个Tomcat服务器测试的单个变量参数列表。但是,每个JMeter远程测试服务器应该只测试一个目标服务器,其中一组线程循环遍历所有参数 - 因此测试是1比1但我需要整理结果,因为目标服务器形成CDN边缘集共同起源URL。 如何确保使用相同的参数集由单个JMeter服务器测试每个目标服务器?使用CSV DATA SET CONFIG作为参数列表很明显,但我看不出如何在目标服务器列表中使用相同类型的config元素。

我可以设想的唯一方法是将每个远程JMeter服务器的包含单个唯一目标URL的csv文件分发。这样,每个JMeter服务器上的所有数百个线程只知道一个目标,但可以使用单个文件名作为源URL。有谁知道更好的方法?

1 个答案:

答案 0 :(得分:0)

JMeter删除“从属”基本上执行在“主”机器上指定的相同测试计划,因此默认配置不是您可以使用的。

有两个选项:

  1. 您可以修改每台从属计算机上的 user.properties 文件,以包含单个唯一端点(URL),如:

      user.properties 文件中的
    • 定义一个将指定端点的属性:

      url=http://some.cdn.1
      
    • {li>

      Test Plan中使用__P() function来读取值,如:

      ${__P(url)}
      

    因此,在每个远程从站上给定不同的url属性,每个从站将命中不同的端点。有关JMeter属性及其使用方法的更多信息,请参阅Apache JMeter Properties Customization Guide

  2. 您可以将__machipeIP()__machineName()函数与If Controller结合使用,以便根据“从属”IP地址或主机名切换执行分支,例如:

    • 如果是控制器,条件:${__machineIP()} == "172.30.40.50"
      • 为CDN1做一些特定的事情
    • 如果是控制器,条件:${__machineIP()} == "172.30.40.51"
      • 为CDN2做一些特定的事情