end-to-end testing w/ javascript
TRANSCRIPT
![Page 1: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/1.jpg)
#IATRENDS
E2E TESTING W/ WEBDRIVER I/O
Henrique LuzAgosto/16
![Page 2: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/2.jpg)
AGENDA
‣ Tests from the beginning ‣ Agile testing
- Evolução‣ E2E testing
- Intro- Trade-off
‣ Back-end x Front-end‣ WebDriver I/O‣ Hands-on
![Page 3: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/3.jpg)
TESTS FROM THE BEGINNING
BEFORE▸ Cascata▸ Manuais▸ Caixa-preta▸ Orientados a bugs▸ Feedback tardio
![Page 4: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/4.jpg)
![Page 5: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/5.jpg)
AGILE TESTING
TESTS EVOLUTION
![Page 6: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/6.jpg)
AGILE TESTING
NOW▸ Agile Development
▸ TDD BDD▸ Unitarios + Integração▸ Continuous Delivery▸ Feedback Instantâneo
![Page 7: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/7.jpg)
SUFICIENTE?
DEPENDE!
![Page 8: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/8.jpg)
![Page 9: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/9.jpg)
E2E TESTING
▸ Simula fluxo do usuário▸ UI’s
▸ Interage com toda app▸ Ajuda a validar critérios de aceitação▸ Regressão de testes bem mais rápida
![Page 10: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/10.jpg)
TRADE-OFF▸ Mais custosos▸ Mais lentos▸ Mudanças na UI tendem a impactar
![Page 11: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/11.jpg)
ONDE ESCREVER MEUS TESTES E2E?
MAIS UMA VEZ.. DEPENDE!
![Page 12: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/12.jpg)
![Page 13: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/13.jpg)
Tipo da Aplicação
Tecnologias disponíveis Maturidade do
time
Conhecimento do time
?
? ?
?
??
??
?
?
?
? ???
![Page 14: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/14.jpg)
E2E TESTING
FERRAMENTAS JAVASCRIPT
![Page 15: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/15.jpg)
WEBDRIVER I/O
TESTES DE REGRESSÃO DE UI
DSL FLUENTE
VARIEDADE DE HOOKS
SUPORTA SINCRONISMO
SUPORTA GULP E GRUNT
FORNECE CLI
SETUP FÁCIL
![Page 16: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/16.jpg)
WEBDRIVER I/O
SETUP
1. Create sample folder‣ mkdir iatrends-sample && cd iatrends-sample
2. Download selenium standalone server‣ curl -O http://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-
2.53.0.jar
3. Start selenium server‣ java -jar selenium-server-standalone-2.53.0.jar
4. Download Webdriver I/O‣ npm install webdriverio
5. Create a test file (test.js)6. Run tests
‣ node test.js
![Page 17: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/17.jpg)
FEATURES
▸ client.addValue(selector, values)
▸ client.click(selector)▸ client.dragAndDrop(source,
dest)▸ client.submitForm(selector)▸ client.getText(selector,
attrName)▸ client.getUrl()▸ client.getValue(selector)
▸ client.launch()▸ client.orientation([deviceOrientati
on])▸ client.getGeolocation()▸ client.rotate(x, y, duration, radius,
rotation, touchCount)▸ client.swipe([selector][xoffset]
[yoffset][speed]);▸ client.currentActivity();
![Page 18: End-to-end Testing w/ Javascript](https://reader036.vdocuments.us/reader036/viewer/2022062902/58edaf131a28ab72638b45bb/html5/thumbnails/18.jpg)
HANDS-ON