Utilice cartero como una herramienta de prueba automatizada de rest api


Después de escribir más apis o hacerse cargo de los proyectos de otras personas, habrá más operación y mantenimiento de api, especialmente en el entorno de prueba, varios factores harán que aparezca la interfaz que no cumple con las expectativas. En este momento, cuando los productos y las pruebas, Todos corren. Cuando vienes a hostigarte, tu primera reacción es ejecutarlo tú mismo para ver si hay un problema real de interfaz, y luego analizarlo en detalle.

Por lo general, se empalma la dirección de la interfaz, se construyen los parámetros y luego se solicita a la API para ver el resultado devuelto. Este tipo de acción suele ser molesto después de hacer demasiadas cosas, especialmente cuando se encuentra que la interfaz está bien al final.

Selección de herramientas

Criteria de selección

Capaz de importar fanfarronería en lotes

Capacidad para construir una interfaz de prueba por su cuenta

Puede ejecutarse en lotes

Puede generar informe

Es mejor poder alertar

Herramienta candidata

jmeter-Lo encontré en Internet. Lo primero que noté fue jmeter, pero debido a que la interfaz es un poco tosca y el costo de aprendizaje es un poco alto, no lo he considerado por el momento.

Soupui: parece una herramienta antigua, pero debido a que la versión gratuita no admite la exportación de informes, renuncié

dredd: esto se ve bien y puede admitir swagger, pero lo intento si no se ejecuta correctamente.

Postman: esto ya se instaló antes, pero no encontré su función. Ahora, es muy simple, fácil de usar y también admite swagger, y luego lo es

conocimiento relacionado con el cartero

Importar arrogancia

Esta función es la más importante para mí. Hay un botón de importación en la esquina superior izquierda. Puede seleccionar "Importar desde enlace" e ingresar la dirección de documentos de la API swagger de la interfaz, por ejemplo: http://192.168.99.100: 8080 / scm / v2 / api -docs y luego importarlo.

Configurar colección

Al guardar una solicitud, puede seleccionar una colección existente o crear una nueva. La colección puede ser equivalente a un conjunto de pruebas.

Configurar pruebas

Si desea ejecutar pruebas automatizadas, debe configurar los scripts aquí; de lo contrario, incluso si lo ejecuta, no tiene mucho sentido. El script de dos líneas más simple y más utilizado es el siguiente:

tests ["El código de estado es 200"] = responseCode.code === 200;
tests ['El tiempo de respuesta es inferior a 500ms'] = responseTime <500;
Uno es el código de estado de la afirmación de http y el otro es la respuesta de afirmación hora.

Establecer variables de entorno

Simplemente elija una solicitud http de la colección y luego haga clic en el botón de configuración a la derecha, Administrar entornos, y luego puede definir las variables de entorno. Puede definir dos conjuntos de dev y prod, y configurar el host api del entorno correspondiente respectivamente , para que no sea necesario configurar repetidamente la solicitud de API. Use { {varname}} para referirse a las variables en la url , asumiendo que varname es un nombre de variable que establezca.

Ejecutar corredor

Hay un icono de corredor en la esquina superior izquierda, tócalo para que aparezca la interfaz COLLECTION RUNNER. Aquí es donde se realizará la prueba automática por lotes, seleccione el entorno y luego ejecútelo.

ejecución de la línea de comandos de newman

Exportar configuración

En la colección, exportar, seleccionar Colección V2 y exportar como json. Si se utiliza el entorno, debe exportar la configuración json del entorno.

Instalar newman

sudo npm install -g newman

Ver la versión de Newman

newman -version
3.4.3

Ejecución de línea de comando

newman run demo.postman_collection.json --reporters cli,html --environment dev.postman_environment.json --reporter-html-export result.html

Los resultados de la línea de comando son los siguientes:

┌─────────────────
│ │ executed │ failed │
├─────────────────
│ iterations │ 10 │
├─────────────────
│ requests │ 220 │
├─────────────────
│ test-scripts │ 220 │
├────────────────
│ prerequest-scripts │ 00 │
├────────────────
│ assertions │ 446 │
├────────────────
│ total run duration: 28s │
├────────────────
│ total data received: 312.29KB (approx) │
├─────────────────────
│ average response time: 1245ms │
└─────────────────────
# failure detail
1. AssertionFai… Response time is less than 1000ms
at assertion:2 in test-script
inside "XXXX" of "app1"
2. AssertionFai… Response time is less than 1000ms
at assertion:2 in test-script
inside "XXXX" of "app2"
3. AssertionFai… Response time is less than 1000ms
at assertion:2 in test-script
inside "XXXX" of "app1"
4. AssertionFai… Response time is less than 1000ms
at assertion:2 in test-script
inside "XXXX" of "app3"
5. AssertionFai… Response time is less than 1000ms
at assertion:2 in test-script
inside "XXXX" of
"app2"
6. AssertionFai… Status code is 200
at assertion:1 in test-script
inside "XXXX" of "app1"

Al mismo tiempo, se generará un informe result.html.

integración de jenkins

Construir seleccione Ejecutar comando por lotes de Windows: simplemente ingrese el comando anterior

Publicar informe de resultados de la prueba JUnit: Jenkins tiene un informe de resultados de la prueba Publicar JUnit que se puede utilizar para analizar el informe de prueba xml de junit. Para usar esto, la línea de comando debe generar el informe de junit

newman run demo.postman_collection.json --reporters cli,html,junit --environment dev.postman_environment.json --reporter-html-export result.html --reporter-junit-export junit-result.xml

Finalmente: ¡una ola de intercambio de datos de pruebas de software!

En la industria de la tecnología, debe mejorar sus habilidades técnicas y enriquecer su experiencia práctica en proyectos de automatización, lo que será muy útil para la planificación de su carrera en los próximos años y la profundidad de su dominio de la tecnología de prueba.

¡En la temporada de entrevistas del Golden 9th y Silver 10th, la temporada de búsqueda de empleo y organización de preguntas de entrevistas se ha convertido en mi hábito durante muchos años! La siguiente es mi colección y clasificación en los últimos años, todo está organizado en torno a [pruebas de software], el contenido principal incluye: video exclusivo de prueba de automatización de Python, detalles de automatización de Python, un conjunto completo de preguntas de entrevista y otro contenido de conocimiento.

¡Que tú y yo nos encontremos y encuentres algo! Si desea intercambiar experiencia en pruebas de software, pruebas de interfaz, pruebas automatizadas y entrevistas. Siga la cuenta pública de WeChat:[Tiras picantes tristes]Reciba gratis un libro de entrevistas para ingenieros de pruebas de software de 216 páginas. ¡Y los tutoriales de aprendizaje en video correspondientes son gratuitos para compartir! Falda de aprendizaje de comunicación:313782132

Recomendar buenos artículos:

Empaquetado como ingeniero de pruebas con 1 año de experiencia laboral, mi consejo antes de la entrevista es el siguiente

¿Qué debo aprender exactamente en las pruebas automatizadas?

¿Por qué no considerar a Tencent para cambiar de trabajo? Habla sobre un poco del pasado entre la fábrica de gansos y yo

¿Qué es una prueba más avanzada, automatizada o manual?

El principiante debe ver: ¿Cómo escribir un caso de prueba calificado?

Registro de problemas de prueba de interfaz de inicio de sesión de Python y solución (productos secos)

Supongo que te gusta

Origin blog.csdn.net/weixin_50829653/article/details/113991670
Recomendado
Clasificación