ݺߣ

ݺߣShare a Scribd company logo
© 2014 Acxiom Corporation. All Rights Reserved.
Krzysztof Synak
Integracja środowiska testowego z
użyciem Robot Framework
16/12/2014
© 2014 Acxiom Corporation. All Rights Reserved.
Testowanie
w jaki sposób pokryć wymagania ?
jak połączyć narzędzia ?
2
Robot Framework
Selenium
PL/SQL Developer
SoapUI
#!/bin/bash
© 2014 Acxiom Corporation. All Rights Reserved.
Testowanie – Pełna integracja przykład z projektu
3
Robot
Framework
SQL
SOAP
REST
GUI Scripts
Własne
biblioteki
Docelowe środowisko
Testy
manualne
© 2014 Acxiom Corporation. All Rights Reserved.
Ciągła integracja
4
 Łatwa instalacja, konfiguracja,
integracja
 Skalowalność – dystrybuowane buildy
 Wtyczki do integracji gotowe do
użycia
 Możliwy automatyczny deployment
 Informacja o tym która zmiana
wprowadziła regresję
Przykładowy przebieg:
1. Jenkins sprawdza repozytorium
2. Gdy nastąpiła zmiana wykonuje
zadania
- Unit test
- Sanity test
- System integration test
- Cokolwiek zdefiniujemy
3. Release w Nexus
4. Przy spełnieniu kryteriów
promocja builda jako last stable
Jak skonfigurować ?
• Robot Framework Plugin
• Jira Plugin for Jenkins
• Maven release plugin
• SSH Slaves plugin
• Windows Slaves plugin
• TestRail plugin / integration script
• utPLSQL, Sonar, SoapUI plugin, ,
etc …..
© 2014 Acxiom Corporation. All Rights Reserved.
Zarzadzanie testowaniem
5
Redukcja czasu na raportowanie
 Skupienie na testowaniu a nie raportowaniu
 Testy i ich wyniki połączone z wymaganiami
i defektami
 Wyniki testów automatycznych i
