Automatizirano
testiranje sa
Seleniumom 2
Juraj Ćutić
Aleksander Radovan
Why testing
• Povećanje kvalitete i pouzdanosti proizvoda
• Jednostavnije održavanje
Manual or Automated?
• Ne može osigurati
100% detekciju bugova
• Može biti skupo i
dugotrajno
• Ovisi o iskustvu testera
•...
Automated testing
Illustracija od tvrtke Segue Technologies
What is Selenium
Framework za automatizirano testiranje web aplikacija
Selenium IDE – GUI za snimanje testiranja
Selenium ...
Support
Element locators
• Id - findElement(By.id("elementId"))
• Name - findElement(By.name("elementName"))
• Xpath - findElement...
Usage
Jednostavna integracija sa Junit-om ili TestNG-om i Jenkinsom
WebDriver webdriver = new FirefoxDriver();
webdriver.g...
Components
• Action builds
Actions builder = new Actions(driver);
builder.moveToElement(el).click();
builder.perform();
• ...
Selenium Grid
Grid usage
• Potrebna je konfiguracija za svaku instancu WebDrivera
DesiredCapabilities capabilities = new DesiredCapabili...
Design Pattern
Page Factory – reduciranje nepotrebnog koda
@DefaultUrl("http://www.google.com")
public class SearchPage ex...
Advantage
• Simulira realnu interakciju s browserom
• Velika podrška platformi, browsera i jezika za
implementaciju
• Isti...
Practice
• Sporost pri učitavanju stranica u browser
• Veliki promet preko HTTP-a (slike, css ili .js fileovi)
• Aplikacij...
Who Uses Selenium?
Demo
Conclusion
• Automatizirano testiranje je najbolje koristiti kod
ponavljajućih i predvidljivih slijedova aktivnosti
• Ne m...
The end
Upcoming SlideShare
Loading in...5
×

JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander Radovan

1,388

Published on

When developing software, due to short implementation deadlines, there is very little room for what is considered a key stage: testing. This means testing needs to be efficient and simple for implementation and execution. Selenium is a testing framework for web application, which uses DOM interaction for testing. It can be easily integrated with JUnit, and with the help of WebDriver API, testing for all popular web browsers can be simulated, in addition to web applications adapted to mobile devices. Also, it can be used in interaction with a large number of programming languages. Testing is done from a point of view of the application user, which enables realistic testing scenarios and acceptance tests. In our presentation, we will show an example of using Selenium and present its most important functionalities.

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

  • Be the first to like this

No Downloads
Views
Total Views
1,388
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JavaCro'14 - Automatized testing with Selenium 2 – Juraj Ćutić and Aleksander Radovan

  1. 1. Automatizirano testiranje sa Seleniumom 2 Juraj Ćutić Aleksander Radovan
  2. 2. Why testing • Povećanje kvalitete i pouzdanosti proizvoda • Jednostavnije održavanje
  3. 3. Manual or Automated? • Ne može osigurati 100% detekciju bugova • Može biti skupo i dugotrajno • Ovisi o iskustvu testera • Može se obavljati i tijekom builda • Podiže moral  • Ne može u potpunosti zamijeniti testere
  4. 4. Automated testing Illustracija od tvrtke Segue Technologies
  5. 5. What is Selenium Framework za automatizirano testiranje web aplikacija Selenium IDE – GUI za snimanje testiranja Selenium Web Driver – API za testiranje Selenium Grid – paralelno testiranje na više različitih browsera
  6. 6. Support
  7. 7. Element locators • Id - findElement(By.id("elementId")) • Name - findElement(By.name("elementName")) • Xpath - findElements(By.xpath("//input[@name='username']")) • Link Text - findElement(By.linkText("linkText")) • jQuery (DOM) - ((JavascriptExecutor)driver) .executeScript("return $('.cheese')[0]") • CSS - findElement(By.cssSelector("#food span.dairy.aged")) • By: Class Name, Tag Name, Partial Link Text
  8. 8. Usage Jednostavna integracija sa Junit-om ili TestNG-om i Jenkinsom WebDriver webdriver = new FirefoxDriver(); webdriver.get("https://github.com"); List<WebElement> webElements = webdriver.findElements(By .xpath("//ul[@class='nav logged_out']/li")); Assert.assertEquals(5, webElements.size()); webdriver.quit();
  9. 9. Components • Action builds Actions builder = new Actions(driver); builder.moveToElement(el).click(); builder.perform(); • Event listeners beforeClickOn(WebElement element, WebDriver driver) • Validacije testova (ako je false) Assert – zaustavlja izvršavanje test Verify - bilježi grešku u log te nastavlja izvršavati preostale akcije
  10. 10. Selenium Grid
  11. 11. Grid usage • Potrebna je konfiguracija za svaku instancu WebDrivera DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setBrowserName("firefox"); capabilities.setVersion("7"); capabilities.setPlatform("MAC"); WebDriver webdriver = new RemoteWebDriver(capabilities); • Junit : - @RunWith(Parameterized.class) – anotacija nad klasom - @Parameters – anotacija nad metodom u testu • TestNG : - konfiguracija testova u XML-u - @Parameters – anotacija nad metodom u testu
  12. 12. Design Pattern Page Factory – reduciranje nepotrebnog koda @DefaultUrl("http://www.google.com") public class SearchPage extends PageObject { @FindBy(id = "searchString") @CacheLookup WebElement searchField; ...} Page Object : - OOP korištenje WebDrivera - preglednost i reduciranje nepotrebnog koda
  13. 13. Advantage • Simulira realnu interakciju s browserom • Velika podrška platformi, browsera i jezika za implementaciju • Isti kod moguće koristi za više različitih browsera • Mogućnost kreiranja screenshota aplikacije u određenom trenutku • Open source framework
  14. 14. Practice • Sporost pri učitavanju stranica u browser • Veliki promet preko HTTP-a (slike, css ili .js fileovi) • Aplikacija na kojoj se vrši testiranje mora biti startana • Problemi u komunikaciji mogu uzrokovati greške u testovima • Izmjene u funkcionalnosti ili sučelju mogu utjecati na ispravnost testove (potrebno je i njih editirati)
  15. 15. Who Uses Selenium?
  16. 16. Demo
  17. 17. Conclusion • Automatizirano testiranje je najbolje koristiti kod ponavljajućih i predvidljivih slijedova aktivnosti • Ne može u potpunosti zamijeniti „ručno” testiranje • Ne može se testirati sve • Preporuča uvesti ga u kasnijim fazama razvoja, kad nema jako puno velikih promjena
  18. 18. The end
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×