Amarengo

Articles and news

Humble Bits

 Pruebas de API usando Postman, Newman y Jenkins

Las pruebas de API son un tipo de prueba de software en el que un ingeniero prueba no solo la funcionalidad, sino el rendimiento, la confiabilidad y la seguridad de una aplicación. Las API se prueban para examinar si la aplicación funcionaría de la manera esperada, ya que las API son el núcleo de las funcionalidades de una aplicación.

Las pruebas de API durante el desarrollo pueden revelar problemas con la API, el servidor, otros servicios, la red y más, aquellos que no se pueden descubrir o resolver fácilmente después de la implementación.

Sin embargo, probar las API es difícil. En lugar de solo verificar la respuesta de un punto final, uno puede tener pruebas de integración con Postman para examinar y validar las respuestas. Los equipos de hoy en día también pueden querer automatizar la ejecución de estas pruebas tan pronto como se realice una implementación. Un enfoque que podemos tomar es que nuestras pruebas de integración se ejecuten cada vez que un desarrollador verifique el código del repositorio.

La adición de esta capa de control de calidad puede garantizar que las funcionalidades existentes sigan funcionando como se esperaba, con un beneficio adicional para los desarrolladores al validar que su código está haciendo exactamente lo que se pretendía.

Herramientas para automatización de pruebas de API en CI

CI se refiere a la integración continua. Integración de scripts de prueba y una herramienta de prueba con el sistema de compilación continua donde los scripts de prueba se pueden ejecutar junto con cada nueva implementación o de forma regular (diaria, semanal o quincenal)

  1. Cartero: Pruebas de integración con Postman.
  2. Newman: Cree un archivo de PowerShell que ejecute estas pruebas de integración a través de la línea de comandos.
  3. Jenkins: Agregue un paso de compilación Posterior en Jenkins para ejecutar el script de PowerShell cada vez que se inicie una compilación.

Selección de API

He implementado este procedimiento en nuestro proyecto utilizando las API de GPS, pero para crear una instancia aquí, tomemos las siguientes API:

Mapa meteorológico abierto: API públicas gratuitas.

Elegí esto ya que es una colección gratuita de API a la que cualquiera puede suscribirse y tener sus propias claves de API para operar.

Crear pruebas de integración

Para la primera prueba, tomemos una simple solicitud GET para obtener el tiempo por ID. Para interactuar a través de las API, asegúrese de usar la clave API recibida al suscribirse a los servicios OWM.

Pasos para la Primera Prueba de integración

Haga que un entorno en Postman diga, ‘Mapa del tiempo’ y defina las variables de entorno en él. .

Agregue los requisitos previos en la pestaña Pre-Req para configurar la prueba.

var cityIds=; / / Obtiene un número aleatorio entre 0-9var randomCityId = Math.floor ((Mat.aleatorio() * 9) + 1);// Establezca una variable de entorno con el valor de la id de ciudad local de arraypostman.Variable ambiental fija ("CITYID", cityIds)

Ahora, en la pestaña Prueba, agregue el script de prueba de la siguiente manera:

var jsonData = JSON.parse(responseBody); //Guardar obtenida la respuesta valor de "nombre" en un entorno variablepostman.setEnvironmentVariable("CITYNAME",jsonData.nombre);pm.de prueba("código de Estado 200", function () {pm.respuesta.a.tienen.estado(200); });

El script de prueba anterior obtiene la respuesta y nuestro script envuelve la respuesta en una variable llamada ‘jsonData’. Ahora el valor de la propiedad name se guarda en una variable de entorno.

Por lo tanto, se crea la primera prueba que falla si el código de estado HTTP no es un 200.

Colecciones

Al igual que las pruebas de API anteriores, uno puede tener varios scripts de prueba para varios puntos finales. Y estos scripts de prueba múltiples se pueden ejecutar en secuencia para tener un conjunto de pruebas de extremo a extremo. La forma de tener un conjunto de pruebas es mantener varios scripts de prueba en un lugar llamado Colección en Postman.

Estas colecciones se pueden ejecutar a través del corredor de colecciones de la herramienta.

Collection Runner

Un collection runner se puede utilizar para tener una colección de puntos finales de API con sus scripts de prueba en un solo lugar y, por lo tanto, ejecutarlos uno por uno de manera secuencial. El usuario solo necesita ejecutar la colección una sola vez con todos los datos de prueba requeridos, scripts de prueba y tantas iteraciones como desee. El resultado de la ejecución de la colección es un informe de prueba, lo suficientemente completo como para supervisar el rendimiento de las API y también para volver a intentar ejecutar los scripts de prueba fallidos.

