Testando página de login usando Robot Framework
Com o Robot Framework, aprendemos o seguinte até agora -
- Importar Bibliotecas
- Trabalhando com variáveis
- Crie palavras-chave personalizadas
- Como escrever casos de teste
- Como criar configuração e desmontagem
- Como executar casos de teste
- Como trabalhar com casos de teste baseados em dados
Usaremos todos os recursos acima e para testar a página de login neste capítulo. Temos uma página de login que leva no e-mail-id e senha. Ao inserir o ID de e-mail e a senha corretos, você será redirecionado para uma página de boas-vindas Se o usuário inserir um ID de e-mail ou senha inválida, a página será redirecionada para a página de erro.
A captura de tela a seguir mostra uma página de login -
Código HTML
<html>
<head>
<title>Login Page</title>
</head>
<body>
<script type="text/javascript">
function wsSubmit() {
if (document.getElementById("email").value == "[email protected]" && document.getElementById("passwd").value == "admin") {
location.href = "http://localhost/robotframework/success.html";
} else {
location.href = "http://localhost/robotframework/loginfailed.html";
}
}
</script>
<div id="formdet">
Email : <input type="text" id="email" value="" id="email" /><br/><br/>
Password : <input type="password" id="passwd" value="" /><br/><br/>
<input type="submit" id="btnsubmit" value="Submit" onClick="wsSubmit();"/>
</div>
</body>
</html>
A tela a seguir aparece quando o id de e-mail ou a senha não são válidos -
Código HTML
<html>
<head>
<title>Login Failed</title>
</head>
<body>
<div id="loginfailed">
<h1>Login Failed</h1>
</div>
</body>
</html>
A tela a seguir aparece quando o id de e-mail e a senha são válidos -
Código HTML
<html>
<head>
<title>Login Successful</title>
</head>
<body>
<div id="loginfailed">
<h1>Login Successful</h1>
</div>
</body>
</html>
Agora vamos escrever casos de teste para a página de teste acima. Para começar, primeiro executaremos o comando para abrir o Ride.
Comando
ride.py
Uma vez feito isso, vamos começar com a configuração do projeto conforme mostrado abaixo -
Clique em Novo Projeto e insira o nome do projeto.
Salvaremos o tipo de projeto como Diretório. O nome dado ao projeto é testlogin.
Clique em OK para salvar o projeto.
Agora, vamos criar uma suíte de testes dentro do projeto.
Clique em New Suite e será exibida uma tela conforme mostrado abaixo -
Clique em OK para salvar o conjunto de testes. Precisamos importar a Biblioteca Selenium, pois trabalharemos com o navegador.
Biblioteca de importação no projeto principal e também para a suíte de testes criada.
Clique em Biblioteca como na imagem acima. Ao clicar em Biblioteca, a tela a seguir aparecerá.
Clique em OK para salvar a biblioteca do projeto.
Assim que a biblioteca for salva para o projeto, ele irá exibir a biblioteca nas configurações -
Repita a mesma etapa para o conjunto de testes criado.
Aqui está a biblioteca adicionada para o conjunto de testes -
Agora, no Projeto principal, vamos criar uma configuração e desmontagem. Gostaríamos de abrir a página de login no navegador Chrome e maximizar a janela. Na desmontagem, fecharemos o navegador.
Para configuração, criaremos uma palavra-chave definida pelo usuário chamada Open Login Page. Esta palavra-chave terá 2 argumentos, URL da página de login e nome do navegador.
Agora, precisamos de 2 variáveis escalares que nos ajudarão a armazenar os valores - url e o nome do navegador.
No passeio, crie 2 variáveis ${loginpage} e ${browser} como segue -
${loginpage}
${browser}
Salve ambas as variáveis.
As variáveis serão exibidas em seu projeto da seguinte forma -
Agora, adicionaremos a configuração e a desmontagem do projeto principal.
Clique no projeto à esquerda. Nas configurações, clique em Suite Setup.
Criamos uma configuração que usa a palavra-chave do usuário Open Login Page com argumentos ${loginpage} e ${browser}.
Clique em OK para salvar a configuração.
Agora, temos que criar a palavra-chave definida pelo usuário Open Login Page, que é feito da seguinte forma -
Clique com o botão direito no projeto e clique New User Keyword -
Ao clicar New User Keyword, a seguinte tela aparece -
Aqui, a palavra-chave recebe 2 argumentos - ${loginpage} e ${browser}. Clique em OK para salvar a palavra-chave do usuário.
Agora precisamos inserir as palavras-chave da biblioteca, que abrirá a URL.
Open Login Page a palavra-chave definida pelo usuário tem os seguintes detalhes -
*** Keywords ***
Open Login Page
[Arguments] ${loginpage} ${browser}
Open Browser ${loginpage} ${browser}
Maximize Browser Window
Title Should Be Login Page
Agora, vamos criar Suite Teardown para a suíte.
Clique em Edit for Suite Teardown e insira os detalhes -
Para a desmontagem do Suite, estamos usando diretamente a palavra-chave library, que fechará o navegador. Clique em OK para salvar a desmontagem da suíte.
Agora, clique no Testlogin Suite que criamos.
Vamos agora criar uma configuração para o conjunto de testes - Configuração de Teste. Esta configuração precisa ser executada primeiro.
Clique em Edit para Test Setup e insira os detalhes.
Para a configuração do teste, criamos uma palavra-chave definida pelo usuário chamada Login Page Display, que considerará o argumento como ${loginpage} como na imagem acima.
Clique em OK para salvar a configuração do teste.
Agora, precisamos criar a palavra-chave do usuário Login Page Display.
Clique com o botão direito no conjunto de testes e clique New User Keyword como mostrado abaixo -
A nova palavra-chave do usuário exibirá a tela conforme mostrado abaixo -
Clique em OK para salvar a palavra-chave.
Vamos agora inserir a palavra-chave necessária para a palavra-chave do usuário Login Page Display.
Aqui queremos ir para o loginpage e verifique se o título da página corresponde ao valor fornecido.
Agora, vamos adicionar um modelo ao conjunto de testes e criar casos de teste baseados em dados.
Para criar o modelo, clique no pacote e, no lado direito, clique em Editar para o modelo de teste.
Você será direcionado para a seguinte tela -
O login de teste é novamente uma palavra-chave definida pelo usuário. Clique em OK para salvar o modelo.
Antes de criarmos a palavra-chave Test Login, precisamos de algumas variáveis escalares. As variáveis escalares terão os detalhes do email-id, senha, página de sucesso, página de falha, etc.
Vamos criar variáveis escalares para o conjunto de testes da seguinte forma -
Criamos as variáveis escalares de email, senha, successpage e failurepage, conforme mostrado na imagem acima.
Agora, vamos criar Test LoginPalavra-chave definida pelo usuário. Clique com o botão direito do mouse no conjunto de testes e clique em Nova palavra-chave de usuário.
Clique em OK para salvar a palavra-chave.
A captura de tela a seguir mostra as palavras-chave inseridas para login de teste -
Enter Email, Enter Password, Submit Details e Login Should Fail são palavras-chave definidas pelo usuário, que são definidas da seguinte forma -
Digite o e-mail
Digite a senha
Enviar detalhes
O login deve falhar
Agora, vamos escrever casos de teste, que levarão diferentes detalhes de id de e-mail e senha para o modelo criado.
A seguir está uma lista de casos de teste -
Caso de teste de id de e-mail inválido
O email é passado com os valores [email protected] e $ {senha} é a senha armazenada na variável.
senha inválida
Id de email e senha inválidos
Id de email vazio
Senha vazia
Email e senha vazios
Agora, concluímos os casos de teste e podemos executá-los.
Vá para a guia Executar e clique em Iniciar para executar os casos de teste.
Aqui estão as mensagens de log para os casos de teste -
20181027 18:11:40.353 : INFO : Opening browser 'chrome' to base url '
http://localhost/robotframework/login.html'.
20181027 18:11:45.960 : INFO : Page title is 'Login Page'.
Starting test: Testlogin.Testlogin Suite.Invalid EmailId
20181027 18:11:45.991 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:46.169 : INFO : Page title is 'Login Page'.
20181027 18:11:46.180 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:46.706 : INFO : Typing text 'admin' into text field 'passwd'.
20181027 18:11:47.075 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:47.565 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:47.584 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid EmailId
Starting test: Testlogin.Testlogin Suite.Invalid Password
20181027 18:11:47.600 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:47.767 : INFO : Page title is 'Login Page'.
20181027 18:11:47.783 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:48.342 : INFO : Typing text 'invalid' into text field 'passwd'.
20181027 18:11:48.701 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:49.035 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:49.051 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid Password
Starting test: Testlogin.Testlogin Suite.Invalid EmailId And Password
20181027 18:11:49.054 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:49.213 : INFO : Page title is 'Login Page'.
20181027 18:11:49.221 : INFO : Typing text 'invalid' into text field 'email'.
20181027 18:11:49.555 : INFO : Typing text 'invalid' into text field 'passwd'.
20181027 18:11:49.883 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:50.162 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:50.176 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Invalid EmailId And Password
Starting test: Testlogin.Testlogin Suite.Empty Emailid
20181027 18:11:50.188 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:50.302 : INFO : Page title is 'Login Page'.
20181027 18:11:50.306 : INFO : Typing text '' into text field 'email'.
20181027 18:11:50.486 : INFO : Typing text 'admin' into text field 'passwd'.
20181027 18:11:50.693 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:50.935 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:50.958 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Emailid
Starting test: Testlogin.Testlogin Suite.Empty Password
20181027 18:11:50.958 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:51.063 : INFO : Page title is 'Login Page'.
20181027 18:11:51.071 : INFO : Typing text '[email protected]' into text field 'email'.
20181027 18:11:51.367 : INFO : Typing text '' into text field 'passwd'.
20181027 18:11:51.561 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:51.796 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:51.808 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Password
Starting test: Testlogin.Testlogin Suite.Empty Email And Password
20181027 18:11:51.811 : INFO : Opening url 'http://localhost/robotframework/login.html'
20181027 18:11:51.908 : INFO : Page title is 'Login Page'.
20181027 18:11:51.916 : INFO : Typing text '' into text field 'email'.
20181027 18:11:52.049 : INFO : Typing text '' into text field 'passwd'.
20181027 18:11:52.193 : INFO : Clicking button 'btnsubmit'.
20181027 18:11:52.419 : INFO : Current location is 'http://localhost/robotframework/loginfailed.html'.
20181027 18:11:52.432 : INFO : Page title is 'Login Failed'.
Ending test: Testlogin.Testlogin Suite.Empty Email And Password
Conclusão
Vimos aqui como testar uma página de login com diferentes entradas, o que irá validar se o login está funcionando bem ou não. Os detalhes de como a execução ocorre são fornecidos na seção de log.