Contenido: Guía
-
- prefacio
- 1. De la entrada al dominio de la programación en Python
- 2. Proyecto de automatización de interfaz de combate real.
- 3. Combate real del proyecto de automatización web
- 4. Combate real del proyecto de automatización de aplicaciones
- 5. Hoja de vida de los fabricantes de primer nivel
- 6. Probar y desarrollar el sistema DevOps
- 7. Herramientas de prueba automatizadas de uso común
- Ocho, prueba de rendimiento JMeter
- 9. Resumen (pequeña sorpresa al final)
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
2. Proyecto de automatización de interfaz de combate real.
3. Combate real del proyecto de automatización web
4. Combate real del proyecto de automatización de aplicaciones
5. Hoja de vida de los fabricantes de primer nivel
6. Probar y desarrollar el sistema DevOps
7. Herramientas de prueba automatizadas de uso común
Ocho, prueba de rendimiento JMeter
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!