От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера
1. Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Александр Зуев
БПЦ Банковские Технологии. Москва, Россия
Автоматизированное тестирование - от
сложного к простому, или Запускаем автотесты
из браузера
2. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Варианты решений
Стандартное решение
Желаемое решение
TMSRUNNER
6. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
●
Пишем автотесты
●
Запускаем автотесты на сервере (Виртуальный дисплей)
●
Черная магия:
●
Поднимаем netcat и заставляем его слушать порт
4444
●
«Живучесть» netcat или «Демонизация» процесса
●
Передача команды netcat`у из PHP-шной функции
shell_exec('command')
●
Ответ от Jasmine:
●
Jasmine: посылаем уведомление в Nginx
●
Запись отчета в базу
Этапы реализации
10. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
nc -k -l 4444 | bash > /path/to/log-file.log
●
nc
●
-k -l
●
4444
●
| bash
●
> /path/to/log-file.log
kill -9 "$(pidof ncat)"
Поднимаем netcat
11. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
1) Netcat должен работать постоянно;
2) «Автоподъем» netcat в случае его падения;
3) Автоматическая настройка и экспорт виртуального
дисплея при старте «демона»
4) Автоматическая остановка виртуального дисплея при
остановки «демона»
5) Автоматическая остановка netcat при остановке
«демона»
«Демонизация»
15. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Jasmine: уведомление Nginx
var shell = require('shelljs');
var myReporter = {
…
jasmineDone: function() {
shell('curl -s -v -X POST "http://server.com/pub?
id=the_channel" -d "TEST_ID"');
//запись отчета в базу
}
}
-s — silent
-v — verbose
-X — request
-d — data
Jasmine: custom reporter + ShellJS
16. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Совсем чуть-чуть до финиша
●
Настроить Nginx
●
Обработать
напильником TMS
●
…
●
PROFIT!
Осталось: