У меня есть тестовый Java-проект, который я бы хотел импортировать в моем тесте JMeter, чтобы я мог вызывать существующие методы в тестовом проекте. Я сделал некоторые исследования и узнал, что могу создать банку своего Java-проекта, скопировать банку в папку JMETER_HOME/lib/ext, а затем использовать BeanShell Processor для вызова внешних методов.JMeter: Вызов внешних классов и методов?
Я пытаюсь использовать существующий тестовый проект и вызывать его методы для создания полезной нагрузки JSON. Я добавил BeanShell препроцессор, и сделал что-то вроде:
import com.qa.base.services.user.User;
User user = User.generateSimpleUser();
user.setField("username", "testUsername");
user.setField("password", "testPassword");
vars.put("requestJsonPayload", user.toString());
Это не похоже на работу, и я получаю сообщение об ошибке:
ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import com.qa.base.services.user.User'' : Typed variable declaration : Method Invocation User.generateSimpleUser()
Кто-нибудь знает, как я могу добиться того, что я пытаюсь делать? Любые предложения, комментарии, ссылки на учебные пособия, примеры были бы полезными. Заранее спасибо!
Дополнительная информация:
Я также с помощью BeanShell постпроцессор, который получает полезную нагрузку ответ одного из моих запросов, удаляет некоторые поля в полезной нагрузке, и создает новую полезную нагрузку, которую я могу послать как запрос полезная нагрузка для другого запроса. BeanShell PostProcessor работает без каких-либо проблем. Я использовал JSONObject для этого, и мой код выглядит следующим образом:
import org.json.JSONObject;
String jsonString = prev.getResponseDataAsString();
print(jsonString);
JSONObject responseJSON = new JSONObject(jsonString);
responseJSON.remove("createTime");
responseJSON.remove("id");
vars.put("updatedJsonPayload",responseJSON.toString());
Чтобы убедиться, что вы действительно проверяли, что вы экспортировали jar, содержит ваш скомпилированный класс, и вы перезапустили JMeter после его копирования в lib/ext, правильно? – Morfic
Да, в банке есть класс, в котором я нуждаюсь. Я использовал maven для компиляции банок, чтобы он также зависел от всех зависимостей. – Eshi
Maven не будет упаковывать ваши зависимости внутри вашей банки с остальными классами. Это только упаковывает их, если вы строите войну. Можете ли вы также вставить класс пользователя? – Morfic