Post

1 Star2 Stars3 Stars4 Stars5 Stars

By Cintia Armesto Em continuação ao último post, hoje pretendo explicar o código de teste funcional que criei e se adequava ao desafio.Em primeiro lugar se você pensa em escrever um código de teste legal aprenda o conceito de page objects. Isso ajudará você a economizar muitas linhas de código e facilitará a manutenção dos mesmos.
Iniciei a codificação mapeando os elementos da minha página em um objeto e criando métodos para que a minha classe de teste pudesse acessa-los. Os primeiros objetos mapeados, foram todos os campos do formulário como combos, inputs, buttons, etc. Feito isso já tinha o básico para iniciar a classe de testes. public class PaginaFormularioCadastro { private WebDriver driver; public PaginaFormularioCadastro(WebDriver driver) { super(); this.driver = driver; } public void selecionaPessoaFisica(){ driver.findElement(By.id(“legalEntity.F”)).click(); } public void selecionaPessoaJuridica(){ driver.findElement(By.id(“legalEntity.J”)).click(); } public void escreveNome(String nome){ driver.findElement(By.id(“firstName”)).sendKeys(nome); } public void escreveUsuario(String usuario){ driver.findElement(By.id(“userName”)).sendKeys(usuario); } public void escreveSenha(String senha){ driver.findElement(By.id(“password”)).sendKeys(senha); } public void reEscreveSenha(String senha){ driver.findElement(By.id(“password2”)).sendKeys(senha); } public void escreveEmail(String email){ driver.findElement(By.id(“email”)).sendKeys(email); } public void queroInfoGrupo(){ driver.findElement(By.id(“complement.rbsEmail”)).click(); } public void queroInfoParceirosGrupo(){ driver.findElement(By.id(“complement.otherEmail”)).click(); } public void aceitaTermo(){ driver.findElement(By.id(“acceptTerms”)).click(); } public void cadastrar(){ driver.findElement(By.cssSelector(“input[type=”submit”]”)).click(); }} Antes disso preparei uma classe que conteria as assinaturas @before e @after, que poderão serem usadas por outras classes de teste. Iniciei a classe de teste estendendo a classe que cotei acima. public class Teste { protected WebDriver driver; protected String baseUrl; private StringBuffer verificationErrors = new StringBuffer(); @Before public void setUp() throws Exception { driver = new FirefoxDriver(); baseUrl = “http://zerohora.clicrbs.com.br/wrs/action/update/newUser;jsessionid=ac19071f30d825732ff18c3a4149b3cfc47cf2a125ef.e34RbNaLchqQay0NbhmTc40.22?site=4446″; driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); driver.get(baseUrl); } @After public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!””.equals(verificationErrorString)) { fail(verificationErrorString); } }}Comecei a chamar os métodos criados no objeto para fazer as simulações. Assim que essa etapa estava concluída e funcionando, precisava das assertivas para garantir que o teste passou, então implementei no objeto, métodos que faziam essas verificações. Acabei os cenários de teste na minha classe e parti para verificar o funcionamentos. De cara eu sabia que teria problemas para atender aos critérios de aceite do teste devido a estar usando sempre o mesmo nome de usuário para cadastrar, mesmo assim executei o teste apenas modificando esse parâmetro e vi que o teste estava funcionando. Para resolver esse problema criei um objeto chamado usuário com o atributo username. public class Usuario { protected String username; public Usuario(String username) { super(); this.username = username.replaceAll(“[ :]”, “”); } protected String getUsername() { return username; } protected void setUsername(String username) { this.username = username.replaceAll(“[ :]”, “”); }} O construtor desse atributo pegava a hora e data do sistema, retirava espaços em branco e barras e convertia para string. Cada vez que eu executava o teste ele pegava um timestamp diferente. Resolvido isso meu teste ficou pronto para ser executado várias vezes sem precisar de ajuste a cada execução.Done? Done!

Source: http://guriatech.blogspot.com/2013/02/continuacao-dojo.html

Category: métodos ágeis, selenium; dojo, TESTES AUTOMATIZADOS, testes de software, Testes funcionais

Você também pode querer ler

Comments are off for this post.