2016-05-18 3 views
0

Я работаю над тестированием производительности инструмента командной строки. У меня уже есть тест интеграции, написанный с помощью Junit, который проверяет весь инструмент командной строки, и я хотел бы использовать его для мониторинга производительности.JMeter JunitSampler не может найти конструктора со строковым параметром

Я использую JUnit Request Sampler, но он не может запустить тест из-за ошибки.

2016/05/18 16:22:36 INFO - jmeter.protocol.java.sampler.JUnitSampler: Trying to find constructor with one String parameter returned error: org.someorg.integration.IntegrationTest.<init>(java.lang.String)

this Я видел, и я не подстроено или Teardown в моих тестах. Мысли о том, что я, возможно, не хватает?

ответ

0

В соответствии How to Use JUnit With JMeter руководство:

Constructor String Label

If your JUnit test class has a constructor which accepts a single String, you can set its value with this parameter. If your JUnit test class doesn’t declare such a constructor, the JUnit Sample will try to look for an empty constructor.

Так у вас есть 2 варианта:

  1. Ваш класс JUnit должен иметь конструктор с 1 java.lang.String parameter
  2. Ваш класс JUnit должен быть пустой конструктор

Если выполнено одно из вышеуказанных условий - JMeter сможет запускать ваш класс.

См. Providing Constructors for Your Classes руководство для объяснения бит конструктора.

+1

Я проверил ваш блог, прежде чем начать с этого. К сожалению, пустой конструктор все еще не работал. Я создал GitHub репо, чтобы продемонстрировать то же самое [здесь] (https://github.com/praveenag/jmeter-unit-tests/tree/master) я все еще получаю ошибку, которая говорит, '2016/05/19 11:20:53 INFO - jmeter.protocol.java.sampler.JUnitSampler: попытка найти конструктор с одним параметром String возвратила ошибку: org.something.MainTest. (java.lang.String) ' – praveenag

+0

С помощью всего лишь одного пустого конструктора он работает из командной строки, но не из JMeter UI – binithb

1

У меня была та же проблема. Я решил это с двумя конструкторами:

  • Стандарт пуст один
  • А "манекен" один принимает строку, вызов другой

Как это:

public MyTestClass() { 
    // Do nothing 
} 

public MyTestClass(String test) { 
    this(); 
} 

JMeter после этого перестали жаловаться. Немного странно, но если он работает ... Как побочный эффект, тест будет не работать в затмении больше, поэтому я создал две версии тестового класса:

  • Один для Затмения
  • Один для JAR для JMeter
Смежные вопросы