Jmeter - Сравнить / подтвердить несколько данных: данные из JSON против данных из БД - PullRequest
0 голосов
/ 27 мая 2020

Для моей задачи мне нужно сравнить данные из JSON с данными из БД, но у меня мало сомнений, как построить сценарий. Мой сценарий выглядит так:

1 Выполнить запрос к БД

enter image description here

Что возвращает динамическое c, например:

url secret
https://test1.com/  1234
https://test2.com/  1234
https://test3.com/  1234

На основе этого набора динамиков c я устанавливаю свой контроллер L oop на l oop. Здесь из каждого отдельного вызова создаются разные JSON, например:

enter image description here

[
{
    "adminLink": "",
    "BTCAmount": 0,
    "lastName": "test",
    "amount": 1,
    "clientId": "e1d4ab18517711eaa84cfa163eb75a2c",
    "foundingSourceName": "test",
    "secretId": "2938663415",
    "txId": "",
    "mcTxId": "1079249234",
    "paymentAddress": "",
    "result": "transaction timed out",
    "firstName": "test",
    "phoneNumber": "",
    "currency": "USD",
    "refoundAmount": 0,
    "approveTime": 1582543463,
    "email": "",
    "status": 1,
    "timestamp": 1581938595
},
{
    "adminLink": "",
    "BTCAmount": 0,
    "lastName": "test",
    "amount": 550,
    "clientId": "ffe22f34742311eab73f06ed6719cf46",
    "foundingSourceName": "test",
    "secretId": "3096308675",
    "txId": "",
    "mcTxId": "1101155492",
    "paymentAddress": "",
    "result": "transaction timed out",
    "firstName": "test",
    "phoneNumber": "",
    "currency": "USD",
    "refoundAmount": 0,
    "approveTime": 1586355699,
    "email": "",
    "status": 1,
    "timestamp": 1585750862
}   
]

2 Из этого динамика c json, я могу извлечь: mcTxId с помощью:

enter image description here

3. Для каждого отдельного mcTxId мне нужно выполнить запрос JDB C, используя:

select *
FROM affiliate_transaction
WHERE affiliate_id = 1  and mctxid = '${mcTxId_1}'

, который приведет к:

enter image description here

Мне удалось решить до L oop Controller и извлечь каждый mcTxId, но я застрял во вложенном цикле logi c и подтвердил все данные.

enter image description here

Как я могу сравнивать / утверждать каждое clientId и approveTime между вызовом API (json) и запросом БД, где их набор данных всегда динамический c?

enter image description here

Любая помощь приветствуется. Извиняюсь за длинный пост

1 Ответ

1 голос
/ 02 июня 2020
  1. Измените свой запрос на select client_id FROM affiliate_transaction WHERE affiliate_id = 1 and mctxid = '${mcTxId_1}' и сохраните его в JMeter Variable как client_id_from_db

    enter image description here

  2. Используйте JSON Extractor , чтобы получить идентификатор клиента из API и сохранить его в переменной JMeter, например client_id_from_api

    enter image description here

  3. После этого вы сможете сравнить 2 переменные JMeter, используя Response Assertion

    enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...