Teste automatizado da interface Python - uso detalhado do conjunto e do executor da estrutura unittest

suíte de teste

  • Conjunto de testes, entendido como um conjunto de casos de teste
  • Uma série de casos de teste, ou suítes de teste, entendida como uma coleção de casos de teste e uma coleção de suítes de teste
  • Ao executar o conjunto de testes, execute todos os casos de teste adicionados dentro

corredor de teste

  • corredor de teste
  • Componentes para execução e saída de resultados

Uso básico do conjunto de testes e do executor de testes

classe de teste de unidade

 1 # 创建单元测试类,继承unittest.TestCase
 2 class testCase(unittest.TestCase):
 3 
 4     # 测试case
 5     def test_01(self):
 6         print("test01")
 7 
 8     def test_03(self):
 9         print("test03")
10 
11     def test_04(self):
12         print("test04")
13 
14     def test_05(self):
15         print("test05")

função principal

 1 if __name__ == '__main__':
 2     # 实例化测试套件
 3     suite = unittest.TestSuite()
 4     # 实例化第二个测试套件
 5     suite1 = unittest.TestSuite()
 6     # 添加测试用例 - 方式一
 7     suite.addTest(testCase('test_03'))
 8     suite.addTest(testCase('test_01'))
 9     suite1.addTest(testCase('test_03'))
10     suite1.addTest(testCase('test_01'))
11     # 添加测试用例 - 方式二
12     testcase = (testCase('test_05'), testCase('test_04'))
13     suite.addTests(testcase)
14     # 测试套件添加测试套件
15     suite.addTest(suite1)
16     # 实例化TextTestRunner类
17     runner = unittest.TextTestRunner()
18     # 运行测试套件
19     runner.run(suite)

resultado da operação

 1 test03
 2 test01
 3 test05
 4 test04
 5 test03
 6 test01
 7 ......
 8 ----------------------------------------------------------------------
 9 Ran 6 tests in 0.000s
10 
11 OK

Contém pontos de conhecimento

  • Ao usar um conjunto de testes, a ordem de execução dos casos de teste pode ser personalizada e executada na ordem adicionada
  • Existem duas formas de adicionar casos de teste, a forma recomendada é a segunda, com menos códigos e mais rápida
  • , os testes recebidos podem ser list, tuple, set

addTests(testes)

  • O formato do caso de teste adicionado é:

Nome da classe de teste de unidade (nome do caso de teste)

  • As etapas gerais para executar um caso de teste usando um conjunto de testes são: instanciar TestSuite - adicionar um caso de teste - instanciar TextTestRunner - executar o conjunto de testes
  • As suítes de teste também podem adicionar suítes de teste
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

Execução em lote de casos de teste

arquivo de classe de teste de unidade

Os três primeiros arquivos são arquivos que contêm classes de teste de unidade e o quarto arquivo é responsável por executar todas as classes de teste de unidade, excluindo casos de teste

Listar um código de arquivo de classe de teste de unidade

 1 # 创建单元测试类,继承unittest.TestCase
 2 class testCase02(unittest.TestCase):
 3 
 4     # 测试case
 5     def test_07(self):
 6         print("testCase02 test07")
 7 
 8     def test_06(self):
 9         print("testCase02 test06")
10 
11     def test_11(self):
12         print("testCase02 test11")

código test_run.py

Método 1 para executar casos de teste em lotes:

 1 import unittest
 2 from learn.unittestLearning import test_case02
 3 from learn.unittestLearning.test_case03 import testCase03
 4 
 5 if __name__ == '__main__':
 6     # 通过模块
 7     testcase02 = unittest.TestLoader().loadTestsFromModule(test_case02)
 8     # 通过单元测试类
 9     testcase03 = unittest.TestLoader().loadTestsFromTestCase(testCase03)
10     # 通过模块字符串
11     testcase04 = unittest.TestLoader().loadTestsFromName('learn.unittestLearning.test_case04')
12     # 测试用例集
13     tests = [testcase02, testcase03, testcase04]
14     # 创建测试套件
15     suite = unittest.TestSuite(tests)
16     # 运行测试套件
17     unittest.TextTestRunner(verbosity=2).run(suite)

Contém pontos de conhecimento

  • : classe de teste de unidade de entrada testCaseClass, mas precisa importar primeiro

loadTestsFromTestCase(testCaseClass)

  • :module Insira o módulo onde a classe de teste de unidade está localizada, também precisa importar

loadTestsFromModule(module, pattern=None)

  • : name é uma string, que deve atender ao seguinte formato: module.class.method, que só pode ser inserido na classe

loadTestsFromName(nome, módulo=Nenhum)

  • : Indica os detalhes dos resultados do teste, um total de três valores, o padrão é 1
    • 0 (modo silencioso): Você só pode obter o número total de casos de teste e os resultados totais, como um total de 100 com falha 20 com sucesso 80
    • 1 (modo padrão): muito semelhante ao modo silencioso, exceto que cada caso de sucesso é precedido por um F antes de cada caso de falha
    • 2 (modo detalhado): os resultados do teste exibirão todas as informações relevantes para cada caso de teste

verbosidade

Método 2 de execução de casos de teste em lotes (recomendado!!):

1 import unittest
2 
3 if __name__ == '__main__':
4     # 需要运行的单元测试文件目录
5     test_path = './'
6     # 实例化defaultTestLoader
7     discover = unittest.defaultTestLoader.discover(start_dir=test_path, pattern="test_case*.py")
8     # 运行测试用例集
9     unittest.TextTestRunner().run(discover)

Prós: É conciso. . É rápido? ? Apenas três linhas de código! !

Contém pontos de conhecimento

  • : Escreva o diretório do arquivo de teste de unidade que precisa ser executado

start_dir

  • : A regra correspondente do arquivo de teste de unidade, o padrão é test*.py, você pode modificar esta regra de acordo com suas próprias regras de nomenclatura

padrão

  • O método pode encontrar automaticamente o arquivo de caso de teste test*.py de acordo com a correspondência start_dir do diretório de teste e montar os casos de teste encontrados no conjunto de testes, para que a descoberta possa ser executada diretamente por meio do método run()

descobrir()

Resultados da execução em lote de casos de teste

 1 testCase02 test06
 2 testCase02 test07
 3 testCase02 test11
 4 testCase03 test05
 5 testCase03 test08
 6 testCase03 test12
 7 testCase04 test02
 8 testCase04 test04
 9 testCase04 test13
10 .........
11 ----------------------------------------------------------------------
12 Ran 9 tests in 0.000s
13 
14 OK

Os seguintes são materiais de apoio ao aprendizado. Para amigos que fazem [teste de software], deve ser o warehouse de preparação mais abrangente e completo. Este warehouse também me acompanhou na jornada mais difícil. Espero que possa ajudar você também!

Applet de entrevista de teste de software

O banco de questões de teste de software está lotado por milhões de pessoas! ! ! Quem é quem sabe! ! ! O miniprograma de quiz mais completo de toda a rede, você pode usar seu celular para fazer os quizzes, no metrô ou no ônibus, enrola!

As seguintes seções de perguntas da entrevista são abordadas:

1. Teoria básica de teste de software, 2. web, app, teste de função de interface, 3. rede, 4. banco de dados, 5. linux

6. web, aplicativo, automação de interface, 7. teste de desempenho, 8. noções básicas de programação, 9. perguntas de entrevista de hr, 10. perguntas de teste aberto, 11. teste de segurança, 12. noções básicas de computador

Método de aquisição de informações:

Acho que você gosta

Origin blog.csdn.net/IT_LanTian/article/details/132240160
Recomendado
Clasificación