ݺߣ

ݺߣShare a Scribd company logo
Путеводитель в мире Selenium
Кирилл Климов




  Selenium Camp, Киев, 26.02.2011
О чём будем говорить

•   Введение

•   Критерии выбора, наш путь

•   Selenium IDE

•   Selenium Core

•   Selenium Remote Control (RC)

•   Selenium Grid

•   Другие проекты Selenium

•   Итоги
Введение

Jason Huggins, 2004


                      Apache 2.0 License
    Commiters: ~20
Критерии выбора инструмента

•   возможности (что можно протестировать, что –
    нельзя)

•   скорость входа

•   лёгкость поддержки и изменения существующих
    тестов

•   $

    ‣   сам инструмент

    ‣   люди
Наш путь




IDE        RC   Grid
  0½       9     28   время, мес

  Core
Selenium IDE
Selenium IDE
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New Test</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">         <tr>
<thead>
<tr><td rowspan="1" colspan="3">New Test</td></tr>           <td>open</td>
</thead><tbody>                                              <td>http://www.google.com/</td>
<tr>                                                         <td></td>
  <td>open</td>
  <td>http://www.google.com/</td>                          </tr>
  <td></td>                                                <tr>
</tr>                                                        <td>type</td>
<tr>
  <td>type</td>                                              <td>q</td>
  <td>q</td>                                                 <td>Selenium Camp</td>
  <td>Selenium Camp</td>                                   </tr>
</tr>
<tr>                                                       <tr>
  <td>waitForTextPresent</td>                                <td>waitForTextPresent</td>
  <td>Google Home</td>                                       <td>Google Home</td>
  <td></td>
</tr>                                                        <td></td>
<tr>                                                       </tr>
  <td>clickAndWait</td>                                    <tr>
  <td>//li[1]/div/span/h3/a</td>
  <td></td>                                                  <td>clickAndWait</td>
</tr>                                                        <td>//li[1]/div/span/h3/a</td>
<tr>                                                         <td></td>
  <td>verifyTextPresent</td>
  <td>Первая Selenium конференция в Европе</td>            </tr>
  <td></td>                                                <tr>
</tr>                                                        <td>verifyTextPresent</td>
</tbody></table>                                     <td>Первая Selenium конференция в Европе</td>
</body>                                              <td></td>
</html>                                            </tr>
Selenium IDE
Команды Selenium – Selenese


Типы команд:                     Примеры:

•   Действия (Actions)           •   open
                                 •   click/clickAndWait
•   Методы доступа (Accessors)   •   verifyTitle/assertTitle
                                 •   verifyTextPresent
•   Проверки (Assertions)
                                 •   verifyElementPresent
                                 •   verifyText
                                 •   verifyTable
                                 •   waitForPageToLoad
                                 •   waitForElementPresent
Selenium IDE для “отдельной” задачи
Selenium IDE: итоги



+ просто                        -   просто

+ бы стры й   вход              -   тяжело поддерживать

+ низкие   требования к людям   -   слабо пригоден для
                                    проектов больших
                                    объёмов
+ можноиспользовать для
 отдельны х
 “вспомогательны х” задач       -   только Firefox
Selenium Core




         web
        server
        /web-site/
          /selenium/
Selenium Core
Selenium Core: итоги



+ просто                     -   просто

+ бы стры йвход              -   тяжело поддерживать
 (хоть и сложнее, чем IDE)
                             -   слабо пригоден для
+ низкие   требования к          проектов больших
 людям                           объёмов

                             -   отсутствует логирование
Selenium Remote Control (RC)
Selenium Remote Control (RC)

              Зависит от приложения Не зависит от приложения




            Selenium        Selenese
              тест
Selenium Remote Control (RC)
Selenium Remote Control (RC)
Selenium Remote Control (RC): итоги




+ гибкость               -   сложно, тяжёлы й вход

+ переиспользуемость     -   вы сокие требования к
                             людям
+ большие    объёмы
                         -   меньшая наглядность

                         -   тяжелее отладка
Selenium Grid: обычный RC

             Зависит от приложения Не зависит от приложения




           Selenium        Selenese
             тест
Selenium Grid
         Зависит от приложения Не зависит от приложения




       Selenium        Selenese
         тест

                                                          Selenese
Selenium Grid: итоги



+ решает
       проблему объёма /   -   добавляет сложности
 времени на тесты
Как, это всё..?



•   Selenium on Rails

•   Selenium on Ruby

•   CubicTest

•   Bromine
Итоги



✓   не спешите с запуском

✓   поймите разницу в инструментах

