¿Cómo usar unittest para administrar por lotes los casos de prueba de automatización de la interfaz de Python?

Debe haber más de un caso de prueba de interfaz en nuestros proyectos diarios ¿Cómo gestionamos estos casos por lotes cuando hay más y más casos? ¿Cómo asegurar que los casos no se repitan? ¿Cómo garantizar la eficiencia de la ejecución de casos si hay muchos casos (cientos, miles o incluso más)? ¿Cómo hacer la gestión de datos de prueba (por lotes)? ¿Cómo separar los datos del script?

  Los problemas anteriores son las consideraciones clave en nuestras pruebas automatizadas, y un solo caso de uso en realidad no es difícil.

Echemos un vistazo a cómo se gestionan los casos por lotes en el marco unittest:

1. Cargue manualmente los casos de uso por lotes:

# -*- coding:utf-8 -*-
# 批量用例执行--手工加载
import unittest
 
class TestOne(unittest.TestCase):
    def setUp(self):
        print '\ncases before'
        pass
    def test_add(self):
        '''test add method'''
        print 'add...'
        a = 3 + 4
        b = 7
        self.assertEqual(a, b)
 
    def test_sub(self):
        '''test sub method'''
        print 'sub...'
        a = 10 - 5
        b = 5
        self.assertEqual(a, b)
 
    def tearDown(self):
        print 'case after'
        pass
if __name__ == '__main__':
    # 1、构造用例集
    suite = unittest.TestSuite()
 
    # 2、执行顺序是安加载顺序:先执行test_sub,再执行test_add
    suite.addTest(TestOne("test_sub"))
    suite.addTest(TestOne("test_add"))
 
    # 3、实例化runner类
    runner = unittest.TextTestRunner()
 
    # 4、执行测试
    runner.run(suite)

 2. Cargue automáticamente los casos de uso por lotes:

# -*- coding:utf-8 -*-
# 批量用例执行--自动加载
import unittest
import os
 
class TestOne(unittest.TestCase):
    def setUp(self):
        print '\ncases before'
        pass
    def test_add(self):
        '''test add method'''
        print 'add...'
        a = 3 + 4
        b = 7
        self.assertEqual(a, b)
 
    def test_sub(self):
        '''test sub method'''
        print 'sub...'
        a = 10 - 5
        b = 5
        self.assertEqual(a, b)
 
    def tearDown(self):
        print 'case after'
        pass
if __name__ == '__main__':
    # 1、设置待执行用例的目录
    test_dir = os.path.join(os.getcwd())
 
    # 2、自动搜索指定目录下的cas,构造测试集,执行顺序是命名顺序:先执行test_add,再执行test_sub
    discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
 
    # 实例化TextTestRunner类
    runner = unittest.TextTestRunner()
 
    # 使用run()方法运行测试套件(即运行测试套件中的所有用例)
    runner.run(discover)

 Los amigos que están haciendo la prueba pueden entrar y comunicarse. El grupo ha compilado una gran cantidad de materiales de aprendizaje y preguntas de entrevistas, currículos de proyectos, etc....

Supongo que te gusta

Origin blog.csdn.net/qq_73332379/article/details/131436998
Recomendado
Clasificación