寻找面向对象的JMeter示例

时间:2017-06-05 08:25:35

标签: jmeter

我希望将我公司应用程序中复杂行为的REST调用序列抽象为一系列根据需要实例化的类,这些方法将有效地创建HTTP请求调用序列。我希望这样做可以使测试更紧凑和可读(以及提供更多可重用的代码)。在创建HashTree测试计划后,我需要使用StandardJmeterEngine并将测试导出为JMX格式。

为了减少开发时间,我希望找到一个很好的例子;我确定有人做过,但我还没有发现它。

2 个答案:

答案 0 :(得分:0)

如果您正在研究程序化创建的方式JMeter测试,请查看以下来源:

如果您正在寻找示例项目,可以查看jmeter-from-code解决方案,该解决方案演示如何以编程方式创建JMeter Test Plan,将其存储到.jmx脚本文件中,运行它并获取.jtl结果文件。

答案 1 :(得分:0)

您可能会选中jmeter-java-dsl,这使您只需几行代码即可完成操作。

例如,您可以添加以下Maven依赖项:

<dependency>
  <groupId>us.abstracta.jmeter</groupId>
  <projectId>jmeter-java-dsl</projectId>
  <version>0.1</version>
</dependency>

并定义一个这样的测试:

import static org.assertj.core.api.Assertions.assertThat;
import static us.abstracta.jmeter.javadsl.JmeterDsl.*;

import java.time.Duration;
import org.eclipse.jetty.http.MimeTypes.Type;
import org.junit.jupiter.api.Test;
import us.abstracta.jmeter.javadsl.TestPlanStats;

public class PerformanceTest {

  @Test
  public void testPerformance() throws IOException {
    TestPlanStats stats = testPlan(
      threadGroup(2, 10,
        httpSampler("http://my.service")
          .post("{\"name\": \"test\"}", Type.APPLICATION_JSON)
      ),
      //this is just to log details of each request stats
      jtlWriter("test.jtl")
    ).run();
    assertThat(stats.overall().elapsedTimePercentile99()).isLessThan(Duration.ofSeconds(5));
  }
  
}

您将获得一个运行中的嵌入式JMeter测试,该测试具有对结果的简单断言以及每个请求结果的记录。

相关问题