Para un estudio detallado sobre Corredores de Recolección, consulte el Enlace.

Aunque la interfaz de usuario de Postman’s collection runner es lo suficientemente buena, sin embargo, para integrar el sistema con Jenkins, necesitamos ejecutar nuestras colecciones a través de la línea de comandos. Por lo tanto, una forma de ejecutar colecciones a través de la línea de comandos es a través de Newman.

Newman

Newman es un paquete de Administrador de paquetes de nodos (NPM) que nos permite ejecutar y probar colecciones directamente desde la línea de comandos.

Requisitos previos:

  • NodeJS y
  • NPM ya instalados.

Comandos que se ejecutarán en Windows Powershell

  • node-v
  • npm-v
  • new npm install-g newman

Una vez realizadas las instalaciones requeridas, es necesario exportar sus colecciones y Entorno a archivos JSON en el sistema local. Estos archivos se pueden pasar como argumentos a Newman.

Pasos para obtener el entorno y las colecciones en el sistema local:

  • Haga clic en el botón Descargar y Exportar en Postman.
  • Descargue la colección
  • Descargue el entorno
  • Abra el símbolo del sistema y aumente sus privilegios. Esto es importante para ejecutar el script. Ejecute el siguiente comando:
Set-ExecutionPolicy-Scope Política de ejecución de usuario actual: Sin restricciones Confirme este cambio: Y

Ahora abra otro símbolo del sistema y ejecute el siguiente comando:

newman run-e 

Agregar pruebas de Postman a Jenkins

Primero necesitamos exportar nuestros archivos de Postman (Entorno y Colecciones) y agregarlos a GIT, junto con nuestro script de Powershell para ejecutar las pruebas a través de Jenkins build.

» Agregue los archivos Postman a la raíz del proyecto.»

Decirle a Jenkins que ejecute Newman

Para esto escribimos un script que llama a Newman y le pasa los archivos JSON de Entorno y Colección.

#powershell.exe-executionpolicy bypass-comando " &'%WORKSPACE%\Jenkins_PostmanDemo.ps1'"echo "Dentro del script de Powershell"S SourceFilePath = env env:WORKSPACE Fil FilenamePostfix = "*.postman_collection.json"Environment EnvironmentFile = "Demo-OpenWeatherMap.cartero-entorno.json" # Obtiene todos los archivos de prueba de Postman J JsonFiles = Get-ChildItem-Path# SourceFilePath-name-Filter # FilenamePostfix |Sort-Object-Property CreationTime-Descending # Cambia al directorio donde tenemos NodeJS instalado. De lo contrario, el comando 'newman' no será reconocido.# Puede instalar NPM y Newman como usuario y copiar el directorio ~Roaming\npm en la unidad EC:\.#cd C:\Users\\AppData\Roaming\npm\node_modules\newman\bincd C:\npm\node_modules\newman\bin# Bucle a través de los archivos json y ejecutar newman para ejecutar el Cartero testsforeach ($Archivo en $JsonFiles) {$collectionfilepath = "$SourceFilePath\$Archivo"$environmentfilepath = "$SourceFilePath\$EnvironmentFile"nodo newman ejecutar $collectionfilepath -e $environmentfilepath --disable-unicode}exit $LASTEXITCODE

– ‘salida $LASTEXITCODE’: Al escribir este comando, verá el resultado del último comando. Hacemos esto para asegurarnos de que en cada bucle, el comando Newman tenga éxito. Si alguna de las pruebas falla, tenemos que detener el script y salir de 1. Resultará en una compilación fallida en Jenkins.

Añadir script a Jenkins

Pasos:

  • Inicia sesión en Jenkins y crea un proyecto de Estilo Libre.
  • Comience configurando este proyecto para extraer su código de repositorio de Git.
  • En la pestaña General, vaya a la sección compilación y agregue el siguiente comando:
powershell.exe-executionpolicy bypass-orden "& '%WORKSPACE% \ Jenkins_PostmanDemo. ps1'

**Se puede configurar la sección de Notificación por correo electrónico para configurar una alerta por correo electrónico sobre errores de compilación también.

Ejecutar los resultados de compilación y supervisión

Intente ejecutar el proyecto y examine los resultados.

Se puede distinguir la entrada correcta en el script de powershell con la instrucción ‘Inside Powershell script’ en la salida de Jenkins.

Conclusión

Mejorar la integración continua utilizando Postman, Newman y Jenkins agrega otra capa de garantía de calidad a nuestro ciclo de vida de desarrollo. Si bien este es un gran paso en la automatización, debemos enfatizar el hecho de que nuestra cobertura de pruebas depende de la calidad de nuestros scripts de prueba.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.