JMeter: Вызов внешних классов и методов?

У меня есть тестовый проект Java, который я хотел бы импортировать в свой тест JMeter, чтобы я мог вызывать существующие методы в тестовом проекте. Я провел небольшое исследование и узнал, что могу создать банку своего Java-проекта, скопировать ее в папку JMETER_HOME / lib / ext, а затем использовать процессор BeanShell для вызова внешних методов.

Я пытаюсь использовать существующий тестовый проект и вызывать его методы для создания полезной нагрузки 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());

Это не работает, и я получаю ОШИБКУ:

ОШИБКА - jmeter.util.BeanShellInterpreter: ошибка при вызове метода bsh: eval Исходный файл: встроенная оценка: `` import com.qa.base.services.user.User '': объявление типизированной переменной: вызов метода User.generateSimpleUser ()

Кто-нибудь знает, как я могу достичь того, что пытаюсь сделать? Любые предложения, комментарии, ссылки на обучающие программы, примеры были бы полезны. Заранее спасибо!

Дополнительная информация:

Я также использую BeanShell PostProcessor, который получает полезную нагрузку ответа на один из моих запросов, удаляет некоторые поля в полезной нагрузке и создает новую полезную нагрузку, которую я могу отправить как полезную нагрузку запроса для другого запроса. Постпроцессор BeanShell работает без проблем. Я использовал для этого 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());

person Eshi    schedule 19.09.2013    source источник
comment
Просто чтобы убедиться, что вы проверили, что экспортированный вами jar действительно содержит ваш скомпилированный класс, и вы перезапустили JMeter после его копирования в lib / ext, верно?   -  person Morfic    schedule 19.09.2013
comment
Да, в банке есть нужный мне класс. Я использовал maven для компиляции jar-файлов, чтобы он также извлекал все зависимости.   -  person Eshi    schedule 19.09.2013
comment
Maven не будет упаковывать ваши зависимости в вашу банку с остальными классами. Он соберет их только в том случае, если вы ведете войну. Не могли бы вы также вставить класс User?   -  person Morfic    schedule 19.09.2013
comment
ссылка, есть тот же вопрос, что и у вас.   -  person PengWu    schedule 23.09.2013
comment
Вы можете показать User класс? (или его основные части с помощью метода)   -  person user7294900    schedule 24.04.2018


Ответы (1)


Поместите банку, содержащую com.qa.base.services.user.User и все его зависимости в папку jmeter / lib, и она должна работать.

person UBIK LOAD PACK    schedule 20.09.2013