O relatório de teste pode ser enviado após a conclusão do desenvolvimento? Um guia de testes de automação de interface fácil de completar!

Cenário de aplicação

O desenvolvimento ainda não foi concluído, são as verificações do serviço, como sincronizar os testes? Assim que o servidor estiver configurado, o teste é obrigado a enviar um relatório. É hora extra?

Os testes parecem ser pós-trabalho. Somente depois que a versão for desenvolvida ou o servidor configurado é que a ação real pode ser tomada. E muitas vezes nesta fase também já chegou a data para o sistema (programa) ficar online. Realmente não é necessário fazer isso no estágio inicial, mas é exaustivo no estágio posterior.

Desta vez, usamos algumas ferramentas (MockServer, Rest Assured) para implementar testes de API (interface) prospectivos antes de o servidor ser iniciado. E quando o servidor real é iniciado, você só precisa conectar o código de teste ao servidor real para ser executado.

Lembrete: Se você quiser seguir o exemplo, certifique-se de configurar as seguintes ferramentas.

O caso de uso é principalmente combinar as funções básicas do rest-Assured e do MockServer para fazer testes de API pré-automatizados. Para aqueles que não sabem sobre o rest-Assured, faça alguns trabalhos de casa extras (você pode consultar o rest-Assured artigo que escrevi antes , há etapas detalhadas de configuração e aplicação, e o MockServer também tem artigos básicos ).

  • IDE: IntelliJ IDEA

  • Linguagem: Java

  • Desenvolvimento de teste de API: fique tranquilo

  • Servidor API: MockServer

  • Estrutura de teste: TestNg

  • Tipo de projeto: Maven

foco no conhecimento

Aplicativo MockServer: verifique a solicitação recebida pelo servidor

fique tranquilo: simule solicitações de API

Configuração do projeto Maven

Configure o MockServer, tenha certeza em POM.xml.

Conforme mostrado na figura abaixo: MockServer e rest-Assured precisam ser introduzidos corretamente no nó <dependency> do pom.xml.

Dica: Se a dependência não for carregada automaticamente, você poderá carregá-la manualmente e o pacote jar correspondente será baixado.

Servidor simulado:

foto

tenha certeza:

foto

Decomposição do caso de teste

caso de teste

A descrição do caso de uso a seguir deve ser familiar. É uma descrição típica do BDD. Aqui escrevo os parâmetros e a solicitação de verificação juntos para a conveniência desta explicação. O ambiente real pode separar os dados da cena, que ficará mais clara.

Dado: o servidor API está em execução

