Тестирование классов Java с помощью JMeter

Я хочу протестировать вызов службы Java. Моя первая попытка заключалась в использовании «Java Request Sampler» В документе говорится

Этот сэмплер позволяет вам управлять java-классом, реализующим интерфейс JavaSamplerClient.

Я не уверен, как получить интерфейс org.apache.jmeter.protocol.java.sampler.JavaSamplerClient, поскольку на стороне JMeter нет ни артефакта Maven, ни предоставленных двоичных файлов. Просто плагин JMeter Maven (это не то, что я ищу). Я мог бы установить необходимые двоичные файлы в моем локальном репозитории Maven, я просто не знаю, где они доступны.

Хотите знать, использует ли кто-нибудь вообще «Java Request Sampler»?

P.S. Возможно, мне стоит попробовать JUnit Sampler


person Martin Dürrmeier    schedule 04.03.2010    source источник
comment
JMeter теперь находится в центре maven.   -  person Ardesco    schedule 09.02.2012


Ответы (1)


Мы строим с помощью ANT и используем файлы JAR, которые находятся в двоичном файле из JMeter. под \lib\ext\. AbstractJavaSamplerClient, который используется для Java Request Sampler, находится в файле \lib\ext\ApacheJMeter_java.jar. Для работы с этим абстрактным классом вам также необходимо импортировать файл JAR \lib\ext\ApacheJMeter_core.jar, который (например) содержит класс SampleResult.

После создания нашего Java-класса мы помещаем полученный JAR-файл также в папку \lib\ext\. Если наш класс использует какую-либо зависимость (3-я часть JAR), мы помещаем ее в папку '\ lib'. После этого вы можете запустить JMeter и выбрать свой Java-класс в Java Request Sampler.

Вот пример такого Java Request Sampler:

public class JavaRequestSamplerDemo extends AbstractJavaSamplerClient {

  @Override
  public SampleResult runTest(JavaSamplerContext ctx) {
    JMeterVariables vars = JMeterContextService.getContext().getVariables();
    vars.put("demo", "demoVariableContent");

    SampleResult sampleResult = new SampleResult();
    sampleResult.setSuccessful(true);
    sampleResult.setResponseCodeOK();
    sampleResult.setResponseMessageOK();
    return sampleResult;
  }  
}
person Steve    schedule 04.03.2010
comment
Я думаю, что очень важно понять жизненный цикл такого SamplerClient. Для каждого потока создается один экземпляр (в соответствии с javadoc создаются некоторые другие экземпляры, например, для получения имен параметров). Существуют методы подготовки и разборки теста. Это действительно здорово, спасибо, что перенаправили меня в этом направлении. - person Gábor Lipták; 31.03.2012