RT001 - Login de Usuário
Contexto
Validar o fluxo de autenticação de usuários no sistema, garantindo que usuários válidos consigam acessar e usuários inválidos sejam bloqueados adequadamente.
Pré-condições
- [ ] Ambiente de teste disponível
- [ ] Usuário de teste cadastrado e ativo
- [ ] Navegador limpo (sem cookies/cache)
Dados de Teste
| Tipo | Senha | Descrição | |
|---|---|---|---|
| Válido | user@test.com | Test@123 | Usuário ativo |
| Bloqueado | blocked@test.com | Test@123 | Usuário bloqueado |
| Inativo | inactive@test.com | Test@123 | Usuário inativo |
Casos de Teste
CT001 - Login com credenciais válidas
Objetivo: Verificar que usuário com credenciais válidas consegue autenticar com sucesso.
Prioridade: Alta | Tipo: Positivo | Smoke: Sim
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /login | Formulário de login é exibido |
| 2 | Preencher campo email com user@test.com | Campo aceita o valor |
| 3 | Preencher campo senha com Test@123 | Campo aceita o valor (mascarado) |
| 4 | Clicar no botão "Entrar" | Loading é exibido |
| 5 | Aguardar processamento | Usuário é redirecionado para /dashboard |
| 6 | Verificar header | Nome do usuário é exibido |
Resultado Esperado Final: Usuário autenticado e na página de dashboard.
CT002 - Login com senha incorreta
Objetivo: Verificar tratamento de erro para senha inválida.
Prioridade: Alta | Tipo: Negativo
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /login | Formulário de login é exibido |
| 2 | Preencher campo email com user@test.com | Campo aceita o valor |
| 3 | Preencher campo senha com SenhaErrada123 | Campo aceita o valor |
| 4 | Clicar no botão "Entrar" | Loading é exibido |
| 5 | Aguardar processamento | Mensagem de erro é exibida |
Resultado Esperado Final: Mensagem "Credenciais inválidas" exibida. Usuário permanece na tela de login.
CT003 - Login com email não cadastrado
Objetivo: Verificar tratamento para usuário inexistente.
Prioridade: Alta | Tipo: Negativo
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /login | Formulário de login é exibido |
| 2 | Preencher campo email com naoexiste@test.com | Campo aceita o valor |
| 3 | Preencher campo senha com Test@123 | Campo aceita o valor |
| 4 | Clicar no botão "Entrar" | Loading é exibido |
| 5 | Aguardar processamento | Mensagem de erro é exibida |
Resultado Esperado Final: Mensagem "Credenciais inválidas" exibida (mensagem genérica por segurança).
CT004 - Login com usuário bloqueado
Objetivo: Verificar que usuários bloqueados não conseguem autenticar.
Prioridade: Alta | Tipo: Negativo
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /login | Formulário de login é exibido |
| 2 | Preencher credenciais do usuário bloqueado | Campos preenchidos |
| 3 | Clicar no botão "Entrar" | Loading é exibido |
| 4 | Aguardar processamento | Mensagem específica exibida |
Resultado Esperado Final: Mensagem "Sua conta está bloqueada. Entre em contato com o suporte."
CT005 - Validação de campos obrigatórios
Objetivo: Verificar validação de campos vazios.
Prioridade: Média | Tipo: Negativo
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /login | Formulário de login é exibido |
| 2 | Deixar campos vazios | - |
| 3 | Clicar no botão "Entrar" | Validação client-side |
Resultado Esperado Final: Mensagens "Campo obrigatório" exibidas para email e senha.
CT006 - Validação de formato de email
Objetivo: Verificar validação de formato de email inválido.
Prioridade: Média | Tipo: Negativo
| Passo | Ação | Resultado Esperado |
|---|---|---|
| 1 | Acessar a página /login | Formulário de login é exibido |
| 2 | Preencher email com emailinvalido | Campo aceita digitação |
| 3 | Clicar fora do campo ou em Entrar | Validação é executada |
Resultado Esperado Final: Mensagem "Email inválido" exibida.
Informações para Automação
Locators (FlaUI)
locators = {
'txt_usuario': 'name:txtUsuario',
'txt_senha': 'name:txtSenha',
'btn_entrar': 'name:btnEntrar',
'lbl_erro': 'name:lblMensagemErro',
'lbl_usuario_logado': 'name:lblUsuarioLogado',
'tela_dashboard': 'name:Dashboard',
'tela_login': 'name:TelaLogin'
}Exemplo de Código Robot Framework
*** Settings ***
Library FlaUI uia=UIA3
Library Collections
Resource ../resources/common.robot
Suite Setup Abrir PDV
Suite Teardown Fechar PDV
*** Variables ***
${PDV_PATH} C:\\Program Files\\PDV\\pdv.exe
${USUARIO_VALIDO} operador
${SENHA_VALIDA} 123456
*** Test Cases ***
CT001 - Login Com Credenciais Válidas
[Documentation] Verifica que usuário com credenciais válidas consegue autenticar
[Tags] login smoke alta
Dado Que Estou Na Tela De Login
Quando Preencho Usuario Com ${USUARIO_VALIDO}
E Preencho Senha Com ${SENHA_VALIDA}
E Clico Em Entrar
Então Devo Ver A Tela Dashboard
E Devo Ver O Nome Do Usuario Logado
CT002 - Login Com Senha Incorreta
[Documentation] Verifica tratamento de erro para senha inválida
[Tags] login negativo alta
Dado Que Estou Na Tela De Login
Quando Preencho Usuario Com ${USUARIO_VALIDO}
E Preencho Senha Com SenhaErrada123
E Clico Em Entrar
Então Devo Ver Mensagem De Erro Credenciais inválidas
CT003 - Login Com Usuario Não Cadastrado
[Documentation] Verifica tratamento para usuário inexistente
[Tags] login negativo alta
Dado Que Estou Na Tela De Login
Quando Preencho Usuario Com usuarioinexistente
E Preencho Senha Com ${SENHA_VALIDA}
E Clico Em Entrar
Então Devo Ver Mensagem De Erro Credenciais inválidas
*** Keywords ***
Dado Que Estou Na Tela De Login
Wait Until Element Exists name:TelaLogin timeout=10
Quando Preencho Usuario Com
[Arguments] ${usuario}
${element}= Get Element name:txtUsuario
Set Text ${element} ${usuario}
E Preencho Senha Com
[Arguments] ${senha}
${element}= Get Element name:txtSenha
Set Text ${element} ${senha}
E Clico Em Entrar
${element}= Get Element name:btnEntrar
Invoke Click ${element}
Então Devo Ver A Tela Dashboard
Wait Until Element Exists name:Dashboard timeout=10
E Devo Ver O Nome Do Usuario Logado
Element Should Exist name:lblUsuarioLogado
Então Devo Ver Mensagem De Erro
[Arguments] ${mensagem}
${element}= Get Element name:lblMensagemErro
${texto}= Get Text ${element}
Should Contain ${texto} ${mensagem}Referências
- Requisitos: REQ-AUTH-001, REQ-AUTH-002
- Design: [Link do Figma]
- API Docs: [Link da documentação da API]
Histórico de Alterações
| Data | Versão | Autor | Descrição |
|---|---|---|---|
| 2025-01-29 | 1.0 | QA Team | Versão inicial |