Quando: O servidor recebe uma solicitação da API (endereço da API: http://localhost:10800/testing.retry/{id})

E: O parâmetro é "?testParameter=false"

E:(cabeçalho)头字段:headerId="id"; headerVersion="versão"; headerName="nome"

Então: Verifique se o servidor recebeu a solicitação correta

Exemplo: vezes: 1,

(cabeçalho)头字段:headerId="id"; headerVersion="versão"; headerName="nome"

Parâmetro: "?testParameter=false"

E: Verifique o código de resposta do servidor (200)

análise de caso de uso

Primeiro, construa um servidor que aceite a API e possa responder com 200 às solicitações de API elegíveis.

Endereço: http://localhost:10800/testing.retry/{id}

Parâmetros: ?testParameter=false

(cabeçalho)头字段:headerId = "id"; headerVersion = "versão"; headerName = "nome";

Quando o servidor recebe a solicitação, ele precisa verificar se recebeu a solicitação correta, e o número de solicitações é 1 e retorna 200.

1. A resposta do código pode ser verificada pelo Rest-Assured.

2. Os dados recebidos pelo servidor são verificados pelo MockSever.

Com o entendimento acima, agora são as etapas de implementação:

1. Servidor API - MockServer.

2. Crie expectativas de resposta da API (expectativas ativas) - MockServer.

3. Simule a solicitação – fique tranquilo e verifique o status da devolução.

4. Verifique o número de solicitações, parâmetros, campos de cabeçalho - MockServer.

5. Feche o MockerServer.

Dica: Esta etapa é muito importante para organizar os testes subsequentes e organizar o código de teste de forma sistemática e lógica.

Script de caso de uso TestNg

De acordo com a análise acima, vejamos passo a passo a implementação do código.

Dica: Este exemplo usa Java + Maven + testNg (se você não está familiarizado com essa combinação, pode ler meus artigos básicos relacionados ).

O script de teste completo é mostrado na imagem abaixo.

foto

Código detalhado

1. Parâmetros globais

Podemos definir informações compartilhadas como variáveis, e o escopo da aplicação considerada pode ser definido como variáveis ​​locais ou variáveis ​​globais.

O que devo fazer se não conseguir determinar o que define variáveis ​​locais ou variáveis ​​globais?

Dica: Este problema é encontrado ao começar a escrever o código de teste, mesmo uma pessoa experiente terá o mesmo problema. Não se preocupe com isso, normalmente escreverei primeiro como uma variável local ou como uma variável fixa sem definir a variável. No final, quando o código de um caso de uso for escrito completamente, ficará claro à primeira vista, ao verificar o código, que variáveis ​​locais ou globais estão definidas.

String headerId = "id";
String headerVersion = "version";
String headerName = "name";
String queryParameter = "testParameter";
String queryParameterValue = "false";
String baseURI = "http://localhost:10800";
int requestTime = 1;
private ClientAndServer mockServer;

2. Servidor API - Servidor Simulado

Conforme mostrado na imagem: primeiro criamos um método startMockServer(), este método é para iniciar uma porta MockServer 10800. O endereço padrão é esta máquina: http://localhost:10800. A variável MockServer é chamada por outros métodos. Variáveis ​​globais são definidas aqui.

private void startMockServer() {
    mockServer = startClientAndServer(10800);
}

3. Crie expectativas de resposta da API (expectativas ativas) - MockServer

Conforme analisado acima, precisamos que o servidor API responda com 200 às seguintes solicitações.

Nota: O {id} do endereço da solicitação é uma variável e a variável pathId é parametrizada no código

O método mockServerActiveExpectations () inicia o servidor API e cria expectativas de resposta da API (Expectativas Ativas).

Endereço: http://localhost:10800/testing.retry/{id}

Parâmetros: ?testParameter=false

(cabeçalho)头字段:headerId = "id"; headerVersion = "versão"; headerName="nome"

foto

O aplicativo mockServerActiveExpectations():

startMockerServer() inicia o servidor API http://localhost:10800.

O código mockServer.when(request().withPath.... é para criar um Active Expectations, esta é a sintaxe padrão do MockServer, não se preocupe em não entender, apenas experimente.

foto

4. Solicitação simulada – fique tranquilo, código de resposta de verificação 200

foto

Esta é a sintaxe do rest-Assured. Simplificando, ele simula o comportamento do usuário e envia uma solicitação de API ao servidor http://localhost:10800/.

Nota: O cabeçalho (campo de cabeçalho) contém todos os dados de teste e "teste" é usado.

log().all : Apenas para depuração, pode ser removido ou mantido posteriormente.

5. Verifique o número de solicitações, parâmetros, campos de cabeçalho - MockServer

foto

Para tornar o código conciso e fácil de ler e, ao mesmo tempo, reutilizável, aqui está um método de verificação separado.

verifyReceivedRequestDataAndTimes(), através do código, podemos ver que aqui serão verificados o caminho, os parâmetros, os métodos, os dados específicos do campo do cabeçalho e a quantidade de solicitações recebidas.

Não se preocupe, essa também é a sintaxe do MockServer.

foto

6. Feche o servidor mocker

Não se esqueça, esta etapa também é crítica. O ambiente de teste é muito importante, especialmente quando você possui um conjunto de casos de teste. Os problemas causados ​​pela não limpeza do meio ambiente são inúmeros.

foto

foto

execução de caso de uso

Ok, vamos testar os resultados primeiro. Aqui eu executo diretamente no IDE.

Abra o painel do MockerSever ao mesmo tempo: http://localhost:10800/mockserver/dashboard

Dicas: O código é executado muito rápido. Para capturar os registros do painel, adicione um tempo de espera de 20 segundos antes que o código feche o MockerSever.

foto

Para aqueles que não entendem como visualizar este painel, você pode consultar meu artigo anterior sobre configuração e construção do MockServer para uma introdução detalhada.

foto

A figura abaixo mostra o resultado da verificação da solicitação do MockerSever.

1. Detalhes do pedido de verificação;

2. Número de solicitações de autenticação.

foto

Os dados da solicitação da API simulada pelo rest-Assured podem ser visualizados no log do código em execução, conforme mostrado na figura a seguir:

foto

Verificação de erros e otimização de código

Agora fazemos alguns testes negativos para verificar se este caso de uso pode detectar bugs sob a solicitação e expectativa "erradas".

Verificamos se o servidor API recebeu 2 solicitações

foto

Depois de executar o código, obteremos o seguinte erro: Esperávamos que o servidor recebesse 2 solicitações, mas na verdade recebemos 1 solicitação, então o erro relatou que nenhuma solicitação correspondente foi encontrada.

foto

Clique em clique para ver a diferença, o lado direito da nova janela mostra a solicitação real recebida pelo servidor (apenas uma vez). Outras diferenças podem ser ignoradas, pois não há validação aqui.

foto

Com base nessa alteração, se você visualizar o painel, não poderá ver as informações de verificação. O código de validação falha e todo o script é interrompido.

Portanto, melhoramos verifyReceivedRequestDataAndTimes() e adicionamos try ...catch..

Nota: Este método foi alterado para retornar um valor booleano, pois precisamos desse valor booleano para verificar o sucesso e a falha do caso de teste. Caso contrário, a validação do teste mostra uma falha, mas o caso de teste é executado com êxito. Consulte SoftAssert descrito abaixo.

foto

Execute o código novamente: o painel pode exibir as informações de falha na verificação.

foto

O método de verificação adiciona SoftAssert, para que o código encontre uma falha de verificação e continue a ser executado. Adicione também assertAll() no final. Dessa forma, a validação falha e o caso de uso falha.

foto

Para poder verificar rapidamente onde está o erro no resultado da execução, melhore try..catch.. para imprimir o erro (aqui eu uso print, e é recomendado usar Log no ambiente real). Desta forma, percebe-se que a verificação falha, o caso de uso falha e o motivo da falha.

foto

Verificamos se o cabeçalho não corresponde

Por exemplo, esperamos que o valor do headerId da solicitação seja "ID", mas a solicitação recebida pelo servidor seja "teste".

foto

Os resultados da falha de verificação são os seguintes:

foto

Resumir

Bem, isso completa como colocar um elefante na geladeira, não é difícil!

Quando o servidor real está online, basta apontar a solicitação Rest-Assured para o servidor de teste real e comentar o MockServer, mesmo que o chefe queira reportar no mesmo dia, podemos entregá-lo.

O texto acima é uma introdução. O mais importante é usar vários tipos de ferramentas de teste para atender às suas próprias necessidades de teste. Todos os grandes testadores podem aplicá-lo com flexibilidade e tirar inferências de uma instância.

Finalmente: O vídeo tutorial completo de teste de software abaixo foi classificado e carregado, e amigos que precisarem dele podem obtê-lo sozinhos [Garantido 100% gratuito]

Documentação da entrevista de teste de software

Devemos estudar para encontrar um emprego bem remunerado. As perguntas da entrevista a seguir são os materiais de entrevista mais recentes de empresas de Internet de primeira linha, como Ali, Tencent e Byte, e alguns chefes da Byte deram respostas confiáveis. Conclua este conjunto Os materiais de entrevista acredito que todos podem encontrar um emprego satisfatório.

Acho que você gosta

Origin blog.csdn.net/wx17343624830/article/details/132669691
Recomendado
Clasificación