моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Пользовательские параметры регулярных выражений (RegEx User Parameters) — это препроцессор (Pre-Processor), который позволяет пользователям извлекать значения из данных ответа на основе регулярных выражений и применять их, а также передавать эти значения в качестве параметров последующимHTTP-запрос или другие нужные места. Эта функция отличается высокой гибкостью при работе с динамическим контентом, идентификаторами сеансов, токенами и т. д. и является ключевым компонентом для реализации сценариев автоматического тестирования.
Мы используем SpringBoot для написания следующего кода интерфейса
@PostMapping(value = "/login",produces = "application/json;charset=UTF-8")
public String authenticate(@RequestBody JSONObject request) {
String validUsername = "admin";
String validPassword = "password";
String response = "{"total":2,"data":[{"id":123,"name":"John Doe","email":"[email protected]","phone":"123-456-7890","address":{"street":"123 Main St","city":"New York","state":"NY","zip":"10001"},"interests":["sports","music","travel"]},{"id":456,"name":"Jane Smith","email":"[email protected]","phone":"987-654-3210","address":{"street":"456 Elm St","city":"Los Angeles","state":"CA","zip":"90001"},"interests":["reading","cooking","hiking"]}]}";
if (request.getString("username").equals(validUsername) && request.getString("password").equals(validPassword)) {
return response;
} else {
return response;
}
}
Затем пишем следующий скрипт
Группа тем: Сохранить настройки по умолчанию
HTTP-запрос 1: протокол http, имя сервера или IP127.0.0.1, номер порта 8091, метод POST, путь/логин, кодировка содержимого utf-8, данные тела сообщения.
{
"username": "admin",
"password": "password"
}
Извлечение регулярных выражений器:设置的参数为引用名称var,正则表达式"id"😦.?),"имя":"(.?)", "email" (можно узнать из содержимого примера кода), и наша цель – извлечь идентификатор и имя, для соответствующего номера установлено значение -1, а значение по умолчанию — NotFound.
На этом этапе мы можем сначала отключить HTTP-запрос 2 и пользовательские параметры регулярного выражения, затем запустить сценарий и просмотреть отладочный образец дерева результатов. Вы можете увидеть следующие результаты в теле ответа данных ответа.
Переменные JMeter:
JMeterThread.last_sample_ok=false
JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@4fa1cf1
START.HMS=165132
START.MS=1720515092259
START.YMD=20240709
TESTSTART.MS=1720578466746
_jm__threadgroup__idx=0
_jmeter.U_T= группа потоков 1-1
var=Не найдено
вар_1=
вар_1_г=2
var_1_g0=«id»:123,«name»:«John Doe»,«email»
var_1_g1=123
var_1_g2=Джон Доу
вар_2=
var_2_g=2
var_2_g0=«id»:456,«name»:«Джейн Смит»,«email»
var_2_g1=456
var_2_g2=Джейн Смит
var_matchNr=2
Из приведенного выше содержимого мы можем увидеть значение переменной var, извлеченное с помощью соответствующего регулярного выражения. В это время мы можем продолжить проверку применения препроцессора пользовательских параметров регулярного выражения и продолжить установку других параметров компонента.
HTTP-запрос 2: протокол http, имя сервера или IP127.0.0.1, номер порта 8091, метод POST, путь/логин, кодировка контента utf-8, затем к параметрам добавляем два параметра, заполняем имена 123, 456 соответственно, не используйте их сейчас. Независимо от конкретного значения, давайте сначала попробуем.
Пользовательские параметры регулярного выражения: для имени ссылки регулярного выражения установлено значение var, имя параметра здесь должно совпадать с именем параметра в приведенном выше регулярном выражении, номер группы регулярных выражений для имен параметров установлен на 1, для значений параметра установлен номер группы регулярных выражений. до 2, почему Как так настроить? Мы можем понять это так: разве мы не установили 123 и 456 в HTTP-запросе 2? Установка номера группы регулярных выражений для имен параметров равным 1 можно понимать как получение параметров var_1_g1 и var_2_g1 в параметрах var. в HTTP-запросе 2. После того, как параметры будут соответствовать параметрам здесь, мы будем соответствовать взаимосвязи между параметрами и данными, открывая путь для установки номера группы регулярных выражений значений параметров на 2. Мы можем хорошо понять, что когда значения параметров Номер группы регулярных выражений установлен равным 2, в результате параметры становятся var_1_g2 и var_2_g2.
Следующим шагом является проверка наших результатов. Запустите сценарий, чтобы просмотреть данные сообщения тела запроса в HTTP-запросе 2 в дереве результатов. В целом наш запрос не удался, но это не имеет значения. Мы только что проверили то, что нам нужно. для проверки. Результат не имеет значения.
ПОСТ http://127.0.0.1:8091/login
Данные POST:
123=Джон+Доу&456=Джейн+Смит
[нет печенья]
Из приведенных выше данных POST видно, что соответствующие данные были отражены в запросе.
● Область применения: пользовательские параметры регулярного выражения действуют только на следующий HTTP-запрос или образец. Если вам необходимо применить их глобально, рассмотрите возможность использования «экстрактора регулярных выражений» в сочетании с переменными.
● Отладка: используйте прослушиватель «Просмотр дерева результатов», чтобы проверить соответствие регулярных выражений и обеспечить правильное извлечение данных.
Пользовательские параметры регулярных выражений — это мощная функция JMeter, которая упрощает обработку динамических данных и повышает гибкость и автоматизацию тестовых сценариев. При правильной настройке и использовании эта функция может эффективно удовлетворить потребности в тестировании производительности сложных систем.