API Automation Testing: есть ли способ автоматизировать загрузку сценария с проверкой контента? - PullRequest
0 голосов
/ 10 декабря 2018

В нашем приложении есть функция экспорта в excel.Для которого у меня есть один сценарий:

  1. Выполнение экспорта в Excel
  2. Проверка статуса ответа API и экспортированного содержимого Excel.

С почтальоном я могусохранить экспортированный файл Excel в формате .xlsx с опцией «Отправить и скачать», по которой позже я проверяю содержимое (заголовки столбцов и значения строк) вручную.

Есть ли способ автоматизировать этот сценарий сквозным через APIавтоматизация?

В настоящее время я делаю операцию get (фреймворк каратэ), которая отвечает мне этими заголовками в ответ:

  1. Content-Type → application / vnd.openxmlformats-officedocument.spreadsheetml.sheet

  2. Accept-Ranges → байты

Body: потоковые объекты, которые не читаются человеком.

Статус: 200 в порядке

Если автоматизация e2e невозможна / неосуществима, какими должны быть критерии приемлемости для автоматизации в этом случае, чем?

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Узнайте, как реализовать решение с помощью Java и каратэ.Ниже приведены шаги:

  1. Отправьте свои ответные байты в утилиту класса Java.Вот как я это сделал в файле объектов каратэ:

    И def helper = Java.type ('com.java.Utility') И def excel = helper.ByteArrayToExcel (responseBytes)

  2. В классе Utility у вас будет метод ByteArrayToExcel, который будет содержать следующий код:

    import org.apache.commons.io.FileUtils;

    FileUtils.writeByteArrayToFile (новый файл ("src \ test \ java \ testdata \ Actual_Response.xlsx"), ResponseBytes);

  3. Теперь у вас будет Excel в указанном месте.

  4. Напишите метод сравнения двух файлов Excel (фактический и ожидаемый для конкретного запроса).Google это, вы найдете код.Укажите тип возвращаемого значения для логического значения.

  5. В карате используйте логическое значение следующим образом:

И соответствует excelCompareResult == true

Надеюсь, это поможет.

0 голосов
/ 10 декабря 2018

2 варианта.

  1. Если вы уверены, что двоичное содержимое файла никогда не изменится, выполните двоичное сравнение, см. Этот пример: upload-image.feature: And match response == read('karate-logo.jpg')

  2. Вы должны написать собственный код.Есть библиотеки Java для чтения в Excel.Используйте один из них, прочитайте данные, а затем сравните с ожидаемыми результатами.Для этого обратитесь к документации по взаимодействию Java и напишите вспомогательную функцию.

...