36
Selenium Camp 2012 Deep Shift Labs 25 февраля, 2012 Киев, Украина Основы и нюансы параллельного тестирования

Основы и нюансы параллельного тестрования

  • Upload
    bearoff

  • View
    1.390

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Основы и нюансы параллельного тестрования

Selenium Camp 2012

Deep ShiftLabs

25 февраля, 2012

Киев, Украина

Основы и нюансы параллельного тестирования

Page 2: Основы и нюансы параллельного тестрования

Дмитрий Якубовский

Java, PHP + тестировщик

[email protected]

@deep_bear

Deep ShiftLabs

Page 3: Основы и нюансы параллельного тестрования

http://www.flickr.com/photos/pothikmanush/4565287938

Параллельное тестирование

Page 4: Основы и нюансы параллельного тестрования

a(){} b(){}

Один тест - 5 минут

Итого - 10 минут

Простой тест

Page 5: Основы и нюансы параллельного тестрования

class Test {

main() {

prepareBrowser();

a();

b();

freeBrowser();

}

}

@BeforeMethod

@Test

@AfterMethod

TestNG: аннотации

Page 6: Основы и нюансы параллельного тестрования

class Test {

@BeforeMethod

prepareBrowser(){…};

@Test

a(){…};

@Test

b(){…};

@AfterMethod

freeBrowser(){…};

}

TestNG: аннотации

Page 7: Основы и нюансы параллельного тестрования

<suite name=“test" verbose="3">

<test name=“simpleTest" parallel="methods"thread-count=“2">

<classes><class name=“Test" />

</classes></test>

</suite>

TestNG: конфигурация

testng.xml

Page 8: Основы и нюансы параллельного тестрования

Выполнение

prepareBrowser(){}

a(){}

freeBrowser(){}

prepareBrowser(){}

b(){}

freeBrowser(){}

Поток 1 Поток 2

TestNG: выполнение

Page 9: Основы и нюансы параллельного тестрования

a(){}

b(){}

Selenium server

Итого - 5 минут

TestNG: выполнение

Page 10: Основы и нюансы параллельного тестрования

a(){}

b(){}

Selenium server

Selenium server

a(){}

b(){}

Selenium server

Selenium server

Два браузера

Page 11: Основы и нюансы параллельного тестрования

Selenium server

Selenium servera(){}

b(){}

Selenium server

Selenium server

?

Два браузера

Page 12: Основы и нюансы параллельного тестрования

a(){}

b(){}

Selenium Hub

Selenium RC

Selenium RC

Selenium RC

Selenium RC

a(){}

a(){}

b(){}

b(){}

Selenium Grid

Page 13: Основы и нюансы параллельного тестрования

a(){}

b(){}

Selenium Hub

Selenium RC

Selenium RC

Selenium RC

Selenium RC

a(){}

a(){}

b(){}

b(){}Selenium Hub

… …

Nerrvana

Page 14: Основы и нюансы параллельного тестрования

ВыполнениеВиртуальные машины

RC RC

RC

RC

RCRC

Hub

Hub

XenXen

Page 15: Основы и нюансы параллельного тестрования

ВыполнениеLVM snapshots

RC

RC

Hub

RC

RC

RC

RC

RC

Каждый раз свежая VM

Page 16: Основы и нюансы параллельного тестрования

ВыполнениеРесурсы: память

Linux Hub

Linux Tester

Windows Tester

128 МБ

196 МБ

256 МБ

Page 17: Основы и нюансы параллельного тестрования

ВыполнениеПодмена браузера

hub:

port: 4444

environments:

- name: "*iexplore"

browser: "*iexplore"

- name: "*iehta"

browser: "*iehta"

- name: "*safari"

browser: "*safari"

- name: "*opera"

browser: "*opera"

hub:

port: 4444

environments:

- name: "*iexplore"

browser: "*chrome"

- name: "*iehta"

browser: "*chrome"

- name: "*safari"

browser: "*chrome"

- name: "*opera"

browser: "*chrome"

grid_configuration.yml

Page 18: Основы и нюансы параллельного тестрования
Page 19: Основы и нюансы параллельного тестрования
Page 20: Основы и нюансы параллельного тестрования
Page 21: Основы и нюансы параллельного тестрования
Page 22: Основы и нюансы параллельного тестрования
Page 23: Основы и нюансы параллельного тестрования

http://www.flickr.com/photos/jennconspiracy/826680008

Уникальные ключи

Page 24: Основы и нюансы параллельного тестрования

Тесты мешают друг другу

Page 25: Основы и нюансы параллельного тестрования

Тесты видят только своё

?tags_for_tests=unique_tag1,unique_tag2

Page 26: Основы и нюансы параллельного тестрования

Не показывать тестовые!

фильтровать по пользователю:

нельзя (тестирование гостей)

Фильтр по уникальной подстроке:

можно, накладно

Учитывать tags_for_tests:

помечать в спец. колонке

Page 27: Основы и нюансы параллельного тестрования

График 1..25 потоков

0

2

4

6

8

10

1 2 3 4 5 6 7 … 25

Потоки

Время

Page 28: Основы и нюансы параллельного тестрования

Количество независимых тестов1

Page 29: Основы и нюансы параллельного тестрования

Ресурсы машины-тестера2

Page 30: Основы и нюансы параллельного тестрования

WAUT* - Web Application Under Test

Ресурсы WAUT3

Page 31: Основы и нюансы параллельного тестрования

4

9

От перемены мест…4

Page 32: Основы и нюансы параллельного тестрования

4

5

3 потока

Page 33: Основы и нюансы параллельного тестрования

5 7

2 потока

Page 34: Основы и нюансы параллельного тестрования

Пример: общая картина

1

0

5

7

4 4

5

Page 35: Основы и нюансы параллельного тестрования

http://www.flickr.com/photos/cs___/4163717544/

Помозговать

Page 36: Основы и нюансы параллельного тестрования

Вопросы

[email protected] (не стесняйтесь!)

http://nerrvana.com(сервис для запуска тестов)