Systems • Bacharel em Ciência da Computação pela UFRJ • Cursando MBA em Garantia de Qualidade de Software na Escola Politécnica da UFRJ • Certificado CTAL-TA / CTAL-TM pelo ISTQB e CPRE-FL pelo IREB • Mantém um blog técnico sobre Testes: stefanteixeira.com.br ! • Contatos: • E-mail: [email protected] • Twitter: twitter.com/stefan_teixeira • Facebook: facebook.com/stefan.teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira 2
gráfica WebKit, a mesma usada pelo Safari e pelo Chrome (até a versão 27 - Abril/2013) Hoje, o Chrome usa sua própria engine (Blink), que é um fork do WebKit • Criado por Ariya Hidayat • phantomjs.org / https://github.com/ariya/ phantomjs 7
• Palestra “Crazy Fast Build Times - or when 10 seconds starts to make you nervous” • Mostra formas de reduzir em até 10 vezes o tempo de build de uma aplicação • Palestra na InfoQ: http://goo.gl/ScN6HH 13
Software Testing Qualifications Board) “Subconjunto de todos os casos de testes definidos/planejados que cobre as principais funcionalidades de um componente ou sistema, para averiguar as principais funções de um programa em funcionamento sem se preocupar com maiores detalhes.” 15
• Criado por Ivan De Marino • Versão atual: 1.1.1 (12/01/2014) • GitHub: https://github.com/detro/ghostdriver • Projeto também inclui Java bindings (PhantomJSDriver) 20
o diretório no PATH • Ubuntu: http://goo.gl/6Qv9cB • Mac OS X: brew update && brew install phantomjs • Versão do Selenium >= 2.33.0 OBS: 2.40.0 já conta com a versão 1.1.0 do PhantomJSDriver (Java binding) 21
comando do PhantomJS para o GhostDriver, por exemplo: ArrayList argumentos = new ArrayList(); argumentos.add(“--ignore-ssl-errors=true”); argumentos.add(“--ssl-protocol=any”); argumentos.add(“--proxy-type=none”); ! DesiredCapabilities caps = DesiredCapabilities.phantomjs(); caps.setCapability(“phantomjs.cli.args”, argumentos); ! WebDriver driver = new PhantomJSDriver(caps); ! ! • Lista de parâmetros: phantomjs.org/api/command- line.html 24
ação que gera o alerta JS) •A partir da versão 1.1.0 do GhostDriver, é possível executar código do PhantomJS através do método executePhantomJS ! PhantomJSDriver phantom = (PhantomJSDriver) driver; ! phantom.executePhantomJS(“var page = this;” + “page.onConfirm = function(msg) {“ + “console.log(‘CONFIRM: ‘ + msg);” + “return true;” + “};”); 28
nested frames (frame dentro de um iframe, por exemplo), o GhostDriver só digita o último caractere :( • Essa issue ainda não foi investigada, apesar de três pessoas já terem notificado o problema. 30