Разделы портала

Онлайн-тренинги

.
Создание портфолио автоматизации: тестирование RPA
30.03.2021 00:00

Автор: Бет Маршалл (Beth Marshall)
Оригинал статьи
Перевод: Ольга Алифанова

  • Язык: VB.Net / UiPath
  • IDE: UiPath Studio
  • Инструмент управления исходным кодом: Github через Github Desktop
  • Тип тестов: UiPath
  • Тестируемый сайт: сайт моего спортзала

В этой статье я бы хотела поговорить про свой опыт создания тест-фреймворка роботизированной автоматизации процессов (RPA) с использованием ведущего поставщика на рынке UiPath.

Я познакомилась с UiPath в этом году, когда одной из первых сдавала их новый базовый экзамен – UiRPAv1. Я официально сертифицирована, но почти не работала с этим инструментом после сдачи экзамена, поэтому это показалось хорошей идеей для обучения на ходу.

Я очень довольна тем, как продвигается работа над моим портфолио, учитывая, с чего я начинала, но не думайте, что этот код занял у меня пару минут. Я потратила несколько дней, и много времени ушло на Google. Но все мы с чего-то начинаем, и я уверена, что кривая обучения ускорит работу в следующий раз. Еще один дополнительный бонус – симпатичный шаблон, с которого я смогу начать в следующий раз.

Проект

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

 

Что делает робот?

Вот видео процесса бронирования. Заметьте, что я не подтверждаю бронирование (это нельзя отменить без звонка в спортзал, так как функция онлайн-отмены отсутствует). Робот делает вот что:

  • Безопасно авторизуется учетной записью (если это не удалось, отправляется письмо)
  • Выбирает дату – в этом случае по умолчанию, но пользователь может выбрать ее во всплывающем окне.
  • Выбирает время – снова используя значения по умолчанию, но это можно изменить
  • Выбирает бассейн или спортзал – по умолчанию спортзал, но если пользователь вводит значение во всплывающем окне, оно считывается с SQL Server Express database (созданной мною с нуля), и возвращается номер соответствующего вида деятельности.
  • Подтверждает бронирование или, как вариант, удаляет бронирование.
  • Разлогинивается и закрывает браузер.
  • Все ключевые процессы содержат блоки попытки/отлова исключений.

Видео автоматизированного процессе

Код был написан в UiPath Studio (бесплатный инструмент) на его собственном языке, а некоторые кастомизированные поля – на VB.net. Потоки и тесты выполняются или вручную через Studio, или роботом по расписанию, созданном в UiPath Orchestrator.

Если вы новичок в UiPath или роботизированной автоматизации процессов: полный сценарий разбивается на ключевые потоки/последовательности, использующие настраиваемые функции "перетащить и отпустить" для организации последовательности действий. Процесс затем встраивается во фреймворк машины состояний, позволяющий надежно выполнять тесты и разбираться с ошибками.

 

Пример блока кода внутри рабочего процесса.

Высокоуровневый обзор

Ключевые функции фреймворка:

 


Триггер для запуска процесса по расписанию в UiPath Orchestrator

Код

Код находится в моем репозитории GitHub, и я буду благодарна за обратную связь. Другой новый инструмент, которым я воспользовалась - GitHub Desktop, благодаря которому я смогла напрямую коммитить код из UiPath в GitHub, а также добавлять файлы в менеджер файлов вместо использования веб-интерфейса GitHub (с которым я так и не разобралась). Теперь я буду пользоваться Desktop для контроля версий.




GitHub Desktop все упростил


Интеграция UiPath с Git

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

 

Итоги

Хоть лично мне и помогла автоматизация процесса для сайта, которым я действительно пользуюсь (хоть и не планирую использовать автоматизацию для чего-то помимо обучения), но это было ошибкой. В результате этот элемент портфолио менее ценен, чем если бы я выбрала, например, сайт для практики вроде OpenCart or Restful Booker, - никто не сможет увидеть запуск моего кода, потому что данные авторизации локально хранятся в Windows Credential Manager, и по очевидным причинам я не буду выкладывать их на GitHub. В следующий раз я воспользуюсь чем-то более общим, чтобы мой код смогли запустить все.

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

Я также перемудрила с решением, пытаясь доказать себе, что могу делать что-то "настоящее". Чертов синдром самозванца. У Энджи Джонс в репозитории такая чистая, простая структура кода – куда лучше сделать меньше и проще, особенно если это нужно пояснять на собеседованиях.

И, наконец, я понимаю, что опытный тестировщик/разработчик RPA неминуемо найдет, как улучшить мой код (и если кто-то может это сделать, я буду искренне благодарна). К примеру, я знаю, что вложенные утверждения – это не очень хорошо. Но мне не приходит в голову решения получше. Думаю, тут-то и пригодилось бы парное программирование или код-ревью с опытным человеком. Одна голова хорошо, а две лучше!

Обсудить в форуме