Обновить

Автоматизация автоматизированного тестирования или Сила batch файлов

Чулан
— Почему не работаешь?
— Оно тестируется


Привет, Хабролюди.

Решил поделиться с вами своим опытом на тавтологическую тему – автоматизация автоматизированного тестирования. Как мы все знаем, чтобы не тратить время на регрессионные тесты умные тестировщики придумали когда-то использовать что-то кроме рук для прогона тестов.
Но захотелось автоматизации полного цикла, то есть от начала тестов до получения результатов. Итак…
image

Задача.


Автоматизировать циклическое тестирование приложения на разных операционных системах без участия человека.

Условие.


Есть программный продукт, новые версии которого активно разрабатываются. Следовательно необходимость регрессионного тестирования очевидна. Продукт мультиплатформный – тестировать надо на разных операционных системах.

В «железном» плане – есть 5 тестовых компьтеров, 1 сервер, 1 FTP сервер – все это ласково называется «тестовая ферма». Трудность в моем случае была в том, что все это находилось за 2 тысячи километров от меня, и доступ был только по RDP и KVM.

В программном плане – тестируемое приложение написано с помощью Qt и для тестирования выбран Squish. Для установки разных операционных систем на тестовые компьютеры используется Acronis Snap Deploy.

Решение.


Есть скрипты, которые непосредственно тестируют приложение. Необходимо их запустить, получить результаты, сменить ОС, запустить, получить результаты, и так далее в цикле. В конце было бы неплохо эти результаты как-то отформатировать.

Как происходит автоматическая установка образа системы на целевой компьютер с помощью Acronis Snap Deploy? Для установки образа в более-мение автоматическом режиме нам необходимо перезагрузить целевой компьютер, когда он словит PXE сервер (компьютеры должны быть настроены на загрузку с сетевой карты в первую очередь), выбрать пункт PE Media. Загрузится PE среда, в которой локально можно запустить деплой образа системы. PE среду необходимо заранее подготовить, т. е. собрать и вложить в нее утилиту командной строки Aronis Snap Deploy Command Line (asdcmd.exe) и сервис psexesvc.exe, засунуть ее в Acronis PXE Server и выставить загрузку по умолчанию на нее.
Как мы будем запускать сприпты? На сервере тестовой фермы (дальше речь будет только о ней) по расписанию будет запускаться .bat файл, который и будет запускать скрипты.

Итак цепочка, в которой собственно и раскрывается вся сила .bat файлов и psexec вчастности:
В определенное время стартует .bat файл, который вызывает деплой необходимой системы на целевом компьютере:
  • запускаем сервис Акрониса, так как потом мы его будем выключать;
  • посылаем целевой компьютер с IP = comIP в ребут;
  • тянем время, ждем пока компьютер ребутнется, подхватит PXE среду и зайдет в PE Media;
  • выключаем сервис Акрониса, чтобы после деплоя образа системы загружалась ОС, а не PE Media, стоящая по умолчанию в PXE сервере;
  • собственно сам сценарий деплоя, подробности описывать не буду, все есть в мануале.

net start AcronisPXE.exe
psexec \\compIP reboot
ping compIP
ping compIP
net stop AcronisPXE.exe
psexec \\compIP asdcmd /deploy [param]


Далее мы ждем пока происходит деплой образа. Для этого нам надо заранее в каждый образ (их всеравно надо создавать) засунуть по файлу, например ready.txt. Мы проверяем когда файл станет доступным, что свидетельствует об окончании деплоя:

psexec \\compIP cmd
if exist ready.txt (
goto do
) else ( ping compIP)
do scripts.bat


Таким образом, после установки образа мы начинаем тестирование. Файл scripts.bat начинает установку Squish, тесты, формирует результаты, высылает их, и т. д. В конце он вызывает наш батник, который повторяет все это заново. Чтобы процесс не был цикличным, можно контролировать его разными способами, например простой счетчик.

Вывод.


Данное решение позволяет нам двойным кликом по банику запустить весь процесс мультиплатформенного автоматизированного тестирования.

Также мне не кажется, что это очень нетривиальная задача, и я думаю, должны быть какие-нибудь более простые решения данной проблемы. Сейчас копаю в сторону Altiris.

Всем спасибо за потраченое время на чтение данного опуса.
Теги:qaавтоматизированное тестированиеbatch
Хабы: Чулан
Рейтинг +6
Количество просмотров 1,3k Добавить в закладки 6
Комментарии
Комментарии 12

Похожие публикации

Лучшие публикации за сутки