2. 2
SELENIUM
● Selenium IDE
●
Extensão do FF, que permite gravar, editar, executar testes.
● Selenium Remote Control
● Bibliotecas e servidor para executar os testes.
● Selenium Grid
● Distribuição de testes em multiplas máquinas
3. 3
SELENIUM IDE
● Extensão do FireFox que possibilita a
gravação de testes na sua aplicação web.
● Não é apenas um gravador ou editor de
testes, é uma ferramenta completa, onde
pode até mesmo executar os seus testes.
5. 5
SELENIUM IDE
URL Padrão
para o teste
Executar
Testes
Indica que está sendo
gravado um testes
Suíte de Testes
Lista de comandos
Executados
nessa gravação
Área de
Novos Comandos
Comandos
Executados
7. 7
Comandos SELENIUM IDE
● Open
● Assert Title
● Click and Wait
● Click
● Type
● Wait
● Close
● Go Back
● Is Text Present
● Key Down
● Key Press
● Key Up
● Refresh
● Submit
● Uncheck
● Check
● ...
9. 9
Exportando o teste para Java
Arquivo > Exportar Teste Como.. > Java (Junit) Selenium RC
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class busca extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://change-this-to-the-site-you-are-testing/", "*iexplore");
}
public void testBusca() throws Exception {
selenium.open("/admin/configuracoes/papeis/lista_usuario_papel.jsf");
selenium.select("form:sistema", "label=SIGAA");
selenium.select("form:sistema", "label=SIGAA");
selenium.select("form:subsistema", "label=BIBLIOTECA");
selenium.select("form:subsistema", "label=BIBLIOTECA");
selenium.click("//option[@value='14000']");
selenium.click("//option[@value='14000']");
selenium.select("form:papeis", "label=BIBLIOTECA_ADMINISTRADOR_LOCAL");
selenium.select("form:papeis", "label=BIBLIOTECA_ADMINISTRADOR_LOCAL");
selenium.click("form:j_id_jsp_513967898_19");
selenium.click("form:j_id_jsp_513967898_19");
}
}
10. 10
SELENIUN REMOTE CONTROL (RC)
● Ferramenta auxiliar do Selenium IDE.
● Realiza os testes gravados em outros browser.
● É uma ferramenta tipo record-and-playback
● Não permite com o teste, ou seja modifica-lo para usar várias
condições.
● Algumas linguagens suportadas:
● Java
● .Net
● Python
● Ruby
● PHP
17. 17
Preparando a JSP
● No form a opção prependId como false e
ids em todos os campos de formulário.
<h:form id="formulario" prependId="false">
<h:inputText value="#{boletim.noticia.titulo}" id="noticia" style="width: 600px;"/>
<h:commandButton id="cadastrar" value="#{boletim.confirmButton}" action="#{boletim.cadastrar}"/>
18. 18
Escrevendo o Teste
package br.ufrn.admin.jsf.tests.suportetecnico;
import org.junit.Test;
import br.ufrn.arq.tests.WebTestCase;
import static org.junit.Assert.*;
public class TipoDeAmbienteTests extends WebTestCase {
@Test
public void cadastradoComSucesso() {
selenium.open("/admin/suporte_tecnico/TipoAmbiente/form.jsf");
selenium.type("nomeAmbiente", "AMBIENTE2");
selenium.click("cadastrar");
selenium.waitForPageToLoad("30000");
assertTrue(selenium.isTextPresent("Operação realizada com sucesso!"));
}
}