manualnych widoczne w narzędziu
© 2014 Acxiom Corporation. All Rights Reserved.
Framework testowy
koszt całkowity = cena zakupu + utrzymanie
Cechy dobrego środowiska testowego:
- Łatwość utrzymania
- Łatwość konfiguracji
- Pozbawione błędów
- Łatwe raportowanie
- Proste w obsłudze
- Dostępność dla wielu platform
- Możliwość rozszerzania
- Bardzo dobra dokumentacja
- Wsparcie, używany przez wiele firm
- Możliwie uniwersalne użycie we wszystkich projektach
6
© 2014 Acxiom Corporation. All Rights Reserved.
Testowanie
generyczne środowisko do automatyzacji testów
7
Test – Robot Framework Jenkins – wykonanie testów
Wyniki
© 2014 Acxiom Corporation. All Rights Reserved.
Robot Framework
„Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven
development (ATDD). It has easy-to-use tabular test data syntax and it utilizes the keyword-driven testing
approach. Its testing capabilities can be extended by test libraries implemented either with Python or Java, and
users can create new higher-level keywords from existing ones using the same syntax that is used for creating
test cases. „
Dowolny styl tworzenie przypadków testowych popularne podejścia:
- given-when-then popularyzowane przez Behavior Driven Development (Gherkin)
- Data Driven
- Keyword Driven
8
*** Test Cases ***
User can change password
Given a user has a valid account
When she changes her password
Then she can log in with the new password
And she cannot use the old password anymore
*** Test Cases ***
Invalid password [Template]
Creating user with invalid password should fail
abCD5 ${PWD INVALID LENGTH}
abCD567890123 ${PWD INVALID LENGTH}
123DEFG ${PWD INVALID CONTENT}
*** Test Cases ***
User status is stored in database
Database Should Contain ${USERNAME} ${PASSWORD} Inactive
*** Keywords ***
Database Should Contain
[Arguments] ${username} ${password} ${status}
${database} = Get File ${DATABASE FILE}
Should Contain ${database} ${username}t${password}t${status}n
© 2014 Acxiom Corporation. All Rights Reserved.
Data Driven
przykład Oracle + SOAP WS API
• Stały przebieg testu dla zmieniających się danych
9
© 2014 Acxiom Corporation. All Rights Reserved.
Keyword Driven
przykład GUI
Wielokrotnie używane słowa kluczowe
- Na poziomie Robot Framework
- Na poziomi biblioteki testowej Python / Java
- Możliwość użycia modułów Python
Istnieje możliwość konwersji testu Selenium na Robot
Framework bez konieczności ręcznego mapowania
10
© 2014 Acxiom Corporation. All Rights Reserved.
Keyword Driven
przykład procedura składowana
11
Możliwość łączenia słów kluczowych i dowolnej kompozycji przypadków
© 2014 Acxiom Corporation. All Rights Reserved.
Robot Framework
raportowanie
12
© 2014 Acxiom Corporation. All Rights Reserved.
Bateries included ;)
Zestaw gotowy do pracy …….
13
Dostarczane z Robot Framework
BuiltIn - pętle, warunki, konwersja typów, regexp, asercje
OperatingSystem - operacje na plikach i interakcje z
systemem operacyjnym
Screenshot - niezależna od Selenium2Library
Telnet - nawiązanie i kontrola połączenia
Collections - operacje na listach, słownikach oraz asercje
String - random, operacje na string, decode, encode
Remote - uruchomienie testów na zdalnej maszynie
XML - operacje na XML, asercje
Process – uruchamianie i zarządzanie procesami
Dialogs – możliwość interakcji z użytkownikiem
Biblioteki zewnętrzne
• Selenium2Library – Selenium webdriver
• HTTPLibrary – testowanie poprzez REST
• SudsLibrary – testowanie SOAP 1.1
• AutoItLibrary – aplikacje windows
• SwingLibrary - interfejsy Java
• DatabaseLibrary – bazy danych
• SSHLibrary – użycie SSH
• DebugLibrary – debugowanie testów
• PhantomRobot, RoboZombie,
Mechanize - testy GUI bez przeglądarki
• EmailLibrary
• SoapUILibrary
• Oraz wiele innych …..
© 2014 Acxiom Corporation. All Rights Reserved.
Wyzwania w przejściu na nowy
proces
1. Nie poprawiamy rzeczy które działają 
2. Tak mamy już 1000 testów w SoapUI oraz ponad 1000 w PLSQL developer
- Jenkins SoapUI plugin, rezultat w formacie xUnit wyniki w TestRail
- Uruchamiamy test PLSQL developer w RF z command line i czytamy wynik
3. Nie mamy serwerów aby zintegrować narzędzia
- Przeciętny komputer z Ubuntu wystarczy na wszystkie te narzędzia na projekt
4. Nie znam Robot Framework i Python /Java
- Ogromna ciągle rosnąca baza wiedzy
- Nie wszyscy muszą programować, użyj gotowych bibliotek
- Nowy język programowania dlaczego nie 
5. Nie mam budżetu na płatne narzędzia
- Darmowe: Robot Framework, Jenkins, Ubuntu
- Darmowe ekwiwalenty: TestLink + Bugzilla
6. Dlaczego nie ma biblioteki Robot Framework dla testowanego narzędzia
- Poszukajmy modułów Python / bibliotek Java i użyjmy ich bezpośrednio
- Bądźmy pierwsi, stwórzmy ją i udostępnijmy !
7. Zarząd nie zgodzi się na zmiany
- Zacznijmy od siebie bardzo wiele inicjatyw zaczyna się w działach jakości !!!
Dzielmy się wiedzą. Korzystamy z Open Source wiec udostępnijmy naszą pracę !
14
© 2014 Acxiom Corporation. All Rights Reserved. © 2014 Acxiom Corporation. All Rights Reserved.
Pytania?
Dziękuję !

