Мне нужно убедить JMeter провести A / B-сравнение ответов на запросы веб-службы JSON. Проблема, с которой я столкнулся, заключается в том, что ответы могут иметь одинаковое содержание, но все же не быть одинаковыми.
Пример response1:
[
{
"id": 1,
"name": "Canada",
"provinceNames": [
"Alberta",
"British Columbia"
]
},
{
"id": 2,
"name": "United States",
"provinceNames": [
"California",
"New York"
]
}
]
Этот ответ полностью отсортирован "id", "name", "ProvinceNames", а в пределах ProvinceNames также сортируются "Alberta", "British Columbia" и, соответственно, "California", "New York" .
Пример ответа2:
[
{
"name": "United States",
"provinceNames": [
"New York",
"California"
],
"id": 2
},
{
"name": "Canada",
"provinceNames": [
"British Columbia",
"Alberta"
],
"id": 1
}
]
Этот ответ не отсортирован.
Два ответа имеют одинаковое содержание, даже если они не совпадают.
У кого-нибудь раньше была эта проблема и есть решение?
Мой подход заключался в последующей обработке ответа, сортировке объектов JSON и их сравнении. До сих пор я не мог придумать способ ни в javascript, ни в beanshell. Я нашел несколько решений аналогичных проблем, но они используют JQuery или другие библиотеки, недоступные в JMeter.
Во-первых, я хотел бы знать, на правильном ли я пути с этим подходом, или кто-то придумал гораздо более элегантное решение?
Во-вторых, если этот подход в порядке, есть ли у кого-нибудь фрагменты кода в javascript / beanshell, которые я мог бы использовать в JMeter?
Спасибо за твою помощь :)
javascript deep compare data structures
- person Mike Brant   schedule 26.02.2015