122.05.2014
Testy automatyczne aplikacji
webowych oparte o Selenium -
- dobre praktyki
Michał Sierzputowski
Testowanie Aplikacji
http://www.shapia.com/images/software-testing.jpg
Automatyzacja Testów
3
http://www.mpa-rm.pl/images/Industrial-Automation.jpg
Dostarczenie szybkiej informacji zwrotnej
Zap...
Dobre testy automatyczne?
4
• Ustalenie stnadardów kodowania
• Dabanie o “czysty kod” – clean code
• Stosowanie wzorców pr...
Selenium
5
Prosty skrypt testowy
WebDriver driver = new FirefoxDriver();
driver.get("http://www.allagro.pl");
WebElement login_link =...
Oddzielenie biznesu od techniki
Page Objects
7
typeUsername(Strin
g)
typePassword(Strin
g)
clickLogin()
LoginPageC
f
m
Hom...
Skrypt z Page Object’ami
LoginTest
homePage.clickLoginLink();
loginPage.typeUsername("Jan_Kowalski");
loginPage.typePasswo...
Delegaty
LoginDelegate
9
loginAs(username, password)
typeUsername(user)
typePassword(password)
clickLogin()
Zależności
10
LogingDelegate
HomePage Search ResultsPage
WebDriver
LoginPage
SearchDelegate
TestClass
Wstrzykiwanie zależności
Dependecy Injection
• Bardziej czytelne testy
• Łatwiejsze do zarządzania
• Szybsze i prostsze do...
Logowanie informacji
Logowanie w testach
12
Test
Test
Test
Logowanie
Programowanie aspektowe - AOP
13
Page Object
Page Object
Page Object
Page Object
Page Object
Page Object
Logowanie
Tracing...
14
Pytania ?Dzięki!
m.sierzputowski@kainos.com
kainos.pl
michalsierzputowski
Upcoming SlideShare
Loading in …5
×

infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych oparte o Selenium - dobre praktyki.

417 views
315 views

Published on

Published in: Internet
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
417
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Błedy w oporgramowaniu mogą skończyć się dużymi stratami finansowym czy nawet ludzkimi.

    W testowanie inwestuje się bardzo duże środki - wymagają czasu I wykwalifikowanych ludzi odpowiednich narzędzi.


  • infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych oparte o Selenium - dobre praktyki.

    1. 1. 122.05.2014 Testy automatyczne aplikacji webowych oparte o Selenium - - dobre praktyki Michał Sierzputowski
    2. 2. Testowanie Aplikacji http://www.shapia.com/images/software-testing.jpg
    3. 3. Automatyzacja Testów 3 http://www.mpa-rm.pl/images/Industrial-Automation.jpg Dostarczenie szybkiej informacji zwrotnej Zapewnienie możliwości wprowadzania bezpiecznych zmian Automatyzacja testów to proces ciągły
    4. 4. Dobre testy automatyczne? 4 • Ustalenie stnadardów kodowania • Dabanie o “czysty kod” – clean code • Stosowanie wzorców projektowych • Inspekcje kodu – code review • Wersjonowanie kodu http://loewy.com/wp-content/uploads/2012/09/mainfeature-waterlogic.jpg
    5. 5. Selenium 5
    6. 6. Prosty skrypt testowy WebDriver driver = new FirefoxDriver(); driver.get("http://www.allagro.pl"); WebElement login_link = driver.findElement(By.linkText("zaloguj")); login_link.click(); WebElement user_name = driver.findElement(By.id("userForm_login")); user_name.sendKeys("Jan_Kowalski"); WebElement password = driver.findElement(By.id("userForm_password")); password.sendKeys("TajneHaslo1"); WebElement login_button = driver.findElement(By.id("login”])); login_button.click(); WebElement user_link = driver.findElement(By.linkText("Jan Kowalski")); assertThat(user_link.isDisplayed(),is(true)); driver.quit(); 6
    7. 7. Oddzielenie biznesu od techniki Page Objects 7 typeUsername(Strin g) typePassword(Strin g) clickLogin() LoginPageC f m HomePage SEARCH_BOX SEARCH_BUTTO N LOGIN_BUTTON USER_LINK typeSearch(String) tclickSearch(String ) USER_NAME PASSWORD LOGIN_BUTTON
    8. 8. Skrypt z Page Object’ami LoginTest homePage.clickLoginLink(); loginPage.typeUsername("Jan_Kowalski"); loginPage.typePassword("TajneHaslo1"); loginPage.clickLogin(); assertThat( homePage.getUser().equals("JanKowalski”), is(true)); 8 homePage.clickLoginLink(); loginPage.typeUsername("Jan_Kowalski"); .typePassword("TajneHaslo1"); .clickLogin(); assertThat( homePage.getUser().equals("JanKowalski”), is(true));
    9. 9. Delegaty LoginDelegate 9 loginAs(username, password) typeUsername(user) typePassword(password) clickLogin()
    10. 10. Zależności 10 LogingDelegate HomePage Search ResultsPage WebDriver LoginPage SearchDelegate TestClass
    11. 11. Wstrzykiwanie zależności Dependecy Injection • Bardziej czytelne testy • Łatwiejsze do zarządzania • Szybsze i prostsze do tworzenia 11https://elearning.industriallogic.com/gh/albums/wrappersAndWalkers/injector/images/big-tomatoes.gif
    12. 12. Logowanie informacji Logowanie w testach 12 Test Test Test Logowanie
    13. 13. Programowanie aspektowe - AOP 13 Page Object Page Object Page Object Page Object Page Object Page Object Logowanie Tracing Aspect Logowanie informacji
    14. 14. 14 Pytania ?Dzięki! m.sierzputowski@kainos.com kainos.pl michalsierzputowski

    ×