Я попытался разработать тестовый сценарий нагрузочного тестирования API в JMeter 5.0. Вот информация о моей группе тем:
Ниже приведены данные тела, я уже добавил к ним некоторые переменные и функции. Вы также можете просмотреть образец данных JSON Body по адресу здесь:
. {
"app_name": "Telekom",
"source": "MOENGAGE",
"moe_request_id": "req_${__threadNum}",
"events": [
{
"event_name": "Email Opened",
"event_code": "MOE_EMAIL_OPEN",
"event_uuid": "${__UUID}",
"event_time": ${__jexl3(${__time(,)}/1000,)},
"event_type": "CAMPAIGN_EVENT",
"event_source": "MOENGAGE",
"uid": "${__counter(,)}-${__RandomString(7,ABCDEFG123456)}${uid}",
"email_id": "${email}",
"event_attributes": {
"campaign_id": "${__RandomString(24,abcdefghijklmn123456789)}",
"campaign_name": "July2021_16072021_LigaSuper_English",
"campaign_type": "GENERAL",
"campaign_channel": "EMAIL",
"moe_delivery_type": "One Time",
"moe_campaign_tags": [
"engagement"
],
"moe_campaign_channel": "Email",
"u_em": "${email}"
},
"user_attributes": {
"PRODUCT_TYPE": "Unifi",
"moengage_user_id": "60dc48d4d722040a2e78b788",
"SERVICE_NO": "${uid}",
"id": "${email}"
},
"device_attributes": {}
}
]
}
Я также включаю JSON Extractor для корреляции тела ответа:
Вот результаты в дереве результатов просмотра. Добавлен Debug Sampler, чтобы увидеть, работают ли мои параметризация и корреляция или нет. К счастью, работает только моя параметризация, а корреляция — нет.
Обновлено: Это пример тела ответа:
Я хочу сопоставить "rqUuid": "urn:uuid:1a5d8617-258c-49f7-b1a7-5b8ee71fb9fd"
в теле ответа. Вопрос в том, правильный ли это способ корреляции тела JSON? Нужно ли сопоставлять тело ответа, хотя я уже определил функцию "event_uuid": "${__UUID}"
в данных тела?
Спасибо. Благодарим вас за помощь.
Я уже отредактировал свой вопрос, пожалуйста, просмотрите его еще раз. Я включаю полные данные ответа, и здесь я хочу сопоставить
"rqUuid": "urn:uuid:fbdfb47a-9e5d-4f87-8ccd-9875f10b84ea",
Пожалуйста, сообщите, как я могу применить экстрактор JSON здесь. Спасибо, сэр
Вы не можете, если вам нужна только часть
fbdfb47a-9e5d-4f87-8ccd-9875f10b84ea
- используйте либо Regular Expression Extractor, либо Boundary Extractor, последний проще в использовании, он работает быстрее и потребляет меньше РесурсыЕсли нужно использовать экстрактор регулярных выражений, мне все равно нужно использовать функцию в этой строке
"event_uuid": "${__UUID}"
, верно? Или мне нужно ввести UUID по умолчанию, как в образце, показанном в ссылке?Я не знаю, если вам нужно отправить случайную GUID-подобную структуру - используйте функцию __UUID, если вам нужно использовать значение из предыдущего ответа - извлеките его с помощью экстрактора регулярных выражений.
Если я хочу отправить случайный UUID, то нет необходимости использовать средство извлечения регулярных выражений? Извините, все еще не ясно об этом
Если вы хотите отправить случайный UUID - ничего извлекать не нужно, просто используйте функцию __UUID() прямо там, где вы хотите это сделать - он будет оценен во время выполнения. Если вам нужно сохранить сгенерированное значение в переменной для последующего повторного использования, вы можете использовать функцию [__groovy()](${__groovy(vars.put('uuid'\, UUID.randomUUID() as String); return vars.get('uuid'),)})
${__groovy(vars.put('uuid'\, UUID.randomUUID() as String); return vars.get('uuid'),)}
. После этого вы сможете ссылаться на него как${uuid}
, где это необходимо.