Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Ал...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Варианты решений
Стандартное...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Взгляд аналитика на автотесты
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Инструментарий
Системный Тес...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Как это выглядит?
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
●
Пишем автотесты
●
Запускае...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Виртуальный дисплей
AJAX-зап...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Xvfb -fp /usr/share/fonts/X1...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Netcat
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
nc -k -l 4444 | bash > /path...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
1) Netcat должен работать по...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
PHP: shell_exec()
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
PHP: shell_exec('command');
...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Jasmine + ShellExec
AJAX-зап...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Jasmine: уведомление Nginx
v...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Совсем чуть-чуть до финиша
●...
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
●
Linux CentOS - https://www...
Upcoming SlideShare
Loading in …5
×

Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера

547 views

Published on

Доклад Александра Зуева на конференции SQA Days-21
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера

  1. 1. Software quality assurance days 21 Международная конференция по вопросам качества ПО sqadays.com Москва. 26–27 мая 2017 Александр Зуев БПЦ Банковские Технологии. Москва, Россия Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера
  2. 2. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Варианты решений Стандартное решение Желаемое решение TMSRUNNER
  3. 3. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Взгляд аналитика на автотесты
  4. 4. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Инструментарий Системный Тестирование Веб-сервер Вспомогательный Linux CentOS Selenium Nginx MySQLjs Bash Protractor PHP ShellJS Netcat Jasmine2 MySQL cURL JavaScript Xvfb NodeJS + NPM
  5. 5. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Как это выглядит? AJAX-запрос
  6. 6. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера ● Пишем автотесты ● Запускаем автотесты на сервере (Виртуальный дисплей) ● Черная магия: ● Поднимаем netcat и заставляем его слушать порт 4444 ● «Живучесть» netcat или «Демонизация» процесса ● Передача команды netcat`у из PHP-шной функции shell_exec('command') ● Ответ от Jasmine: ● Jasmine: посылаем уведомление в Nginx ● Запись отчета в базу Этапы реализации
  7. 7. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Виртуальный дисплей AJAX-запрос
  8. 8. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Xvfb -fp /usr/share/fonts/X11/misc/ :22 -screen 0 1024x768x16 2>&1 & export DISPLAY=:22 ● Xvfb ● -fp /usr/share/fonts/X11/misc/ ● :22 ● -screen 0 1024x768x16 ● 2>&1 & ● export DISPLAY=:22 kill -9 `ps -eo pid,args | grep "Xvfb.*:22" | grep -v grep| awk '{ print $1 }'` Виртуальный дисплей
  9. 9. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Netcat AJAX-запрос
  10. 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. 11. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера 1) Netcat должен работать постоянно; 2) «Автоподъем» netcat в случае его падения; 3) Автоматическая настройка и экспорт виртуального дисплея при старте «демона» 4) Автоматическая остановка виртуального дисплея при остановки «демона» 5) Автоматическая остановка netcat при остановке «демона» «Демонизация»
  12. 12. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера PHP: shell_exec() AJAX-запрос
  13. 13. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера PHP: shell_exec('command'); <?php shell_exec('echo "protractor /path/to/protractor- conf.js" | nc localhost 4444'); ?> ● shell_exec(); ● echo ● "protractor /path/to/protractor-conf.js" ● | nc localhost 4444
  14. 14. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Jasmine + ShellExec AJAX-запрос
  15. 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. 16. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Совсем чуть-чуть до финиша ● Настроить Nginx ● Обработать напильником TMS ● … ● PROFIT! Осталось:
  17. 17. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера ● Linux CentOS - https://www.centos.org/ ● NodeJS + NPM - https://nodejs.org/ + https://www.npmjs.com/ ● Selenium - www.seleniumhq.org/ ● Protractor - www.protractortest.org/ ● Jasmine2 - https://jasmine.github.io/ ● JavaScript - http://javascript.ru/ ● Bash - https://ru.wikipedia.org/wiki/Bash ● Netcat - https://linux.die.net/man/1/nc ● Nginx - https://nginx.ru/ru/ ● Nginx Push Stream module - https://github.com/wandenberg/nginx-push-stream-module ● PHP - http://php.net/ ● MySQL - https://www.mysql.com/ ● MySQLjs - https://www.npmjs.com/package/mysql ● ShellJS - https://www.npmjs.com/package/shelljs ● CURL - https://ru.wikipedia.org/wiki/CURL ● Xvfb - https://en.wikipedia.org/wiki/Xvfb ● Создание «демона» на bash - https://habrahabr.ru/post/151771/ Ссылки

×