✓   смотрите, что вам действительно нужно

✓   смотрите в перспективе 1-2х лет

✓   найдите “консультанта”
Спасибо за внимание!



      http://spkr8.com/t/5709




Кирилл Климов

+380 67 4027241
kirill@kserver.kiev.ua
linkedIn.com/in/kirillklimov
Blog: agileguy.posterous.com
Twitter: @f0g

More Related Content

Путеводитель в мире Selenium

  • 1. Путеводитель в мире Selenium Кирилл Климов Selenium Camp, Киев, 26.02.2011
  • 2. О чём будем говорить • Введение • Критерии выбора, наш путь • Selenium IDE • Selenium Core • Selenium Remote Control (RC) • Selenium Grid • Другие проекты Selenium • Итоги
  • 3. Введение Jason Huggins, 2004 Apache 2.0 License Commiters: ~20
  • 4. Критерии выбора инструмента • возможности (что можно протестировать, что – нельзя) • скорость входа • лёгкость поддержки и изменения существующих тестов • $ ‣ сам инструмент ‣ люди
  • 5. Наш путь IDE RC Grid 0½ 9 28 время, мес Core
  • 7. Selenium IDE <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>New Test</title> </head> <body> <table cellpadding="1" cellspacing="1" border="1"> <tr> <thead> <tr><td rowspan="1" colspan="3">New Test</td></tr> <td>open</td> </thead><tbody> <td>http://www.google.com/</td> <tr> <td></td> <td>open</td> <td>http://www.google.com/</td> </tr> <td></td> <tr> </tr> <td>type</td> <tr> <td>type</td> <td>q</td> <td>q</td> <td>Selenium Camp</td> <td>Selenium Camp</td> </tr> </tr> <tr> <tr> <td>waitForTextPresent</td> <td>waitForTextPresent</td> <td>Google Home</td> <td>Google Home</td> <td></td> </tr> <td></td> <tr> </tr> <td>clickAndWait</td> <tr> <td>//li[1]/div/span/h3/a</td> <td></td> <td>clickAndWait</td> </tr> <td>//li[1]/div/span/h3/a</td> <tr> <td></td> <td>verifyTextPresent</td> <td>Первая Selenium конференция в Европе</td> </tr> <td></td> <tr> </tr> <td>verifyTextPresent</td> </tbody></table> <td>Первая Selenium конференция в Европе</td> </body> <td></td> </html> </tr>
  • 9. Команды Selenium – Selenese Типы команд: Примеры: • Действия (Actions) • open • click/clickAndWait • Методы доступа (Accessors) • verifyTitle/assertTitle • verifyTextPresent • Проверки (Assertions) • verifyElementPresent • verifyText • verifyTable • waitForPageToLoad • waitForElementPresent
  • 10. Selenium IDE для “отдельной” задачи
  • 11. Selenium IDE: итоги + просто - просто + бы стры й вход - тяжело поддерживать + низкие требования к людям - слабо пригоден для проектов больших объёмов + можноиспользовать для отдельны х “вспомогательны х” задач - только Firefox
  • 12. Selenium Core web server /web-site/ /selenium/
  • 14. Selenium Core: итоги + просто - просто + бы стры йвход - тяжело поддерживать (хоть и сложнее, чем IDE) - слабо пригоден для + низкие требования к проектов больших людям объёмов - отсутствует логирование
  • 16. Selenium Remote Control (RC) Зависит от приложения Не зависит от приложения Selenium Selenese тест
  • 19. Selenium Remote Control (RC): итоги + гибкость - сложно, тяжёлы й вход + переиспользуемость - вы сокие требования к людям + большие объёмы - меньшая наглядность - тяжелее отладка
  • 20. Selenium Grid: обычный RC Зависит от приложения Не зависит от приложения Selenium Selenese тест
  • 21. Selenium Grid Зависит от приложения Не зависит от приложения Selenium Selenese тест Selenese
  • 22. Selenium Grid: итоги + решает проблему объёма / - добавляет сложности времени на тесты
  • 23. Как, это всё..? • Selenium on Rails • Selenium on Ruby • CubicTest • Bromine
  • 24. Итоги ✓ не спешите с запуском ✓ поймите разницу в инструментах ✓ смотрите, что вам действительно нужно ✓ смотрите в перспективе 1-2х лет ✓ найдите “консультанта”
  • 25. Спасибо за внимание! http://spkr8.com/t/5709 Кирилл Климов +380 67 4027241 kirill@kserver.kiev.ua linkedIn.com/in/kirillklimov Blog: agileguy.posterous.com Twitter: @f0g

Editor's Notes