UI-тестирование
March 30, 2021

Разработка UI-тестов через запись действий пользователя. Часть 1.

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

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

Будем использовать документ Требование накладная, т.к. для него разработаны нестандартные печатные формы, а конфигурация регулярно обновляется типовыми релизами. Чтобы проверить печатную форму нужен документ с заполненными реквизитами, а некоторые формы требуют еще и проведение документа, т.к. берут данные из проводок. Поэтому тест будет создавать новый документ, заполнять реквизиты формы, проводить его и формировать печатную форму. Посмотрим насколько сложно это сделать.

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

Выполняем запись действий пользователя, который выполняет следующую последовательность действий:

  1. открывает форму списка документов Требование накладная
  2. нажимает кнопку Создать
  3. в открытой форме нового документа заполняет реквизиты
  4. после окончания заполнения реквизитов формы нажимает кнопку Записать и провести
  5. нажимает сформировать печатную форму

С помощью "типовой" обработки преобразовываем журнал действий пользователя в исполняемый код. Чтобы запускать код на исполнение, создаем внешнюю обработку и переносим код в модуль формы. Запускаем 2 базы: одна в режиме "Клиент тестирования" другая в режиме "Менеджер тестирования". База "Менеджер тестирования" может быть любой, в ней будет исполнятся код сценария. Базой "Клиент тестирования" должна быть база, в которой производилась запись действий пользователя.

Первый же запуск сценария приводит к ошибке:

Значение не является значением объектного типа (Нажать)
{ВнешняяОбработка.ТребованиеНакладнаяМ11.Форма.Форма.Форма(61)}: КнопкаСоздать.Нажать();

Код примитивный, кнопка Создать на месте и причина ошибки остается загадкой. Упорно игнорируем знаки судьбы и запускаем повторно. На этот раз код выполняется - открывается форма нового документа, заполняются реквизиты формы, документ проводится, но возникает другая ошибка:

Значение не является значением объектного типа (НайтиОбъект)
{ВнешняяОбработка.ТребованиеНакладнаяМ11.Форма.Форма.Форма(167)}:

Повторный запуск также приводит к ошибке. Тест не работает. "В лоб" задача не решается, для продолжения требуются технические навыки.

Продолжение: Разработка UI-тестов через запись действий пользователя. Часть 2.