Тестируем производительность с помощью selenium

Post on 16-Apr-2017

1.664 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

www.luxoft-training.com

Performance testing with Selenium

SQA Days 19

www.luxoft-training.com

Обо мне

Александр Шиповалов Automation Engineer QA Expert in Luxoft Training

@shipovaloffalshipovalovashipovalov@gmail.com

www.luxoft-training.com

Тестируем производительность с

помощью Selenium

www.luxoft-training.com

Предисловие

Или гоните в шею этого “шарлатана”

www.luxoft-training.com

Предисловие

“Один за всех и все на одного!”

www.luxoft-training.com

Где еще…

Тестирование внешнего вида; Тестирование защищенности; Тестирование desktop приложений; Тестирование мобильных приложений; Мало?

www.luxoft-training.com

Зачем все это надо

Есть же: Jmeter, Tsung, Locustio, Siege, YandexТанк…. Но хитрые требования:­ Время отклика экранной формы

Наличие автоматизированных функциональных тестов; Большое количество “guides, manuals, tutirials”… Обширное сообщество.

www.luxoft-training.com

Зачем все это надо

Соблазн велик; Особенно при небольшой нагрузке. Менеджмент напирает?

www.luxoft-training.com

“Автостопом по галактике”

“Я трачу на тебя время только по одной причине – мне его девать некуда”

www.luxoft-training.com

Давайте разделять

Клиентская производительность; Серверная производительность;

www.luxoft-training.com

Клиентская производительность

www.luxoft-training.com

В лоб

Logs; Отчеты; e. g. Allure …

www.luxoft-training.com

Logs and reports

Всегда доступно; Просто; Сложно агрегировать; Сложно трактовать результаты; Анти-паттерн.

www.luxoft-training.com

По хитрее

Browser mob proxy

www.luxoft-training.com

Browser mob proxy

Проблема с версиями; Что будет с Selenium 3; Совместимость?

www.luxoft-training.com

По хитрее и не бесплатно

HttpWatch

www.luxoft-training.com

HttpWatch

C# Ruby Javascript Internet Explorer and Mozilla Firefox HttpWatch Studio HAR

www.luxoft-training.com

По хитрее и не бесплатно

DynaTrace

www.luxoft-training.com

DynaTrace

dynaTrace AJAX Edition; Internet Explorer and Mozilla Firefox;

www.luxoft-training.com

Вкратце

Больше деталей – меньше надежность; Сложность с CI и отчетами; Совместимость? Безопасность?

www.luxoft-training.com

True way

Navigation timing API; https://www.w3.org/TR/navigation-timing/ IE, Firefox, Google Chrome, web-kit браузеры

www.luxoft-training.com

Navigation timing API

www.luxoft-training.com

Пример driver.get(SOME_URL);

JavascriptExecutor js = (JavascriptExecutor) driver;

// Получаем время Load Event End (окончание загрузки страницы)

long loadEventEnd = (Long) js.executeScript("return window.performance.timing.loadEventEnd;");

// Получаем Navigation Event Start (начало перехода)

long navigationStart = (Long) js.executeScript("return window.performance.timing.navigationStart;");

// Разница между Load Event End и Navigation Event Start - это время загрузки страницы

System.out.println("Page Load Time is " + (loadEventEnd - navigationStart)/1000 + " seconds.");

www.luxoft-training.com

Navigation timing API

В формате UTC; Совесть? Стандарт?

www.luxoft-training.com

Предварительные выводы

C клиентской производительностью все хорошо; По крайней мере неплохо; Есть из чего выбирать; Это неудивительно; Но будьте осторожны…

www.luxoft-training.com

Серверная производительность

www.luxoft-training.com

“Автостопом по галактике”

“Логика – замечательная вещь, но, как показал процесс эволюции, и у нее есть свои слабые места”

www.luxoft-training.com

Очевидно

Selenium Grid; Многопоточность;

www.luxoft-training.com

Selenium Grid

Hub не балансировщик; Многопоточность в тестах? Отчётность?

www.luxoft-training.com

Хитро

Jmeter plugins Есть нюансы:­ httpclient-4.2.6.jar­ httpcore-4.2.5.jar­ httpmime-4.2.6.jar

www.luxoft-training.com

“Автостопом по галактике”

“Он привык не замечать, что происходит вокруг, так ему было даже уютнее”

www.luxoft-training.com

Еще хитрее

Можно так же замерять время загрузки; Groovy, JavaScript, Bean Shell… Все смешалось в доме Облонских…

www.luxoft-training.com

Дорого

BlazeMeter; JavaScript или .jmx; Альтернативный рекордер для Jmeter; Настоящий браузер; Наглядно и быстро; Настоящие браузеры.

www.luxoft-training.com

Пример

var pkg = JavaImporter(org.openqa.selenium);

var support_ui = JavaImporter(org.openqa.selenium.support.ui.WebDriverWait);

var wait = new support_ui.WebDriverWait(WDS.browser, 5000);

WDS.sampleResult.sampleStart();

WDS.browser.manage().window().maximize();

WDS.browser.get("http://localhost");

var searchField = WDS.browser.findElement(pkg.By.id("some_element_id"));

searchField.click();WDS.log.info(WDS.name, "has logged an entry");

WDS.sampleResult.sampleEnd();

www.luxoft-training.com

Blazemeter

Blazemeter Loadosophia; Облачные сервисы…. Мульти-тесты; Географические генераторы.

www.luxoft-training.com

True way

Blazemeter Taurus Только GET запросы В сценарном режиме Но зато никто не придерется

www.luxoft-training.com

Taurus

browser: Firefox # available browsers are: ["Firefox", "Chrome", "Ie", "Opera"]

timeout: 10 # global scenario timeout for connecting, receiving results, 30 seconds by default

think-time: 1s500ms # global scenario delay between each request

requests:

- url: http://demo.blazemeter.com/ # url to open, only get method is supported

assert:

- contains:

- blazemeter # list of search patterns

- Trusted

www.luxoft-training.com

Blazemeter Taurus

Python and Java; Nose and Junit; Только итерациями; Настоящая консоль.

www.luxoft-training.com

Еще выводы

С серверной производительностью все похуже Можно, но тяжело и дорого

www.luxoft-training.com

“Автостопом по галактике”

“Можешь не волноваться. Все выходит из - под контроля самым лучшим образом”

www.luxoft-training.com

Заключение

www.luxoft-training.com

Давайте жить дружно

Пусть каждый инструмент делает то, что умеет; А мы будем комбинировать; Не поддавайтесь соблазну.

www.luxoft-training.com

“Автостопом по галактике”

“Я предпочитаю быть счастливым,чем делать все как надо”

www.luxoft-training.com

Thank you

www.luxoft-training.com

Questions?

top related