Competente en automatización, marco de prueba automatizado Pytest: la parte delantera y trasera (implementación) de casos de uso de accesorios


prefacio

Hay muchas maneras de realizar el anverso y el reverso del caso de prueba. Al escribir guiones de prueba, elija de acuerdo con la situación real

1. tipo de unidad

def setup_function()
def teardown_function()

def setup_method(self)
def teardown_method(self)

@classmethod
def setup_class(cls)
@classmethod
def teardown_class(cls)

2. tipo de prueba unitaria

#先要在class类中继承unittest.testcase
@classmethod
def setUpClass(cls)
@classmethod
def tearDownClass(cls)
def setup(self)
def tearDown(self)

3. El tipo de dispositivo en pytest
define el dispositivo

@pytest.fixture
def fixture_func():
    print('前置条件')
    yield  #这里可以有返回值,用于夹具的继承
    print('后置条件')
@pytest.fixture(scope,autouse)

Los valores de ámbito son:
función Ámbito predeterminado, ámbito de función, finaliza después de la prueba [similar a configuración/desmontaje]
clase finaliza después de la última prueba en la clase [similar a setupClass/teardownClass]
módulo finaliza después de la última prueba en el paquete del módulo finaliza después de la última
prueba en el paquete
sesión finaliza después de que finaliza la última prueba en una sesión [una pytest se llama sesión]

El valor predeterminado de uso automático es False,
que debe agregarse en el nivel de módulo/nivel de paquete/nivel de sesión

usar accesorio

@pytest.mark.usefixtures("fixture_func")
def test():
    print('开始测试')

Accesorios compartidos
Todos los accesorios compartidos se colocan en el archivo conftest.py,
comenzará desde el archivo de prueba y buscará el archivo conftest.py capa por capa,
el caso de prueba puede llamar directamente a los accesorios en el accesorio compartido sin importar más;

#conftest.py文件,在该文件下的夹具为共享夹具
@pytest.fixture(scope='class')
def driver(pytestconfig):
    browser = pytestconfig.getoption('--browser')
    if browser == 'edge':
        s = Service(executable_path=settings.BROWSER_DRIVERS['edge'])
        with webdriver.Edge(service=s) as wd:  # 最大化浏览器
            # wd.maximize_window()
            yield wd
     if browser == 'chrome':
        s = Service(executable_path=settings.BROWSER_DRIVERS['chrome'])
        with webdriver.Chrome(service=s) as wd:  # 最大化浏览器
            # wd.maximize_window()
            yield wd
     if browser == 'firefox':
        s = Service(executable_path=settings.BROWSER_DRIVERS['firefox'])
        with webdriver.Firefox(service=s) as wd:  # 最大化浏览器
            # wd.maximize_window()
            yield wd

4. Pasos de ejecución para el uso múltiple de accesorios

Ejecute primero los que tienen un alcance grande, y luego ejecute los que tienen un alcance pequeño al
mismo nivel, y llame a los dispositivos en secuencia

5. Herencia de accesorios

Solo se puede heredar de un rango grande o del mismo rango.
Después de heredar el dispositivo, puede obtener el valor de retorno del dispositivo.

ejemplo:

#conftest.py 共享文件
@pytest.fixture(scope='class')
def driver(pytestconfig):
    browser = pytestconfig.getoption('--browser')
    if browser == 'edge':
        s = Service(executable_path=settings.BROWSER_DRIVERS['edge']) #webdriver存放路径需要自己修改
        with webdriver.Edge(service=s) as wd:  # 最大化浏览器
            # wd.maximize_window()
            yield wd      #这里有返回值,用于夹具的继承
    if browser == 'chrome':
        s = Service(executable_path=settings.BROWSER_DRIVERS['chrome'])
        with webdriver.Chrome(service=s) as wd:  # 最大化浏览器
            # wd.maximize_window()
            yield wd
    if browser == 'firefox':
        s = Service(executable_path=settings.BROWSER_DRIVERS['firefox'])
        with webdriver.Firefox(service=s) as wd:  # 最大化浏览器
            # wd.maximize_window()
            yield wd
			
#测试用例文件
class TestMaxWindow():
    def test_maxWindow(self, driver):
      	#执行步骤:
        #1.会在共享夹具中找到driver,yield之前的为前置操作
        #2.执行到yield,夹具有返回值则得到参数
        #3.在该测试用例中可以用夹具返回的参数
        #4.测试用例结束后,继续执行夹具中的后置操作
        driver.maximize_window()
El siguiente es el diagrama de sistema de arquitectura de conocimiento de aprendizaje de ingeniero de prueba de software más completo en 2023 que compilé

1. De la entrada al dominio de la programación en Python

Por favor agregue una descripción de la imagen

2. Proyecto de automatización de interfaz de combate real.

Por favor agregue una descripción de la imagen

3. Combate real del proyecto de automatización web

Por favor agregue una descripción de la imagen

4. Combate real del proyecto de automatización de aplicaciones

Por favor agregue una descripción de la imagen

5. Hoja de vida de los fabricantes de primer nivel

Por favor agregue una descripción de la imagen

6. Probar y desarrollar el sistema DevOps

Por favor agregue una descripción de la imagen

7. Herramientas de prueba automatizadas de uso común

Por favor agregue una descripción de la imagen

Ocho, prueba de rendimiento JMeter

Por favor agregue una descripción de la imagen

9. Resumen (pequeña sorpresa al final)

No importa cuán difícil te encuentres, debes mantener una creencia firme y coraje para seguir adelante. Solo esforzándote constantemente puedes superarte a ti mismo, crear tu propia vida brillante y dejar que tus sueños iluminen el camino a seguir.

En el camino de perseguir los sueños, no tengas miedo de las dificultades y los contratiempos, sigue luchando, cree en tus propias habilidades y potencialidades, y solo haciendo esfuerzos continuos podrás crear tu propio brillo y hacer florecer la luz más hermosa de la vida.

No importa cuán tortuoso y difícil sea el camino por delante, el corazón de la perseverancia nunca se extinguirá. Cree en tu propia fuerza y ​​potencial, y valientemente persigue tus sueños. Solo trabajando duro puedes crear tu propia vida brillante y lograr un gran futuro.

Supongo que te gusta

Origin blog.csdn.net/x2waiwai/article/details/131854017
Recomendado
Clasificación