Compartilhamento de tecnologia

[python appium] testes automatizados

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

A série de testes automatizados python+appium está chegando ao fim. Vamos fazer um resumo neste blog.

Em primeiro lugar, quero explicar que o teste automatizado de APP pode não ser usado por muitas empresas, mas também é exigido pela maioria das informações de recrutamento de emprego de engenheiro de teste automatizado e engenheiro de teste sênior, portanto, para obter um melhor tratamento, ainda precisamos gastar tempo para dominá-lo Afinal, quem nem eu terá problemas com dinheiro.

A seguir, vamos resumir as ideias para testes automatizados de UI de APP.

1. Seleção do idioma de desenvolvimento
As linguagens de programação comumente usadas para testes automatizados incluem: Python, Java, Javascript, Ruby, C#, PHP, etc. Geralmente, escolheremos uma linguagem de programação com a qual estamos familiarizados para escrever scripts automatizados, mas para crianças que não têm basicamente nenhuma base de programação (ou crianças que se concentram em testes automatizados), é recomendado aprender a usar Python.

Comparado com outras linguagens, Python tem as seguintes vantagens para testes automatizados:

Para iniciantes, Python tem uma sintaxe concisa, é altamente legível e fácil de aprender.

Existem bibliotecas poderosas de terceiros que tornam os scripts mais eficientes.

A estrutura de teste automatizado Pytest em Python é uma das estruturas de teste mais populares atualmente

2. Seleção da estrutura de teste de IU
Depois de escolher uma linguagem de desenvolvimento, precisamos escolher uma estrutura de teste de UI. Atualmente, as estruturas de teste de automação de UI de APP mais convencionais ou amplamente usadas incluem Appium, Airtest, etc.

1, Ápio
Código aberto

O servidor Appium suporta execução em Windows, macOS e Linux

Suporta várias linguagens de programação convencionais, como Python, Java, Javascript, Ruby, etc.

Suporte a testes automatizados Android, iOS, H5 (UiAutomator integrado, estrutura UiAutomation)

A construção do ambiente é mais complicada

2, teste de ar
Desenvolvido pela NetEase (documento oficial), suporta apenas a linguagem python

Fornece um IDE poderoso integrando estruturas de teste Airtest e Poco, que é muito amigável para iniciantes

Integre o airtest, uma estrutura de teste automatizado de UI baseada em reconhecimento de imagem, para que você possa escrever scripts automatizados mesmo que não entenda o código.

Plataforma cruzada, pode realizar testes automatizados de software de aplicativos Windows, Android e iOS

Mais amigável para testes de jogos

Airtest e Poco são essencialmente duas bibliotecas de terceiros para Python. O ambiente de teste não é tão complicado quanto o Appium.

3. Selecione o quadro
Escolha uma estrutura apropriada com base na situação real.

Você pode dar prioridade ao Airtest da NetEase (site oficial do Airtest) nas seguintes situações:

Sem base de programação

Teste de jogo

O cenário de teste é relativamente simples (Appium é relativamente volumoso)

Automação do miniprograma Alipay (o blogueiro atualmente usa a estrutura Poco integrada ao Airtest para testes automatizados do miniprograma Alipay)

Recomenda-se escolher Appium nas seguintes situações:

O cenário de teste é relativamente complexo (por exemplo, é necessário testar vários telefones celulares em lote)

A linguagem do script de teste não é Python (atualmente o Airtest suporta apenas Python)

3. Seleção da estrutura de teste unitário
Diferente da estrutura de teste de UI mencionada acima, a estrutura de teste de unidade é usada para carregar casos de teste, executar casos de teste, afirmar, gerar resultados de teste, etc.

Diferentes linguagens de desenvolvimento têm suas próprias estruturas de teste de unidade correspondentes, como JUnit, TestNG, Robot, etc. para Java, e unittest, pytest, etc. Os blogueiros usam Python principalmente para testes automatizados, então aqui explicamos apenas a estrutura de teste de unidade Python.

Estrutura de teste de unidade principal do Python:

unittest, a estrutura de teste de unidade do próprio Python

pytest, desenvolvido com base em unittest, é fácil de usar, possui informações mais detalhadas e possui diversos plug-ins.

framework robot, uma estrutura de teste baseada em palavras-chave baseada em Python, com uma interface, relatórios e logs integrados, funções completas, claras e bonitas

É altamente recomendável usar o pytest aqui, que é poderoso e fácil de usar. A documentação oficial está em inglês. Para chinês, consulte o manual do usuário do Pytest.

4. Configuração do ambiente de teste
1. Teste a seleção do computador
Se possível, é recomendado usar uma máquina Mac especificamente para testes de automação de UI, porque a automação de UI do aplicativo iOS só pode ser realizada em uma máquina Mac.

2. Teste a seleção do telefone celular
Ao iniciar a depuração de scripts de teste pela primeira vez, você pode escolher um emulador. Para emuladores Android, você pode escolher o emulador Gernymotion ou Yeshen.

Após a conclusão do desenvolvimento de todo o projeto de teste, recomenda-se mudar para uma máquina real para executar o script automatizado, que estará mais próximo do cenário real de uso do usuário.

3. Ambiente de linguagem de desenvolvimento
Recomenda-se instalar uma versão do python 3 ou superior. O oficial parou de atualizar e manter a versão python2.

4. Construção do ambiente da estrutura de teste de automação da IU
Construir o Appium no ambiente Windows é um pouco mais complicado. Construir o Appium no Mac é um pouco mais complicado. Escreverei um blog para compartilhá-lo mais tarde.

Se você escolher a estrutura Airtest, consulte o site oficial.

5. Redação do roteiro
1. Escreva uma demonstração de teste
Para verificar se todo o ambiente de teste foi construído com sucesso e se exemplos comuns podem ser executados, geralmente precisamos escrever um script de teste simples e executá-lo. Se for aprovado, significa que todo o ambiente foi construído com sucesso.

2. Determine a estrutura de diretórios
Recomenda-se usar o padrão de design Page Object para desenvolver projetos de teste de automação de UI de APP.

3. Selecione o relatório de teste
Diferentes linguagens de desenvolvimento e diferentes estruturas de testes unitários podem usar diferentes relatórios de teste. Em python, a estrutura unittest usa HTMLTestRunner ou BSTestrunner para gerar relatórios de teste. A estrutura Pytest usa pytest-html para gerar relatórios ou personalizar relatórios de teste por meio do allure.

Após a conclusão das etapas acima, continue adicionando casos de teste ao projeto de teste.

6. Integração Jenkins
Depois que todo o projeto de teste de automação da IU do aplicativo for escrito de acordo com as etapas acima e for executado de forma estável por um período de tempo, você pode considerar a integração do Jenkins.

7. Resumo
Para resumir, a automação da UI do APP pode ser implementada das seguintes maneiras:

1, python + appium + teste unitário + HTMLTestRunner

2, python + appium + pytest + pytest-html / allure

3, python + Airtest (IDE Airtest)

4, python + Poco + pytest + pytest-html / allure

Você pode escolher de acordo com a situação real.

Por fim, gostaria de agradecer a todos que lêem meu artigo com atenção. A reciprocidade é sempre necessária. Embora não seja algo muito valioso, se você puder usá-lo, poderá aproveitá-lo diretamente.

Esta informação deve ser o armazém de preparação mais abrangente e completo para amigos [de teste de software]. Este armazém também acompanhou dezenas de milhares de engenheiros de teste na jornada mais difícil.