使用不同的变量多次自动运行相同的测试计划

时间:2014-03-01 16:16:26

标签: jmeter

我已经创建了一个针对HTTP端点进行负载测试的测试计划。我想针对多个端点运行相同的测试计划,并且发现自己每次都必须执行以下操作:

  1. 更改确定我正在点击的端点的变量。
  2. 运行测试。
  3. 完成后,记录结果。
  4. 清除所有结果。
  5. 返回第1步。
  6. 我想自动化这个。以下是可能的吗?

    1. 将端点列表定义为变量。
    2. 对于端点中的每个端点
      • 针对端点运行测试
      • 完成后,保存结果
      • 清除所有结果。
    3. 我不知道如何自动化的事情是:

      • 开始测试
      • 定义列表样式变量
      • 清除所有结果

      非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

请参阅以下答案:

开始测试

除了从GUI运行JMeter外,还有几个执行选项,例如:

定义列表样式变量

JMeter提供“属性”,可以通过 .properties 文件设置(例如,参见JMeter安装的/ bin文件夹中的 user.properties )或作为名称传递/ value对JMeter启动脚本。例如,您可以使用read a property function而不是在.jmx文件中对主机进行硬编码。

  1. 将“服务器名称或IP”字段值设置为${__P(myhost,)}
  2. myhost=example.com行添加到JMeter安装的/ bin文件夹中的 user.properties 文件中,重新启动JMeter并运行测试。请求将转到example.com。
  3. 或者,您可以在命令行模式下将myhost属性传递给JMeter,如下所示

    jmeter -Jmyhost=example.com
    
  4. 可以通过这种方式传递多个属性:

        jmeter -Jproperty1=value1 -Jproperty2=value2 ....
    

    甚至通过-p--propfile JMeter命令行参数

    的文件

    有关更多选项和信息,请参阅Apache JMeter Properties Customization Guide

    清除所有结果

    这取决于您选择的无人值守执行选项,它们都提供至少一种删除文件和/或文件夹的方法。我个人不会删除任何结果,宁愿保留它们以供将来参考。为了区分不同的端点测试运行并避免覆盖,我会使用如下的时间戳:

    jmeter -Jhttp.endpoint=my.test.host -n -t your-script.jmx -l my-test-host-results-${date}.jtl
    

    ,其中

    • -J - 将端点设置为my.test.host
    • -n - 告诉JMeter以非GUI模式运行
    • -t - 指定要使用的.jmx文件
    • -l - 指定结果文件的名称和位置