Selenium   workshop by Ronald Kaiser
Overview (ou uma tentativa) Motivação Características Componentes O Selenês Sintaxe Localizando elementos Command set Sele...
Motivação (aviso)
Motivação Dedo do estagiário que  realizava testes 'na mão'
Motivação Automatizar testes !
Características
Características Open source (Apache 2.0 license) Suporte a maioria dos browsers: (Firefox 2/3, Safari 1/2/3, Opera 8/9, Go...
Componentes
Componentes IDE RC Grid
O Selenês Conjunto de comandos que o  Selenium ”entende”.
Sintaxe Very simple! Command  Target  Value
Localizando elementos
Localizando elementos Command  Target  Value locatorType =location
Localizando elementos Locator types: Identifier DOM XPATH
Localizando elementos - Identifier Retorna o primeiro elemento com o dado id/name HTML: <form id=&quot;loginForm&quot;> Se...
Localizando elementos - DOM Javascript document way HTML: <form id=&quot;loginForm&quot;> Selenium target: dom=document.ge...
Localizando elementos - XPath XPath foi criado especificamente para navegar entre os elementos e atributos de um documento...
Command set
Command set Actions Accessors Assertions
Command set - Actions Alteram o estado da aplicação open check clickAndWait focus keyPress type close  ....
Command set - Accessors Examinam o estado da aplicação e armazenam seus resultados em variáveis storeElementHeight storeEl...
Command set - Assertions Verificam se o estado da aplicação está de acordo com o esperado assertAllLinks assertConfirmatio...
Selenium IDE
Ferramentas Auxiliares Plugins p/ firefox: Firebug XPath Checker
Stop!  Selenium IDE hands on
Gotcha's e dicas
Gotcha's e dicas Não dependa da estrutura Não defina locators como esse:  xpath=//body/div/div/a[contains(text(), 'bug tra...
Gotcha's e dicas Tempo de carregamento: aplicações  AJAX Actions do tipo /(.*)andWait/ não funcionam com AJAX Use /waitFor...
Selenium RC
Stop!  Selenium RC hands on
Selenium na
Quem usa Ext?
Adobe Aetna AIG Alcatel-Lucent Amazon.com Best Buy Boeing Borland CA Canon Capgemini Cisco CNN Dow Jones & Co. EMC Fidelit...
Problema And /^I have added a &quot;([^&quot;]*)&quot; property with a &quot;([^&quot;]*)&quot; type$/ do |name, type| @br...
nosso ”problema” + popularidade do Ext = selenium-extjs
selenium-extjs Framework para testar aplicações Ext com Selenium
selenium-extjs gem install selenium-extjs git://github.com/cathoderay/selenium-extjs.git
Obrigado!
Upcoming SlideShare
Loading in …5
×

Selenium Workshop

1,531 views

Published on

An introduction to selenium and web application testing.

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

No Downloads
Views
Total views
1,531
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
47
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Selenium Workshop

  1. 1. Selenium workshop by Ronald Kaiser
  2. 2. Overview (ou uma tentativa) Motivação Características Componentes O Selenês Sintaxe Localizando elementos Command set Selenium IDE Ferramentas auxiliares Gotcha's e dicas Stop! - Selenium IDE hands on Selenium RC Stop! - Selenium RC hands on Selenium na intelie ....
  3. 3. Motivação (aviso)
  4. 4. Motivação Dedo do estagiário que realizava testes 'na mão'
  5. 5. Motivação Automatizar testes !
  6. 6. Características
  7. 7. Características Open source (Apache 2.0 license) Suporte a maioria dos browsers: (Firefox 2/3, Safari 1/2/3, Opera 8/9, Google Chrome, um tal de IE 7/8, outro (RC)) Muito simples: curva de aprendizado suave API (Selenium RC) para diversas linguagens: HTML, Java, C#, Perl, PHP, Python and Ruby
  8. 8. Componentes
  9. 9. Componentes IDE RC Grid
  10. 10. O Selenês Conjunto de comandos que o Selenium ”entende”.
  11. 11. Sintaxe Very simple! Command Target Value
  12. 12. Localizando elementos
  13. 13. Localizando elementos Command Target Value locatorType =location
  14. 14. Localizando elementos Locator types: Identifier DOM XPATH
  15. 15. Localizando elementos - Identifier Retorna o primeiro elemento com o dado id/name HTML: <form id=&quot;loginForm&quot;> Selenium target: identifier=loginForm
  16. 16. Localizando elementos - DOM Javascript document way HTML: <form id=&quot;loginForm&quot;> Selenium target: dom=document.getElementById('loginForm')
  17. 17. Localizando elementos - XPath XPath foi criado especificamente para navegar entre os elementos e atributos de um documento XML. HTML: <form id=&quot;loginForm&quot;> Selenium target: xpath=//form[@id='loginForm']
  18. 18. Command set
  19. 19. Command set Actions Accessors Assertions
  20. 20. Command set - Actions Alteram o estado da aplicação open check clickAndWait focus keyPress type close ....
  21. 21. Command set - Accessors Examinam o estado da aplicação e armazenam seus resultados em variáveis storeElementHeight storeElementPositionLeft storeEval storeValue ....
  22. 22. Command set - Assertions Verificam se o estado da aplicação está de acordo com o esperado assertAllLinks assertConfirmation assertTextPresent assertTitle ....
  23. 23. Selenium IDE
  24. 24. Ferramentas Auxiliares Plugins p/ firefox: Firebug XPath Checker
  25. 25. Stop! Selenium IDE hands on
  26. 26. Gotcha's e dicas
  27. 27. Gotcha's e dicas Não dependa da estrutura Não defina locators como esse: xpath=//body/div/div/a[contains(text(), 'bug tracker')] Dependente da estrutura do DOM Difícil manutenção!
  28. 28. Gotcha's e dicas Tempo de carregamento: aplicações AJAX Actions do tipo /(.*)andWait/ não funcionam com AJAX Use /waitFor(.*)/ Ex.: waitForElementPresent waitForVisible
  29. 29. Selenium RC
  30. 30. Stop! Selenium RC hands on
  31. 31. Selenium na
  32. 32. Quem usa Ext?
  33. 33. Adobe Aetna AIG Alcatel-Lucent Amazon.com Best Buy Boeing Borland CA Canon Capgemini Cisco CNN Dow Jones & Co. EMC Fidelity General Electric Hallmark HP HSBC IBM Mott MacDonald NATO NetApp Nortel Northrop Grumman Panasonic Pixar Animation Studios Qualcomm, Inc. S&P SAP Siemens Sony Symantec Visa International more
  34. 34. Problema And /^I have added a &quot;([^&quot;]*)&quot; property with a &quot;([^&quot;]*)&quot; type$/ do |name, type| @browser.wait_for_element_present &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-grid3-row-first')]//tr//*[contains(text(), 'Nome')]&quot; @browser.click_at &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-grid3-row-first')]//tr//*[contains(text(), 'Nome')]&quot;, &quot;0,0&quot; @browser.wait_for_element_present &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-small-editor')]//input&quot; @browser.wait_for_editable &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-small-editor')]//input&quot; @browser.type &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-small-editor')]//input[parent::div[not(contains(@style, 'hidden'))]]&quot;, &quot;#{name}&quot; @browser.wait_for_element_present &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-small-editor')]//input[parent::div[not(contains(@style, 'hidden'))]]&quot; @browser.click_at &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-grid3-row-first')]//tr//td[4]&quot;, &quot;0,0&quot; @browser.wait_for_element_present &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-small-editor')]//input[contains(@class, 'x-form-focus')]&quot; @browser.click_at &quot;//div[contains(@class, 'stream-form')]//div[contains(@class, 'x-small-editor')]//input[contains(@class, 'x-form-focus')]&quot;, &quot;0,0&quot; @browser.wait_for_element_present &quot;//div[contains(@class, 'x-combo-list-item') and contains(text(),'#{type}')]&quot; @browser.click_at &quot;//div[contains(@class, 'x-combo-list-item') and contains(text(),'#{type}')]&quot;, &quot;0,0&quot;
  35. 35. nosso ”problema” + popularidade do Ext = selenium-extjs
  36. 36. selenium-extjs Framework para testar aplicações Ext com Selenium
  37. 37. selenium-extjs gem install selenium-extjs git://github.com/cathoderay/selenium-extjs.git
  38. 38. Obrigado!

×