Your SlideShare is downloading. ×
0
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
PhantomJS - O Fantasminha Camarada
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

PhantomJS - O Fantasminha Camarada

3,970

Published on

Conheça essa incrível ferramenta para te ajudar a executar testes de aceitação e testes funcionais em JavaScript.

Conheça essa incrível ferramenta para te ajudar a executar testes de aceitação e testes funcionais em JavaScript.

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PhantomJSO fantasminha camarada Henrique Gogó @henriquegogo
  • 2. O que é PhantomJS? Um "browser" webkit com API JavaScript completa que roda no console.Suporte nativo a vários padrões web standards: DOM, seletores CSS, JSON, Ajax, Canvas e SVG.
  • 3. Para que serve? Rodar testes funcionais (de JavaScript) comframeworks como Jasmine, QUnit ou CasperJS. Acessar e manipular páginas com acesso completo ao DOM e bibliotecas de JS como jQuery.
  • 4. Por que não WebRat? WebRat é um simulador de browser com capacidade de DOM, seletores CSS, de fácilintegração com RSpec, Cucumber, Test::Unit e outros. Mas e o JavaScript?
  • 5. Por que não Selenium? Selenium é contém uma API para você realizartestes de aceitação em diversos browsers. Para isso ele levanta uma instância do browser.
  • 6. Usando PhantomJS como engine JavaScript do Capybara https://github.com/jonleighton/poltergeistrequire capybara/poltergeistCapybara.javascript_driver = :poltergeist
  • 7. Ou simplesmente QUnit$ phantomjs run-qunit.js test/index.htmlTests completed in 1528 milliseconds.1223 tests of 1223 passed, 0 failed.
  • 8. QUnittest("a basic test example", function() { ok( true, "this test is fine" ); var value = "hello"; equal( value, "hello", "We expect value to behello" );});
  • 9. Exemplos//teste.jsvar page = new WebPage();var url = "http://www.gogs.com.br/";page.open(url, function (status) { //Página carregada phantom.exit();});$ phantomjs teste.js
  • 10. Manipulação de DOMvar page = new WebPage();console.log(Seu user agent é: + page.settings.userAgent);page.settings.userAgent = SpecialAgent;page.open(http://www.httpuseragent.org, function (status) { if (status !== success) { console.log(Unable to access network); } else { var ua = page.evaluate(function () { return document.getElementById(myagent).innerText; }); console.log(ua); } phantom.exit();});
  • 11. Listener de requisiçõesvar url = phantom.args[0];var page = new WebPage();page.onResourceRequested = function (request) { console.log(Request + JSON.stringify(request,undefined, 4));};page.onResourceReceived = function (response) { console.log(Receive + JSON.stringify(response,undefined, 4));};page.open(url);
  • 12. page.render()$ phantomjs rasterize.js http://www.google.com.br google.png
  • 13. Blá Blá Blá!Blá Blá Blá!Blá Blá Blá!Blá Blá Blá!Blá Blá Blá!
  • 14. Então...Quer fazer testes de aceitação com fidelidade à engine WebKit (Chrome, Safari, Mobile browsers)? Quer testar JavaScript sem precisar abrir browser? Quer integrar com Ruby usando Capybara, ououtras plataformas como C# (usando Chutzpah)?
  • 15. PhantomJS
  • 16. Perguntas? @henriquegogo www.gogs.com.br

×