Jmeter проверяющий ответ - PullRequest
0 голосов
/ 01 мая 2018

В приведенном ниже коде «ScenarioName» представляет имя тестового примера и «DeviceID» в качестве входного параметра при получении ответа. Теперь мне нужно провести перекрестную проверку каждого поля данных ответа с полем, которое указано во входном CSV. Так что, если это будет сопоставлено, то только мы скажем, что результат прошел, иначе не получится ..

Код на данный момент: (Он просто попал в сервис и запишет ответ в CSV результата. Но прежде чем записать его в результирующий CSV, нам нужно проверить, все ли поля в ответе сопоставлены в соответствии со значением для этого конкретный сценарий, указанный во входном CSV, только тогда мы приходим к выводу, является ли контрольный пример успешным или неудачным.)

Код постпроцессора Beanshell:

scenario = vars.get("ScenarioName");
deviceid = vars.get("DeviceID");
eventname = vars.get("C_EventName");
eventtype = vars.get("C_EventType");
areaName = vars.get("C_AreaName");

n = vars.get("counter");

filename = "C:\\RestService\\"+ n +".csv";

f = new FileOutputStream(filename, true); 

p = new PrintStream(f); 

this.interpreter.setOut(p); 

print( scenario + ", " + etrTimestamp + ", " + eventname + ", " + eventtype + ", " + areaName + ", " + areaType  + ", " + additionalInfo  + ", " + resultStatusCode + ", " + resultStatusMessage);

f.close();

Теперь мой входной файл:

ScenarioName   DeviceID  Execution

Validate event   52226406   Yes   

invalid ID       11501233   Yes   

Но входной файл должен быть:

ScenarioName       DeviceID     Execution   EVENTNAME     REsultCODE  

Validate event      52226406      Yes       Hurricane         200    

invalid ID          11501233      Yes        Tornado          404 

Теперь мой вывод:

ScenarioName      DeviceID     Execution    EVENTNAME      REsultCODE  

Validate event    52226406       Yes        Hurricane          200    

invalid ID        11501233       Yes        Tsunami            404     

Но это должно быть:

ScenarioName       DeviceID           EVENTNAME      REsultCODE    Result

Validate event     52226406           Hurricane       Event        Pass     

invalid ID         11501233           Tsunami         404          Fail   

Так, скажем, для DeviceID 52226406, если мы проверяем контрольный пример, то мы будем называть результат «проходным», только если все поля точно совпадают с данными, присутствующими во входном csv…. Но для DeviceID 11501233 тип события должен быть Tornado Но в ответ мы получаем как цунами, поэтому он должен потерпеть неудачу (после того, как мы сопоставим с входным CSV) Каким должен быть мой код и как?

1 Ответ

0 голосов
/ 02 мая 2018
  1. Имейте в виду, что начиная с JMeter 3.1, настоятельно рекомендуется использовать JSR223 Test Elements и язык Groovy для сценариев, поэтому рассмотрите возможность перехода на утверждение JSR223 и язык Groovy при следующей доступной возможности.
  2. Ваше требование может быть выполнено без каких-либо сценариев, например:

    • У вас уже есть ожидаемая переменная в файле CSV, которую можно извлечь с помощью CSV Data Set Config
    • Вы можете извлечь фактические переменные из ответа, используя подходящий JMeter PostProcessor , если в вашем коде Rest, я ожидаю, что это будет JSON Extractor
    • 2 переменные можно сравнить с помощью Подтверждение ответа , например:

      JMeter Response Assertion Compare 2 Variables

  3. Если вам необходимо по какой-либо причине сохранить фактические данные, вы можете использовать свойство Sample Variables или Flexible File Writer

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