es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El complemento JIRA XRAY crea una duplicación del caso de prueba al importar utilizando la API y el archivo de características.

Tengo un script de bash que toma todos los archivos de características de un directorio específico y utiliza la API de XRAY-JIRA /rest/raven/1.0/import/feature?projectKey=XYZ para crear CASOS DE PRUEBA en JIRA.

XRAY versión 4.2.1_j7

Estoy ejecutando este script en un JENKINS-PIPELINE, pero el problema es que cuando lo ejecuto por primera vez, crea casos de prueba que son correctos, pero cuando vuelvo a ejecutar la compilación, empieza a crear los mismos casos de prueba de nuevo (duplicándolos). ¿Alguna sugerencia / razón por la que esto está sucediendo?

Mi script de bash:

find <ruta_del_directorio> -type f -name "*.feature" | while read fname;
do
    curl -H "Content-Type:multipart/form-data" -X $USERNAME:$PASSWORD -F "file=@$fname" https://<url_de_jira>/rest/raven/1.0/import/feature?projectKey=XYZ
done

Archivo de características de muestra:

Característica: Inicio de sesión en Facebook

@Login
Escenario: Iniciar sesión en la aplicación de FB
  Dado: El usuario está en la página de inicio de sesión de FB
  Cuando: El usuario ingresa nombre de usuario y contraseña
  Entonces: El usuario inicia sesión correctamente

Por favor, sugiéranme cómo y dónde puedo depurar para solucionar el problema. Gracias.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Depuración de casos de prueba duplicados en JIRA con XRAY-JIRA API

    El problema con la duplicación de casos de prueba parece provenir de que la API no verifica si un caso de prueba ya existe en JIRA antes de crear uno nuevo. Por lo tanto, necesitamos encontrar una manera de verificar si el caso de prueba ya existe antes de crear uno nuevo.

    Una posible solución es modificar el script bash para utilizar la API /rest/api/2/search y buscar el caso de prueba con el mismo nombre y proyecto antes de crear el nuevo.

    Aquí hay una versión modificada del script:

    #!/bin/bash
    
    find <dir_path> -type f -name "*.feature" | while read fname;
    do
      # Extraer el nombre del caso de prueba del archivo de características
      nombre_caso_prueba=$(grep "Feature" $fname | cut -d ' ' -f 2-)
    
      # Buscar el caso de prueba en JIRA
      resultado_busqueda=$(curl -H "Content-Type: application/json" -X GET -u $USERNAME:$PASSWORD \
        https://<jira_url>/rest/api/2/search?jql=project=XYZ+AND+summary~\"$nombre_caso_prueba\")
    
      # Verificar si el resultado de la búsqueda está vacío (es decir, no se encontró un caso de prueba existente)
      if [ "$(echo $resultado_busqueda | jq '.issues | length')" -eq 0 ]; then
        # Crear el nuevo caso de prueba
        curl -H "Content-Type:multipart/form-data" -X POST -u $USERNAME:$PASSWORD -F "file=@$fname" \
          https://<jira_url>/rest/raven/1.0/import/feature?projectKey=XYZ
      else
        # Imprimir un mensaje que indica que el caso de prueba ya existe
        echo "El caso de prueba '$nombre_caso_prueba' ya existe en JIRA"
      fi
    done
    

    Primero extraemos el nombre del caso de prueba del archivo de características utilizando grep y cut. Luego usamos la API search para buscar problemas en el proyecto con un resumen (es decir, nombre) que coincida con el nombre del caso de prueba. Verificamos si el resultado de la búsqueda está vacío utilizando jq y si no, imprimimos un mensaje que indica que el caso de prueba ya existe. Si el resultado de la búsqueda está vacío, creamos el nuevo caso de prueba utilizando la llamada original a la API.

    Para depurar el script, podemos agregar set -x al principio para habilitar la salida de depuración y set +x al final para deshabilitarla. También podemos agregar declaraciones echo para imprimir los valores de las variables y la salida de las llamadas a API, lo cual nos ayudará a comprender lo que está sucediendo.

    Espero que esto te ayude a resolver el problema de la duplicación de casos de prueba en JIRA.

Comments are closed.