More Related Content

Integracja środowiska testowego z użyciem Robot Framework, TrojQA 2014-12-16

  • 1. © 2014 Acxiom Corporation. All Rights Reserved. Krzysztof Synak Integracja środowiska testowego z użyciem Robot Framework 16/12/2014
  • 2. © 2014 Acxiom Corporation. All Rights Reserved. Testowanie w jaki sposób pokryć wymagania ? jak połączyć narzędzia ? 2 Robot Framework Selenium PL/SQL Developer SoapUI #!/bin/bash
  • 3. © 2014 Acxiom Corporation. All Rights Reserved. Testowanie – Pełna integracja przykład z projektu 3 Robot Framework SQL SOAP REST GUI Scripts Własne biblioteki Docelowe środowisko Testy manualne
  • 4. © 2014 Acxiom Corporation. All Rights Reserved. Ciągła integracja 4  Łatwa instalacja, konfiguracja, integracja  Skalowalność – dystrybuowane buildy  Wtyczki do integracji gotowe do użycia  Możliwy automatyczny deployment  Informacja o tym która zmiana wprowadziła regresję Przykładowy przebieg: 1. Jenkins sprawdza repozytorium 2. Gdy nastąpiła zmiana wykonuje zadania - Unit test - Sanity test - System integration test - Cokolwiek zdefiniujemy 3. Release w Nexus 4. Przy spełnieniu kryteriów promocja builda jako last stable Jak skonfigurować ? • Robot Framework Plugin • Jira Plugin for Jenkins • Maven release plugin • SSH Slaves plugin • Windows Slaves plugin • TestRail plugin / integration script • utPLSQL, Sonar, SoapUI plugin, , etc …..
  • 5. © 2014 Acxiom Corporation. All Rights Reserved. Zarzadzanie testowaniem 5 Redukcja czasu na raportowanie  Skupienie na testowaniu a nie raportowaniu  Testy i ich wyniki połączone z wymaganiami i defektami  Wyniki testów automatycznych i manualnych widoczne w narzędziu
  • 6. © 2014 Acxiom Corporation. All Rights Reserved. Framework testowy koszt całkowity = cena zakupu + utrzymanie Cechy dobrego środowiska testowego: - Łatwość utrzymania - Łatwość konfiguracji - Pozbawione błędów - Łatwe raportowanie - Proste w obsłudze - Dostępność dla wielu platform - Możliwość rozszerzania - Bardzo dobra dokumentacja - Wsparcie, używany przez wiele firm - Możliwie uniwersalne użycie we wszystkich projektach 6
  • 7. © 2014 Acxiom Corporation. All Rights Reserved. Testowanie generyczne środowisko do automatyzacji testów 7 Test – Robot Framework Jenkins – wykonanie testów Wyniki
  • 8. © 2014 Acxiom Corporation. All Rights Reserved. Robot Framework „Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). It has easy-to-use tabular test data syntax and it utilizes the keyword-driven testing approach. Its testing capabilities can be extended by test libraries implemented either with Python or Java, and users can create new higher-level keywords from existing ones using the same syntax that is used for creating test cases. „ Dowolny styl tworzenie przypadków testowych popularne podejścia: - given-when-then popularyzowane przez Behavior Driven Development (Gherkin) - Data Driven - Keyword Driven 8 *** Test Cases *** User can change password Given a user has a valid account When she changes her password Then she can log in with the new password And she cannot use the old password anymore *** Test Cases *** Invalid password [Template] Creating user with invalid password should fail abCD5 ${PWD INVALID LENGTH} abCD567890123 ${PWD INVALID LENGTH} 123DEFG ${PWD INVALID CONTENT} *** Test Cases *** User status is stored in database Database Should Contain ${USERNAME} ${PASSWORD} Inactive *** Keywords *** Database Should Contain [Arguments] ${username} ${password} ${status} ${database} = Get File ${DATABASE FILE} Should Contain ${database} ${username}t${password}t${status}n
  • 9. © 2014 Acxiom Corporation. All Rights Reserved. Data Driven przykład Oracle + SOAP WS API • Stały przebieg testu dla zmieniających się danych 9
  • 10. © 2014 Acxiom Corporation. All Rights Reserved. Keyword Driven przykład GUI Wielokrotnie używane słowa kluczowe - Na poziomie Robot Framework - Na poziomi biblioteki testowej Python / Java - Możliwość użycia modułów Python Istnieje możliwość konwersji testu Selenium na Robot Framework bez konieczności ręcznego mapowania 10
  • 11. © 2014 Acxiom Corporation. All Rights Reserved. Keyword Driven przykład procedura składowana 11 Możliwość łączenia słów kluczowych i dowolnej kompozycji przypadków
  • 12. © 2014 Acxiom Corporation. All Rights Reserved. Robot Framework raportowanie 12
  • 13. © 2014 Acxiom Corporation. All Rights Reserved. Bateries included ;) Zestaw gotowy do pracy ……. 13 Dostarczane z Robot Framework BuiltIn - pętle, warunki, konwersja typów, regexp, asercje OperatingSystem - operacje na plikach i interakcje z systemem operacyjnym Screenshot - niezależna od Selenium2Library Telnet - nawiązanie i kontrola połączenia Collections - operacje na listach, słownikach oraz asercje String - random, operacje na string, decode, encode Remote - uruchomienie testów na zdalnej maszynie XML - operacje na XML, asercje Process – uruchamianie i zarządzanie procesami Dialogs – możliwość interakcji z użytkownikiem Biblioteki zewnętrzne • Selenium2Library – Selenium webdriver • HTTPLibrary – testowanie poprzez REST • SudsLibrary – testowanie SOAP 1.1 • AutoItLibrary – aplikacje windows • SwingLibrary - interfejsy Java • DatabaseLibrary – bazy danych • SSHLibrary – użycie SSH • DebugLibrary – debugowanie testów • PhantomRobot, RoboZombie, Mechanize - testy GUI bez przeglądarki • EmailLibrary • SoapUILibrary • Oraz wiele innych …..
  • 14. © 2014 Acxiom Corporation. All Rights Reserved. Wyzwania w przejściu na nowy proces 1. Nie poprawiamy rzeczy które działają  2. Tak mamy już 1000 testów w SoapUI oraz ponad 1000 w PLSQL developer - Jenkins SoapUI plugin, rezultat w formacie xUnit wyniki w TestRail - Uruchamiamy test PLSQL developer w RF z command line i czytamy wynik 3. Nie mamy serwerów aby zintegrować narzędzia - Przeciętny komputer z Ubuntu wystarczy na wszystkie te narzędzia na projekt 4. Nie znam Robot Framework i Python /Java - Ogromna ciągle rosnąca baza wiedzy - Nie wszyscy muszą programować, użyj gotowych bibliotek - Nowy język programowania dlaczego nie  5. Nie mam budżetu na płatne narzędzia - Darmowe: Robot Framework, Jenkins, Ubuntu - Darmowe ekwiwalenty: TestLink + Bugzilla 6. Dlaczego nie ma biblioteki Robot Framework dla testowanego narzędzia - Poszukajmy modułów Python / bibliotek Java i użyjmy ich bezpośrednio - Bądźmy pierwsi, stwórzmy ją i udostępnijmy ! 7. Zarząd nie zgodzi się na zmiany - Zacznijmy od siebie bardzo wiele inicjatyw zaczyna się w działach jakości !!! Dzielmy się wiedzą. Korzystamy z Open Source wiec udostępnijmy naszą pracę ! 14
  • 15. © 2014 Acxiom Corporation. All Rights Reserved. © 2014 Acxiom Corporation. All Rights Reserved. Pytania? Dziękuję !