Предложите платформу автоматизации тестирования для моего сценария

#java #testing #automation #fitnesse #robotframework

#java #тестирование #автоматизация #фитнес #robotframework

Вопрос:

Я нахожусь в процессе оценки нескольких платформ автоматизации тестирования и был бы признателен за некоторую информацию. У нас есть большое бизнес-приложение для обработки кредитов, и у него есть три конечные точки: веб-интерфейс, soap и базовый http / post. Мои требования такие, как показано ниже.

Наш центр контроля качества в значительной степени используется для тестирования на основе данных (все входные данные поступают из Excel, и поэтому ожидаемый результат для утверждений). В основном каждая строка на листе Excel содержит как входные данные, так и соответствующий ожидаемый результат. Мы хотим, чтобы наш QA просто редактировал таблицы Excel. Наша команда разработчиков будет отвечать за предоставление необходимых тестовых библиотек / приспособлений. Учитывая приведенный выше сценарий, я бы хотел использовать 1 единую платформу автоматизации, которая может читать эти таблицы Excel и тестировать все конечные точки моего приложения, то есть веб-интерфейс, soap и http / post. Пожалуйста, дайте мне знать, какие платформы автоматизации тестирования соответствуют моим потребностям. Ценю несколько советов и руководств, которые помогут мне начать.

Ответ №1:

Robotframework позволяет использовать тестовые данные, поступающие из внешних файлов. Я не пробовал использовать таблицы Excel, но я сделал это с данными в формате CSV, а также с JSON. В худшем случае вам, возможно, придется экспортировать данные Excel в формат, удобный для python, но это можно сделать прозрачно для людей, поддерживающих электронную таблицу.

Короче говоря, вы можете создать ключевое слово на python (или любом языке на основе JVM, если вы используете jython), которое считывает данные из вашей электронной таблицы и преобразует их в данные, используемые в тестовых примерах.

Хотя, если абсолютно все ваши тесты выполняются из этого файла данных, вам не нужна платформа. Просто напишите короткий скрипт на любом языке, который выполняет итерации по каждой строке и вызывает функцию, которая выполняет эквивалент curl или wget. Фреймворки полезны, если вам нужен способ представления ваших тестовых сценариев, но он у вас уже есть.

Тем не менее, преимущество использования robot — даже если у вас есть только один тест с надписью «проверять с использованием каждой строки электронной таблицы» — заключается в том, что вы получаете хороший отчет, который есть у робота, и можете довольно легко интегрировать его с jenkins / hudson.

Ответ №2:

Это рекомендуется для подгонки/ пригодности. Это хороший способ позволить бизнес-аналитикам запускать тесты самостоятельно.

Комментарии:

1. Спасибо за рекомендацию Fit. Хотя мне это нравится, весь процесс написания тестов в синтаксисе wiki перегружает QA, а также мы хотим контролировать версии тестов

2. Fitnesse идеально подходит для этого, он может работать с selenium для webui и имеет restfixture, который будет выполнять биты soap. Она также будет отлично работать с любым VCS, и, серьезно, частично обученная обезьяна может использовать wiki…..

Ответ №3:

Я рассмотрел несколько предложенных платформ, но окончательный выбор, который я сделал, заключался в написании собственных библиотек домена (DSL, если хотите) поверх

  1. Спок
  2. Geb
  3. Отличный и
  4. HTTP Builder
  5. Sonar и Hudson

В настоящее время мы проводим более 14000 (и постоянно растущих) регрессионных тестов каждую ночь в рамках CI.

Ответ №4:

Я не знаю инструмента, который позволил бы вам протестировать все конечные точки с данными, хранящимися в электронной таблице. Вам нужно было бы подумать о написании пользовательского тестового модуля, построенного на существующем тестовом модуле, чтобы разрешить чтение данных из электронных таблиц.

Однако я бы больше сосредоточился на выборе инструмента, который подходит для конечной точки, которую вы пытаетесь протестировать. Для веб-интерфейса я бы порекомендовал selenium или HtmlUnit. Вам нужно было бы рассмотреть альтернативные методы для получения данных из электронной таблицы в эти тесты. Но это позволит использовать ваш пользовательский интерфейс как можно ближе к пользователю.

Чтобы протестировать конечную точку soap, я бы предложил просто написать модульные тесты, используя JUnit и издеваясь над серверной частью. Вы можете протестировать серверную часть отдельно с помощью модульных тестов, чтобы убедиться, что это работает правильно. В зависимости от архитектуры вашего приложения это может оказаться неподходящим вариантом для вас. Возможно, вы захотите настроить их как интеграционные тесты и выполнить их через JUnit и подтвердить возвращенное сообщение. И снова вам нужно было бы написать библиотеку, которая получала бы данные и ожидаемые значения из электронной таблицы.

Надеюсь, это полезно для вас.

Ответ №5:

Возможно, вы захотите взглянуть на Twist из Thoughtworks. Это IDE для функционального тестирования. QA / BAs могут использовать естественный язык для определения тестовых примеров. Twist использует Selenium и JUnit под капотом, поэтому сгенерированные тестовые примеры могут контролироваться версиями.

Я согласен с @stuartf в том, что вы не собираетесь находить готовое решение, которое будет загружать данные Excel и утверждать против них. Вы могли бы использовать POI или какой-либо другой Excel Reader для загрузки данных в вашу платформу тестирования.

Ответ №6:

Я могу порекомендовать SoapUI (http://www.soapui.org /) или приложение JMeter (http://jmeter.apache.org /).

С помощью SoapUI я выполнил функциональные тесты для своего веб-сервиса (soap-). Вы можете автоматизировать эти тесты.

С помощью Apache JMeter я выполнил автоматические тесты производительности в веб-интерфейсе. Тестовые данные также были основаны на листе Excel.

С уважением, Патрик