Roll up de productos secos, prueba de automatización web de nivel empresarial en la práctica (3)


prefacio

Solución de pruebas automatizadas de Selenium

Solución básica:
use unittest, principalmente TestCase (casos de prueba);
use modularización (modularización básica, extracción de módulos comunes);
use métodos basados ​​en datos (principalmente incluidos formularios de bases de datos y lectura de archivos);

Personalice los casos de uso que deben probarse, use unittest, use principalmente TestSuite (conjunto de pruebas) y TextTestRunner (corredor de pruebas de texto) [o HTMLTestRunner]

Generar un informe de prueba (enviar el informe al buzón especificado)

La implementación concreta del plan.

Use PyCharm para crear un nuevo proyecto PurePython
Cree la siguiente carpeta (paquete python) en el proyecto

TestCase
Data
Common
TestRunner
Report

Implemente los módulos anteriores respectivamente
Almacene datos en Datos, archivos CSV, o póngalos en datos, use la unidad de datos

## 使用csv文件
csv.reader()

## 使用数据库(MySQL),可以参考www.imooc.com的python操作MySQL的视频
cur.fetchall()

En Común, cree un módulo común de prueba para lograr operaciones modulares

## __init__(self, driver: webdriver.Firefox, base_url)
self.common = RanzhiCommon(self.driver, self.base_url)

Cree casos de prueba automatizados en TestCase, preste atención al uso de unittest.TestCase

def setUp()
def tearDown()
det test_xxx()

Cree ejecutores de prueba y suites de prueba en TestRunner, usando unittest.TestSuite y HTMLTestRunner (terceros)

test_suite = unittest.TestSuite()
test_suite.addTest(RanzhiLogonTc01("test_xxx"))
html_test_runner = HTMLTestRunner(stream=report_file, title="xxx", description="dddd)
html_test_runner.run(test_suite)

Cree main.py en el directorio raíz del proyecto como la entrada principal del proyecto de prueba y ejecute la prueba.
Comprobar informe de prueba

Posibles problemas con Selenium

<iframe>marco

f1 = find_element_by_css_selector(frame)
switch_to.frame(f1)

<select>caja desplegable

s1 = find_element_by_css_selector(select)
ss1 = Select(s1)
ss1.select_by_index(0)
ss1.select_by_value("人事部")

Problema de codificación utf-8
tiempo de espera problema sleep(5)

marco de pruebas unitarias

prueba de unidad

unittest.TestCase pasos del proceso de prueba de limpieza
de condiciones previas afirmar assertEqual (valor esperado, resultado real, mensaje de error)


Ejecute el método que comienza con test_

unittest.TestSuite
addTest(xxx("test_batch_login"))

Agregar casos de prueba personalizados y ejecutar

unittest.TextTestRunner
run(suite)

Ejecutar conjuntos de pruebas creados y mantenidos

test_runner test_suite test_case

Test Runner Test Suite Casos de prueba

Operación modular:
práctica orientada a objetos:
escribe una clase, que describe métodos públicos,
instancia esta clase, llama al método de esta clase;

El constructor de la clase necesita pasar webdriver.Firefox()

self.common = RanzhiCommon(self.browser, self.base_url)

Prueba basada en datos:
lea csv, repita cada fila de datos para operar,
lea MySQL y guarde el caso de uso en MySQL

Problema de codificación chino

# coding="utf-8"

Al leer csv, agregue encoding='utf-8'

csv.reader(open("xxx.csv", "r",1, encoding="utf-8")

Bucle a la capa más externa


El problema de que la ruta del archivo no se puede leer en la consola necesita usar una ruta absoluta para apuntar al archivo.

Evite la amenaza de código de terceros y evite la modificación masiva
de casos de prueba Ahorre costos de mano de obra (si está empaquetado, cada ingeniero de prueba automatizado no necesita saber WebDriver)
Estandarice la operación de casos de uso automatizados, solo necesita llamar a módulos estándar públicos .

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)

Si quieres alcanzar la cima de la vida, ¡no dejes que la pereza y el miedo se conviertan en obstáculos! Deja a un lado tus dudas, suelta tus grilletes y da un valiente paso adelante. ¡Solo atreviéndose a tomar riesgos y perseverando en la lucha podemos crear nuestro propio brillo!

Mientras se encienda una llama firme en el corazón, cualquier desafío puede ser conquistado; si sigues trabajando duro, eventualmente cosecharás abundantes frutos; en el camino de perseguir tus sueños, la perseverancia es el único camino hacia el éxito.

Solo dando lo mejor de ti puedes superar el límite; solo persistiendo en la lucha puedes crear brillantez; solo si nunca te rindes puedes perseguir tus sueños; ¡sigue adelante con valentía y trabaja duro para dejar que tu yo futuro te mueva!

Supongo que te gusta

Origin blog.csdn.net/csdnchengxi/article/details/131641221
Recomendado
Clasificación