[Interruptor] comparativo ---- unittest, PYtest, nariz, marco robot marco de pruebas comparativo Python

Varios mismo prueba en el marco de trabajo del contacto físico, específicamente el Internet para encontrar los próximos marco comparativo, los individuos todavía recomienda el uso de PYtest.
Marco de las pruebas

¿Cuál es el marco?

Marco (marco) o parte reutilizable del diseño del sistema de la totalidad,
el bastidor se utiliza para resolver los problemas de organización y control código de operación.

Cuando escribimos scripts automatizados, a menudo es necesario leer el fichero de configuración, leer archivos de datos, solicitudes de envío, la tala, la conexión de base de datos y comparar datos. Cada secuencia de comandos reescribir todos los diversos métodos no sólo es una gran carga de trabajo y propenso a errores. Así que necesitamos un método para extraer el público, empaquetado como módulos separados, el método común en la bolsa. Además de los archivos de configuración, archivos de datos, registros, etc. También necesita para mantener clasificado en otra carpeta. Este paquete de scripts y archivos de configuración, y cómo las organizaciones de diseño de métodos públicos llamados marco.

Mientras tanto, además de un marco general, sino también para proporcionar un control completo de la operación fuera de los archivos de código de organización y configuración. Por ejemplo la ejecución por lotes, el módulo de ejecución parcial, generar informes, gestión de excepciones y similares.

Se resume en los siguientes tres puntos:

  • método del paquete del público
  • código y los archivos de configuración de la organización
  • control de ejecución

¿Cuál es el marco de pruebas?

Una secuencia de comandos de prueba completo (casos de uso) generalmente comprende los siguientes pasos:

  • Ambiental listo o cheque
  • La ejecución de las operaciones comerciales
  • resultados de aserción
  • Descontaminación del medio ambiente

Por lo general, el marco de ensayo también lleva a cabo mediante los casos de carga, la ejecución por lotes, un anormales funciones de control y de salida de resultados. marco de pruebas de base proporciona un control único general la función ejecutiva.

Prueba de marco debe tener las características

  • Facilidad de uso: los casos de uso de escritura, la ejecución de casos de uso, generación de informes y fácil posicionamiento problema
  • Robustez: estable, como mecanismo de tiempo de espera
  • Escalabilidad: Plug
  • Flexibilidad: tejido Flexibilidad o realizarse con casos, la función del accesorio (y un rango diferente de la configuración de tearDown), etc.
  • Personalización: desarrollo secundario conveniente

unittest, PYtest, nariz, marco robot 简介

  • unittest: Python viene, el marco más unidad básica de pruebas
  • nariz: basada unittest-desarrollo, la facilidad de uso es bueno, hay muchos plug-ins
  • PYtest: unittest desarrollo basado también, la facilidad de uso es bueno, la información más detallada, una serie de plug-ins
  • marco robot: un marco de pruebas basado en palabras clave basada en el lenguaje Python, no es la interfaz, completamente funcional, auto-informe y log clara y hermosa
proyecto prueba de unidad nariz PYtest marco robot
Casos escritos Heredar la clase unittest.TestCase necesita organizar una amplia gama de afirmaciones TestSuite Para el principio del método de ensayo Ese es el principio del método de ensayo Robot puede dar formato de archivo de texto
actuador Escriba su propia run_all_tests + Conoce + CommandParser + ... nosetests ... py.test ... pybot ...
Ellos se encontraron con Discover apoyo apoyo apoyo apoyo
Saltar caso de uso unittest.skip () unittest.skipIf () aumento uniitest.SkipTest de importación nose.plugins.skip SkipTestraise SkipTest @ Pytest.mark.skipif (condición) @ pytest.mark.xfail -
accesorios Setup / tearDown @ classmethodsetUpClass ... apoyo @ Pytest.fixture (session = "sesión", autouse = True) alcance accesorio: función, módulo, sesión, autouse = True hace la función por defecto de ejecución [Configuración] ... [desmontaje] ...
Ejemplo de etiqueta con las etiquetas Con unittest.skip () + comandParser lograr attrib 标签 de importación nose.plugins.attrib attr attr @ (velocidad = 'lento') def test_big_download (): Paso de $ nosetests velocidad lenta -a = @ Pytest.mark.webtest una marca personalizada, de la siguiente manera, y luego py.test -v -m webtest marca de carrera sólo la función de webtest, py.test -v -m "no webtest" para ejecutar el webtest sin marcar [Etiquetas] level1pybot prueba -i / - incluir tagName C: \ TF-Testpybot -e / - exculde level1 * .robot 排除
mecanismo de tiempo de espera de tiempo de espera Para lograr su propio de  nose.tools  pase time.sleep (2): Tiempo de timedimport importación @ temporizado (1) def test_lean_5 () pip instalar [email protected] (60) 或 PYtest --timeout = 300 [Tiempo de espera] 3 segundos
parametrización En combinación con el uso de DDT En combinación con el uso de DDT @ Pytest.mark.parametrize ( "a, b, que se espera", testdata) def test_timedistance_v0 (a, b, que se espera): diff = a - diff bassert == esperado [Plantilla] 1 2 3
informe HTMLTestRunner pip instalar nariz htmloutput - con --html-html-file = pip instalar -U-PYtest htmlpy.test --html =. / report.html El apoyo, la generación automática de forma predeterminada
log log Para lograr su propio --nologcapture no utilizar registro - registro-format = formato de registro formato de visualización de uso personalizada --logging-DATEFMT = formato de clase similares anteriormente, varios formatos de fecha --logging-filter = Filtro de registro del filtro, no se utiliza por lo general , no puede centrarse en --logging-claras manipuladores pueden no estar preocupado por la definición del nivel --logging-level = inicio de sesión predeterminado PYtest test_add.py --resultlog =. / log.txtpytest test_add.py --pastebin = all El apoyo, la generación automática de forma predeterminada
Los ejemplos se enumeran solamente a cobro revertido de sólo no nosetests --collect-onlynosetests -v --con-id --collect sólo -v -
Por peso Ejemplo failed ejecutar fallos vuelva a ejecutar no nosetests -v --failed pip instalar -U [email protected] (repeticiones = 5) py.test --rerun = 3 robot --rerunfailed
comparación inicial no no no no
complicado por transformación unittest usando corrutinas concurrentes, o utilizar el grupo de subprocesos + Hermosa Informe Línea de comandos concurrentes PYtest-xdist: para distribuir la CPU no utilizado y de la máquina Línea de comandos concurrentes
informe xml no --with-xUnit --xunit-file = ... / PYtest + Allure --junit-xml =
El selenio ayuda no no PYtest-selenio robotframework-seleniumlibraryrobotframwork-selenium2library

Resumen: En general, base unittest de comparación, el desarrollo secundario de conveniente y adecuado para su uso experto; PYtest / nariz más rápido y más conveniente, más eficiente, y blanco para la búsqueda de la eficiencia de la empresa; marco robot debido a la apariencia de la interfaz y los informes, fácil un mejor uso, flexibilidad y personalización ligeramente peor.

Supongo que te gusta

Origin www.cnblogs.com/helloTerry1987/p/12573711.html
Recomendado
Clasificación