Тестирование API - лучшая стратегия для принятия - PullRequest
0 голосов
/ 11 октября 2018

У меня есть несколько вопросов к тебе.Позвольте мне дать некоторые детали, прежде чем я брошу вопросы.

Недавно я принимал участие в автоматизации тестирования Api Rest.У нас есть один API для отдыха для извлечения ресурсов (этот API в основном используется в нашем пользовательском интерфейсе веб-приложения для различных бизнес-процессов для получения данных), хотя это один и тот же API для ресурсов, фактическая конечная точка изменяется соответственно для разных ситуаций. То есть передаваемые параметры запросав URL-адресе api различается в зависимости от бизнес-процесса.

Например, что-то вроде

`. / getListOfUsers? attribute = ageLessThanTen ../getListOfUsers?criteria=agedBetweenTenAndTwenty ../getListOfUsers?criteria= ageBetweenTwentyAndThirty и т. д.

Поскольку существует только один API-интерфейс и поскольку бизнес-процесс не требует его, у нас нет цепочки запросов между API-интерфейсами. Таким образом, тест просто воздействует на отдельные конечные точки и проверяет содержимое ответа.Ответ подтверждается на основе предоставленных тестовых данных.Таким образом, файл тестовых данных содержит список пользователей, ожидающих при попадании в каждую конкретную конечную точку.т. е. тестовый файл похож на статический контент, который будет использоваться для проверки контента ответа каждый раз, когда мы нажимаем на него ... если фактический ответ получен с сервера, отклоняющегося с нашими предоставленными тестовыми данными, это будет фиаско.(также есть тесты для повторного размещения контента, без аутентификации и т. д.)

Этот тест в порядке, чтобы подтвердить, что конечные точки работают, а содержание ответа хорошее или нет.

Мои актуальные вопросы включеныстратегия тестирования или бизнес-каверга здесь,

  1. Достаточен ли такой одиночный удар по конечной точке API здесь или нет ..

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

  3. Если конечные точки APIдополняют друг друга, добавляют больше тестов, это будет просто дубликат тестов / больше сопровождения / и другие проблемы позже, и мы должны избежать этого?если он не дает значений?
  4. Какова общая тенденция автоматизации API в отношении покровных?,Я полагаю, что его следует использовать для тестирования потоков бизнес-интеграции и сценариев, если это требуется, но для подобных ситуаций действительно ли это необходимо
  5. также следует ли нам помнить об этом здесь, что автоматизация не должназаменить ручное тестирование, но только для того, чтобы дополнить его.и попытка автоматизировать каждый возможный сценарий не принесет пользы, а только потом вызовет проблемы с обслуживанием?

Спасибо

1 Ответ

0 голосов
/ 11 октября 2018

Достаточно ли такого единственного попадания в конечную точку API здесь или нет ..

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

Какова общая тенденция автоматизации APIв отношении кавалеров?... автоматизация не заменяет ручное тестирование, а только дополняет его.и попытка автоматизировать каждый возможный сценарий не принесет пользы, а только потом вызовет проблемы с обслуживанием?

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

На самом деле вы обычно хотите иметь пирамиду тестов из множества модульных тестов, некоторых интеграционных тестов и меньшеконечные тесты, но в этом случае, поскольку пользовательский интерфейс не задействован, конечный пользователь является просто еще одним программным модулем, и время выполнения API-интерфейсов REST относительно короткое, а стабильность относительно хорошая, тогда, вероятно, приемлемо иметь более широкий сквозной тестlayer.

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

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

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