Automation works

Let's build automation that definitely works

Selenium – ожидание загрузки страницы

Ожидание загрузки страницы – одна из самых частых проблем. Идеально если у вас классное приложение и на момент загрузки данных показывает какой-нибудь spinner. В этом случае можно просто проверять наличие такого элемента на страничке и если его нет, то, вероятнее всего, все даные подгрузились и можно продолжать взаимодействие с элементами. Можно ждать body элемент, можно проверять readyState у документа. Но сегодня я раскажу вам еще одну вожможноть – это PerformanceTiming.

(more…)

Параллельному запуску тестов ReportPortal и SpecFlow быть

Вышел долгожданный (по крайней мере мной) фикс бага для SpecFlow агента ReportPortal. Суть проблемы заключается в том, что ReportPortal создает пустые тест раны в случае параллельного запуска тестов.

Для решения проблемы пришлось чинить SpecFlow, в следствии чего вышла новая 2.3.1 версия, со сломанной обратной совместимостью. А также были внесены обновления в ReportPortal.SpecFlow клиент. Последний рабочий набор библиотек выглядит так: (more…)

Передавать параметры в конструкторе – не самая хорошая идея

Заполнение объекта может быть реализовано в несколько способов. Один из них – это использование конструкторов или Helper методов. Но проблема в том, что таких методов может быть много, а также количество и тип входных параметров может меняться, что вызывает трудности при чтении. (more…)

REST API тестирование. Организация проекта

Наверное каждый, кто занимался UI тестированием приложений, слышал о Page Object и Page Factory патернах проектирования. И, уж точно, каждый из них знает в чем их преимущество. Но когда дело доходит до API, то тут начинается импровизация. Кто как придумал, кто как смог… кто-то формирует запросы в файлах, кто-то в классас, а кто-то и в тест методах не брезгует. Ниже я опишу вам как решал этот вопрос я у себя на проекте. (more…)

Топ 10 фичей решарпера, которые помогут быть вам более продуктивными

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

Regular expression assistance
Ты всегда можешь отредактировать и проверить регулярное выражение прямо в Visual Studio с помощью ReSharper. Подсветка синтаксиса, автодополнение и проверка на ошибки. Если написать выражение прямо в Regex методе

Regex.Match("input", ".*")

то ReSharper подхватет его автоматически, а если это переменная, то решарперу нужно помочь через Alt+Enter => Mark as injected language => Mark as .NET Regular Expression. Автоматизаторы, которые используют в проекте SpecFlow, будут рады вдвойне, так как все перечисленные возможности можно использовать в Step Definition файлах.

Layouts
У себя, в Automation проекте, мы отделяем Page Objects, Steps, Tests на отдельные слои. Степы тоже делятся на Given, When и Then. А еще бывают Helper методы, а еще поля, свойства, конструкторы… и вот если у вас команда растет, то все это приобретает некоторую хаотичность. Понять, что уже реализовано, а что нет становится сложно. Все степы перемешанны, среди них есть методы, а может и конструкторы. Так вот: решение конечно же есть у решарпера. Можно составить свой собственный шаблон для форматирования, а дальше ReSharper все сделает за вас. Если у вас в классе полненйший хаос, то после “чистки” все ваши степы будут разбиты на группы, а в группах отсортированы по имени. Конструкторы вначале, а хелперы вконце. Просто нажми Ctrl+Alt+F.

Go to Everything/Type
Ты помнишь название класса или интерфейса, но не помнишь где он лежит? Просто нажми Ctrl+N, и начни вводить имя класса, ReSharper предложит все варианты совпадений и ты очень быстро сможешь перейти в нужный. А если имя длинное, то его точно не нужно писать полностью. Допустим у нас есть класс NotImplementedException в этом случае достаточно написать только заглавные буквы NIE и ReSharper сразу же предложит вам нужный вариант.

Go to Text for textual search
А если нужно сделать поиск по строкам, то нажимаем Ctrl+N N N. Все, теперь можно искать по строковым литералам. Не нужно открывать окно поиска и потом ходить по результатам, ReSharper сразу же покажет найденный варианты в выпадающем списке.

Go to Action
Не все горячие клавиши решарпера можно запомнить, для этого есть Actions. Установи курсор внутрь скоупа и после нажатия Alt+Enter отобразятся список недавних действий. Начни вводить имя экшина в поле ввода и Resharper выдаст список всех доступных действий по введенному слову.

Go to Related Files
Как найти редактируемый файл в Solution Explorer? Просто Shift+Alt+Enter. Просто выделит файл и перенесёт на него фокус.

Find Usages
Увидеть список всех использований метода, класса или переменной можно с помощью функции Find Usages – горячие клавиши Alt+F7

To-do Explorer
В C# language есть возможность оставлять комментарии, это строка, которая начинается с символов // comment. Если оставлять комментарии в формате //TODO your comment, то ReSharper поможет отследить все такие места и покажет список заданий после нажатия Ctrl+Alt+.

Live templates
Наверное, это моя любимая фича для автоматизатора. Она позволяет создавать умные снипеты и поэтому код можно писать в несколько раз быстрее и удобнее чем раньше.