Проверка сортировки на странице - что и как проверять

Все привет.

Назрел такой вопрос.
Допустим надо протестировать сортировку на сайте:

http://www.mvideo.ru/televizory-i-cifrovoe-tv/televizory-65

При выборе вида сортировки например “По названию”, как видите, меняется url на адрес вида:

http://www.mvideo.ru/televizory-i-cifrovoe-tv/televizory-65?sort=nameZA

Вопрос звучит так - при проверке сортировки:

  • что проверять с помощью UI тестов (селениум).
  • что проверять с помощью Unit/API тестов.

Ваши мысли?

Ну, сходу я тут вижу 2 решения:
1). Проверяем, что параметризованные URLs возвращают сортированные данные (API тест).
2). Проверяем, что при выборе соответствующей сортировки подставляется корректный параметр в URL (UI тест).
Или
Проверяем, что при выборе соответствующей сортировки приходят сортированные данные (UI тест)

Плюсы 1-го решения - более понятен root cause ошибки. UI тест получается простым и легко поддерживаемым.
Минусы: надо писать 2 теста. При изменениях придётся апдейтить оба теста, скорее всего. UI тест может поломаться при изменении имени / значения параметра в URL.

Плюсы 2-го решения: 1 тест. Нечувствителен к изменению имени и значений параметра в URL.
Минусы: UI тест будет сложнее. Более чувствителен к изменениям в DOM страницы (может поломаться при изменениях в элементе, отображающем данные). Если данные разбиваются на несколько страниц - реализация теста дополнительно усложняется.

Стоит ли с помощью UI (читай, селениум тестов) проверять, что прилетели данные правильно:

  • названия по алфавиту
  • цены по возрастанию
  • рейтинг по убыванию и т.д.

Пытаясь эти данные вытащить из DOM каким-нибудь образом.

Или все же, грамотнее, правильнее, на UI переложить только проверки:

  • функционально кнопки работают
  • URL нужный формируется
  • страница нужная открывается без ошибок

А все остальное - переложить на плечи API?

Нет, нужно так же порядок элементов проверять на UI.

Нет понятия правильно\неправильно - есть понятие - “хорошо в этой конкретной ситуации”

2 лайка