SlideShare una empresa de Scribd logo
1 de 17
Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Александр Зуев
БПЦ Банковские Технологии. Москва, Россия
Автоматизированное тестирование - от
сложного к простому, или Запускаем автотесты
из браузера
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Варианты решений
Стандартное решение
Желаемое решение
TMSRUNNER
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Взгляд аналитика на автотесты
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Инструментарий
Системный Тестирование Веб-сервер Вспомогательный
Linux CentOS Selenium Nginx MySQLjs
Bash Protractor PHP ShellJS
Netcat Jasmine2 MySQL
cURL JavaScript
Xvfb
NodeJS + NPM
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Как это выглядит?
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
●
Пишем автотесты
●
Запускаем автотесты на сервере (Виртуальный дисплей)
●
Черная магия:
●
Поднимаем netcat и заставляем его слушать порт
4444
●
«Живучесть» netcat или «Демонизация» процесса
●
Передача команды netcat`у из PHP-шной функции
shell_exec('command')
●
Ответ от Jasmine:
●
Jasmine: посылаем уведомление в Nginx
●
Запись отчета в базу
Этапы реализации
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Виртуальный дисплей
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
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 }'`
Виртуальный дисплей
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Netcat
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
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
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
1) Netcat должен работать постоянно;
2) «Автоподъем» netcat в случае его падения;
3) Автоматическая настройка и экспорт виртуального
дисплея при старте «демона»
4) Автоматическая остановка виртуального дисплея при
остановки «демона»
5) Автоматическая остановка netcat при остановке
«демона»
«Демонизация»
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
PHP: shell_exec()
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
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
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Jasmine + ShellExec
AJAX-запрос
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
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
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
Совсем чуть-чуть до финиша
●
Настроить Nginx
●
Обработать
напильником TMS
●
…
●
PROFIT!
Осталось:
Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из
браузера
●
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/
Ссылки

Más contenido relacionado

La actualidad más candente

Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикSQALab
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demandSQALab
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingSQALab
 
Использование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовИспользование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовSQALab
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаSQALab
 
Let's Talk About Junit 5
Let's Talk About Junit 5Let's Talk About Junit 5
Let's Talk About Junit 5SQALab
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...SQALab
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья КудиновCodeFest
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровPositive Hack Days
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...SQALab
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковSQALab
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестированиеSPB SQA Group
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияbearoff
 
Kubernetes
KubernetesKubernetes
KubernetesSQALab
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Ontico
 
Нагрузочное тестирование теория Кожухов
Нагрузочное тестирование теория КожуховНагрузочное тестирование теория Кожухов
Нагрузочное тестирование теория КожуховИлья Кожухов
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Serversrit2010
 
Тестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиТестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиSQALab
 

La actualidad más candente (20)

Тестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практикТестирование REST-сервисов с применением инженерных практик
Тестирование REST-сервисов с применением инженерных практик
 
Selenium grid on-demand
Selenium grid on-demandSelenium grid on-demand
Selenium grid on-demand
 
WPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testingWPF Automation – test injection approach to application testing
WPF Automation – test injection approach to application testing
 
Использование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовИспользование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестов
 
Инструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщикаИнструментация среды исполнения в арсенале тестировщика
Инструментация среды исполнения в арсенале тестировщика
 
Let's Talk About Junit 5
Let's Talk About Junit 5Let's Talk About Junit 5
Let's Talk About Junit 5
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей БуровСистема мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
Система мониторинга Zabbix в процессах разработки и тестирования | Алексей Буров
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
 
JIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиковJIRA. С добавками. Для тестировщиков
JIRA. С добавками. Для тестировщиков
 
Нагрузочное тестирование
Нагрузочное тестированиеНагрузочное тестирование
Нагрузочное тестирование
 
Основы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрованияОсновы и нюансы параллельного тестрования
Основы и нюансы параллельного тестрования
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
Bosun современный мониторинг / Дима Медведев (OneTwoTrip)
 
Нагрузочное тестирование теория Кожухов
Нагрузочное тестирование теория КожуховНагрузочное тестирование теория Кожухов
Нагрузочное тестирование теория Кожухов
 
антон веснин Rails Application Servers
антон веснин Rails Application Serversантон веснин Rails Application Servers
антон веснин Rails Application Servers
 
Тестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиТестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностями
 

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

Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаSQALab
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)Ontico
 
Vladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingVladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingIevgenii Katsan
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиSQALab
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картqasib
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )Mobile Developer Day
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )Mobile Developer Day
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Fwdays
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукHackIT Ukraine
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщикаmcslayer
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаAleksandr Boichenko
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Dmitry Lobasev
 

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

Automation testing desktop applications
Automation testing desktop applicationsAutomation testing desktop applications
Automation testing desktop applications
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три года
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)Тестируй это / Виктор Русакович (GP Solutions)
Тестируй это / Виктор Русакович (GP Solutions)
 
Практика
ПрактикаПрактика
Практика
 
Vladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testingVladimir Trandafilov - When you need your system of cross browser testing
Vladimir Trandafilov - When you need your system of cross browser testing
 
Автоматизация тестирования многопоточности
Автоматизация тестирования многопоточностиАвтоматизация тестирования многопоточности
Автоматизация тестирования многопоточности
 
Кутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных картКутумов - Автоматизация тестирования транспортных карт
Кутумов - Автоматизация тестирования транспортных карт
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"Svyatoslav Login "How to test authentication and authorization for security"
Svyatoslav Login "How to test authentication and authorization for security"
 
Техники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай ОвчарукТехники пентеста для активной защиты - Николай Овчарук
Техники пентеста для активной защиты - Николай Овчарук
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
 
Automation Compliance Checks
Automation Compliance ChecksAutomation Compliance Checks
Automation Compliance Checks
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Нагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.ТанкаНагрузочное тестирование с помощью Яндекс.Танка
Нагрузочное тестирование с помощью Яндекс.Танка
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)
 

Más de SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Más de SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

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

  • 1. Software quality assurance days 21 Международная конференция по вопросам качества ПО sqadays.com Москва. 26–27 мая 2017 Александр Зуев БПЦ Банковские Технологии. Москва, Россия Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера
  • 2. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Варианты решений Стандартное решение Желаемое решение TMSRUNNER
  • 3. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Взгляд аналитика на автотесты
  • 4. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Инструментарий Системный Тестирование Веб-сервер Вспомогательный Linux CentOS Selenium Nginx MySQLjs Bash Protractor PHP ShellJS Netcat Jasmine2 MySQL cURL JavaScript Xvfb NodeJS + NPM
  • 5. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Как это выглядит? AJAX-запрос
  • 6. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера ● Пишем автотесты ● Запускаем автотесты на сервере (Виртуальный дисплей) ● Черная магия: ● Поднимаем netcat и заставляем его слушать порт 4444 ● «Живучесть» netcat или «Демонизация» процесса ● Передача команды netcat`у из PHP-шной функции shell_exec('command') ● Ответ от Jasmine: ● Jasmine: посылаем уведомление в Nginx ● Запись отчета в базу Этапы реализации
  • 7. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Виртуальный дисплей AJAX-запрос
  • 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. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Netcat AJAX-запрос
  • 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 при остановке «демона» «Демонизация»
  • 12. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера PHP: shell_exec() AJAX-запрос
  • 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. Автоматизированное тестирование - от сложного к простому, или Запускаем автотесты из браузера Jasmine + ShellExec AJAX-запрос
  • 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! Осталось:
  • 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/ Ссылки