Red de conocimiento informático - Material del sitio web - Cómo crear un marco de prueba automatizado de interfaz de solicitudes de Python

Cómo crear un marco de prueba automatizado de interfaz de solicitudes de Python

Principio de funcionamiento: el caso de prueba se edita en Excel, utilizando la biblioteca de terceros xlrd, leyendo el formulario y el contenido, el nombre de la hoja corresponde al nombre del módulo, el nombre del módulo del servicio de descubrimiento del servicio de integración Jenkins encuentra el formulario correspondiente y utilizando la biblioteca de terceros. Solicite la interfaz de solicitud, según los resultados y las expectativas Afirme, determine si la prueba de la interfaz pasa o falla según el informe de salida.

1. Preparación de datos

Inserción de datos (datos externos fáciles de implementar necesarios para escenarios de prueba)

Preparación de SQL (las interfaces deben repetirse, los parámetros deben ser variables)

2. Implementación integrada (solo necesita saber sobre operación y mantenimiento)

Actualice sin problemas el script de verificación y agregue automatización

3. implementación

Llamar a mysql

Casos de prueba transversales de Excel

Implementar la solicitud de llamada a la interfaz

Comparar el valor del código devuelto por la interfaz con Excel

Informar comentarios

Exponer servicios

Escribir una prueba automatizada de interfaz de inicio de sesión simple

El código se divide en capas de la siguiente manera:

coding.png

Escribir un módulo de paquete para obtener la tabla de Excel

excel.png

El código se implementa de la siguiente manera:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

# Paquete base: contenedor para Excel

importar xlrd

libro de trabajo = Ninguno

def open_excel(ruta):

"""Abrir excel""

libro de trabajo global

if (libro de trabajo == Ninguno):

workbook = xlrd.nrows

def get_content(sheet, row, col):

"""Obtener el contenido de la tabla ""

returnsheet.cell(row, col). value

def release(path):

""Liberar Excel para reducir la memoria""

libro de trabajo global

workbook.release_resources()

del libro de trabajo

El código está encapsulado y referenciado como un módulo, que se encuentra en el comenzando

En segundo lugar, consulte el módulo de registro para obtener el registro

Trabajo de preparación:

Necesita capturar el registro, incluido el marco y el código fuente generado desde la expectativa.

El código es el siguiente:

#! /usr/bin/python

# -*- Codificación: UTF-8 -*-

# Paquete base: servicio de registro

importar registro

hora de importación

def getLogger():

tezLogPath global

prueba:

tezLogPath

excepto NameError:

tezLogPath = "/data/log/apiTest/"

FORMAT = '(asctime)s - (nombre)s - (levelname)s - (mensaje) s'

# file = tezLogPath time.strftime("Y-m-d", time.localtime()) ".log"

# logging.basicConfig(filename=archivo, nivel=logging .INFO, format=FORMAT)

##Para fines de depuración durante la fase de desarrollo, no es necesario generar resultados en un archivo

# logging.basicConfig(level=logging., format=FORMAT )

Volver al registro

3. Prueba de interfaz del módulo de solicitud de referencia

Trabajo de preparación:

Tipo y método de solicitud requeridos de ejecutar la prueba.

El código es el siguiente:

#! /usr/bin/python#

#-*- Codificación: UTF-8 -*-

# PAQUETE BASICO: Paquete de prueba de interfaz

solicitudes de importación

importar tezLog como registro

logging = log.getLogger()

def api_test(método, URL, datos, encabezados):

"""

Defina el método y los parámetros requeridos de la interfaz de solicitud

: Args:

método - nombre comercial str

url - Nombre de usuario str

data - Parámetro str

headers - Dict de encabezado de solicitud

Solicitud de API no RESTful Otro tipo de solicitud no se utiliza realmente. Tampoco es seguro. .

"""

prueba:

if método == "publicar":

resultados = solicitudes.post(url, datos , encabezados=encabezados)

if método == "get":

resultados = solicitudes.get(url, datos, encabezados=encabezados)

get( url, datos, encabezados=encabezados)get(url, datos, encabezados=encabezados)

# if método == "poner":

# resultados = solicitudes.put(url, datos, encabezados=encabezados)

# if método == "eliminar":

# resultados = solicitudes.delete(url, encabezados=encabezados)

# if método == "parche":

# resultados == solicitudes.patch (url, datos, encabezados=encabezados)

# if método == "opciones":

# resultados == solicitudes.opciones(url, datos, encabezados=encabezados)