编码使用Jmeter的类

时间:2014-02-17 04:50:44

标签: java api automated-tests jmeter

我正在使用Jmeter的API来编写将运行Jmeter的代码。我在使用Jorphan时遇到以下错误:

About to replace in property of type: class org.apache.jmeter.testelement.property.CollectionProperty: []
DEBUG   2014-02-17 09:37:36.942 [jmeter.e] (): Replacement result: []
DEBUG   2014-02-17 09:37:36.945 [jmeter.e] (): Replacement result: 
DEBUG   2014-02-17 09:37:36.945 [jmeter.e] (): About to replace in property of type: class org.apache.jmeter.testelement.property.StringProperty: www.google.com

2 个答案:

答案 0 :(得分:0)

有关预定义JMeter .jmx文件的编程执行和使用Java API动态创建JMeter测试计划的示例,请参阅5 Ways To Launch a JMeter Test without Using the JMeter GUI

答案 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测试,该测试具有对结果的简单断言以及每个请求结果的记录。