Разработка UI-тестов через запись действий пользователя. Часть 1.
В предыдущих заметках долго рассуждал, что и как сделать сразу правильно что бы не было мучительно больно потом. Однако можно справедливо возразить, что это академический подход и он далек от реальности, в которой есть сжатые сроки и ограниченные ресурсы.
Поэтому откинем все что было сказано до этого времени и пойдем простейшим путем. Для разработки автоматизированного UI-теста воспользуемся возможностью платформы и запишем действия пользователя, преобразуем их в исполняемый код и будем запускать его на выполнение после обновления базы типовым релизом для исключения регрессии.
Будем использовать документ Требование накладная, т.к. для него разработаны нестандартные печатные формы, а конфигурация регулярно обновляется типовыми релизами. Чтобы проверить печатную форму нужен документ с заполненными реквизитами, а некоторые формы требуют еще и проведение документа, т.к. берут данные из проводок. Поэтому тест будет создавать новый документ, заполнять реквизиты формы, проводить его и формировать печатную форму. Посмотрим насколько сложно это сделать.
Ответим на еще один вопрос, который волнует всех менеджеров, можно ли поручить разработку автотестов и последующее тестирование с их помощью не техническому специалисту. Чтобы не отвлекать дорогостоящих программистов от важной работы.
Выполняем запись действий пользователя, который выполняет следующую последовательность действий:
- открывает форму списка документов Требование накладная
- нажимает кнопку Создать
- в открытой форме нового документа заполняет реквизиты
- после окончания заполнения реквизитов формы нажимает кнопку Записать и провести
- нажимает сформировать печатную форму
С помощью "типовой" обработки преобразовываем журнал действий пользователя в исполняемый код. Чтобы запускать код на исполнение, создаем внешнюю обработку и переносим код в модуль формы. Запускаем 2 базы: одна в режиме "Клиент тестирования" другая в режиме "Менеджер тестирования". База "Менеджер тестирования" может быть любой, в ней будет исполнятся код сценария. Базой "Клиент тестирования" должна быть база, в которой производилась запись действий пользователя.
Первый же запуск сценария приводит к ошибке:
Значение не является значением объектного типа (Нажать) {ВнешняяОбработка.ТребованиеНакладнаяМ11.Форма.Форма.Форма(61)}: КнопкаСоздать.Нажать();
Код примитивный, кнопка Создать на месте и причина ошибки остается загадкой. Упорно игнорируем знаки судьбы и запускаем повторно. На этот раз код выполняется - открывается форма нового документа, заполняются реквизиты формы, документ проводится, но возникает другая ошибка:
Значение не является значением объектного типа (НайтиОбъект) {ВнешняяОбработка.ТребованиеНакладнаяМ11.Форма.Форма.Форма(167)}:
Повторный запуск также приводит к ошибке. Тест не работает. "В лоб" задача не решается, для продолжения требуются технические навыки.
Продолжение: Разработка UI-тестов через запись действий пользователя. Часть 2.