Introduccion
Se han mencionado tres artículos anteriormente:
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!