Interfaz de prueba de interfaz de Python método de solicitud encapsulación

  Introduccion

  Se han mencionado tres artículos anteriormente:

1. Encapsulación del método de operación de datos de la tabla de Excel de la prueba de interfaz de Python  ;

2. Encapsulación de palabras clave de interfaz para pruebas de interfaz de Python   ;

3. Obtenga el paquete de datos de interfaz para la prueba de interfaz de Python   ;

  Ahora que se han escrito nuestros casos de prueba de interfaz y se han obtenido los datos de prueba, es un método de simulación de la llamada a la interfaz. Los métodos son get, post, put y delete. La elección específica es cuál. Llamar. Por conveniencia, los cuatro métodos se encapsulan en una clase, cada vez solo es necesario acceder a un método en la clase, para lograr el propósito de la solicitud.

  Interfaz de solicitud de encapsulación

  Adjunte el código directamente a continuación:

__author__ = 'Leo' 

solicita solicitudes de 
importación json 

class ApiRequest (objeto): 
    "" " 
    请求 方法
    " "" 
    # 请求 方法 get 
    def get_method (self, url, data = None, header = None): 

        si el encabezado no es None: 
            res = request.get (url, params = data, header = header) 
        else: 
            res = 
        request.get ( url, params = data) return res.json () 

    # 请求 方法 post 
    def post_method (self, url, data = None, encabezado = Ninguno): 
        resolución global 
        si el encabezado no es Ninguno: 
            res = request.post (url, json = datos, encabezados = encabezado) 
        más:  
            res = request.post (url,json = datos)
        si str (res) == "<Respuesta [200]> ": 
            return res.json () 
        else: 
            return res.text 

    # 请求 方法 put 
    def put_method (self, url, data = None, header = None): 
        if header no es Ninguno: 
            res = request.put (url, json = data, headers = header) 
        else: 
            res = 
        request.delete ( url, json = data) return res.json () 

    # 请求 方法 delete 
    def delete_method (self, url , data = None, header = None): 
        si el encabezado no es None: 
            res = request.delete (url, json = data, headers = header) 
        else: 
            res = 
        request.delete (url, json = data) return res.json ()

    # 主 方法
    def run_method (self, method, url, data = None, header = None): 
        if method == 'get' o method == 'GET': 
            res = self.get_method (url, data, header) 
        elif method == ' post 'o method ==' POST ': 
            res = self.post_method (url, data, header) 
        elif method ==' put 'o method ==' PUT ': 
            res = self.post_method (url, data, header) 
        elif method == 'delete' o method == 'DELETE': 
            res = self.post_method (url, data, header) 
        else: 
            res = "你 的 请求 方式 不 正确!" 
        # return res 
        return json.dumps (res, sure_ascii = Falso, sangría = 4, sort_keys = Verdadero, separadores = (',', ':'))

  

Explique brevemente los puntos de conocimiento relevantes:

sure_ascii: el valor predeterminado es True. Si el dict contiene caracteres que no son ASCII, será similar a los datos de visualización de \ uXXXX. Después de establecerlo en False, se puede mostrar normalmente. 

sangría: debe ser un tipo entero no negativo. Si es 0 o está vacío, los datos se mostrarán en una línea, de lo contrario se ajustarán y mostrarán el espacio en blanco anterior de acuerdo con el número de sangría. Los datos json impresos de esta manera también se llaman json impresos. 

separadores: separadores, en realidad una tupla de (item_separator, dict_separator), el valor predeterminado es (',', ':'); esto significa que las claves en el diccionario están separadas por ",", y la CLAVE y el valor son Las habitaciones están separadas por ":". 

codificación: el valor predeterminado es UTF-8, que establece el método de codificación de datos json. 

sort_keys: ordena los datos según el valor de las claves.

 

  Realizar prueba

  El método ha sido encapsulado. Ahora que los datos de la interfaz están disponibles y el método de solicitud está disponible, también podríamos probar el código encapsulado previamente y verificarlo con acciones reales:

# get 请求
if __name__ == '__main__': 
    url = "http://httpbin.org/get" 
    ir = ApiRequest () 
    result = ir.run_method (url = url, method = 'get') 
    print (result)

  Resultado de la operación:

 

 

# post 请求
url2 = "http://httpbin.org/post" 
ir2 = ApiRequest () 
data = {'id': '测试'} 
result = ir2.run_method (url = url2, method = 'post', data = datos) 
imprimir (resultado)

Resultado de la operación:

 

 

  Algunas personas atentas pueden tener dudas. Los datos de prueba de interfaz en Excel no se usan aquí. Permítanme demostrarlo a continuación. Llame a los datos de prueba de interfaz que se mantienen en Excel y mantenga los datos primero:

 

  from basic_method import get_excelData 
    get_data = get_excelData.getData () 
    print ("Obtener si ejecutar la clave:", get_data.get_is_run (1)) 
    print ("Obtener interfaz url:", get_data.get_url (1)) 
    print ("Obtener solicitud de interfaz Método: ", get_data.get_method (1)) 
    print (" Obtener datos de solicitud de interfaz: ", get_data.get_data (1)) 
    url2 = get_data.get_url (1) 
    method = get_data.get_method (1) 
    data = get_data.get_data ( 1) 
    ir2 = ApiRequest () 
    resultado = ir2.run_method (url = url2, método = método, datos = datos) 
    imprimir (resultado)

  

Resultado de la operación:

 

 

  Esta vez, el proceso de llamada toma los datos de Excel y solicita la interfaz de solicitud simulada a través del método encapsulado. Demuestre que el código previamente empaquetado puede ejecutarse normalmente.

Aquí hay otro método de solicitud:

 

 

  Resumen

  El paquete de método de solicitud de interfaz anterior se ha completado y el código de paquete escrito anteriormente se usa en conjunto para implementar el código central en el marco de prueba automatizado. Los amigos que estén interesados ​​en las pruebas automatizadas y el desarrollo de pruebas pueden unirse al grupo de intercambio de desarrollo de pruebas QQ. : 696400122. ¡Aprendan unos de otros y progresen juntos!

Supongo que te gusta

Origin www.cnblogs.com/liudinglong/p/12755730.html
Recomendado
Clasificación