DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»ChatGPT : l’aide inattendue pour l’automatisation des tests d’API
    Uncategorized

    ChatGPT : l’aide inattendue pour l’automatisation des tests d’API

    janvier 30, 2023
    ChatGPT : l'aide inattendue pour l'automatisation des tests d'API
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    ChatGPT peut vous aider à générer des tests d’API dans REST Assured !

    ChatGPT est un type d’IA qui peut comprendre et répondre à l’entrée humaine, comme un robot très intelligent avec lequel vous pouvez avoir une conversation. Ouvrez simplement un compte gratuitement et commencez à discuter avec lui comme avec un ami.

    Commençons par demander à ChatGPT de générer une spécification d’API afin que nous puissions montrer comment il peut également créer les tests ultérieurement.

    Moi à ChatGPT : « Créez une spécification OpenAPI pour une API de suivi d’une nouvelle société de transport appelée FoxShipping. »

    Il génère un exemple de spécification OpenAPI pour notre nouvelle API de suivi FoxShipping :

    openapi: 3.0.
    info:
      title: FoxShipping Tracking API
      version: 1.0.0
      description: This API allows customers to track their shipments with FoxShipping.
      contact:
        name: FoxShipping Support
        email: support@foxshipping.com
        url: https://www.foxshipping.com
    servers:
      - url: https://api.foxshipping.com/tracking
    paths:
      /:
        post:
          summary: Track a shipment with FoxShipping
          operationId: trackShipment
          requestBody:
            required: true
            content:
              application/json:
                schema:
                  type: object
                  properties:
                    trackingNumber:
                      type: string
                      example: 1234567890
                    apiKey:
                      type: string
                      example: YOUR_API_KEY
          responses:
            200:
              description: Successful tracking request
              content:
                application/json:
                  schema:
                    type: object
                    properties:
                      trackingNumber:
                        type: string
                        example: 1234567890
                      status:
                        type: string
                        example: "Delivered"
                      estimatedDelivery:
                        type: string
                        format: date-time
                        example: "2022-01-01T12:00:00Z"
            401:
              description: Unauthorized request
            404:
              description: Tracking number not found

    Maintenant, nous pouvons lui demander de créer les tests d’API pour lui.

    Moi à ChatGPT : « Écrivez un test d’API pour l’API de suivi FoxShipping à l’aide de RestAssured. »

    import io.restassured.RestAssured
    import io.restassured.response.Response;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    
    public class FoxShippingTrackingAPITest {
        private static final String API_KEY = "YOUR_API_KEY";
        @BeforeClass
        public static void setup() {
            RestAssured.baseURI = "https://api.foxshipping.com/tracking";
        }
    
    
        @Test
        public void testTrackShipment() {
            String trackingNumber = "1234567890";
            String requestBody = "{\"trackingNumber\":\"" + trackingNumber + "\",\"apiKey\":\"" + API_KEY + "\"}";
            Response response = RestAssured.given().
                    contentType("application/json").
                    body(requestBody).
                    when().
                    post();
            int statusCode = response.getStatusCode();
            assertEquals(200, statusCode);
            String responseBody = response.getBody().asString();
            assertTrue(responseBody.contains(trackingNumber));
            assertTrue(responseBody.contains("status"));
            assertTrue(responseBody.contains("estimatedDelivery"));
        }
    }

    Cela semble correct, mais nous devons également couvrir les cas d’erreur. Nous suivons.

    Moi à ChatGPT : « Veuillez également ajouter les tests pour le scénarios d’erreur. »

    import io.restassured.RestAssured
    import io.restassured.response.Response;
    import org.junit.BeforeClass;
    import org.junit.Test;
    
    
    public class FoxShippingTrackingAPITest {
        private static final String API_KEY = "YOUR_API_KEY";
        @BeforeClass
        public static void setup() {
            RestAssured.baseURI = "https://api.foxshipping.com/tracking";
        }
    
    
        @Test
        public void testTrackShipment() {
            String trackingNumber = "1234567890";
            String requestBody = "{\"trackingNumber\":\"" + trackingNumber + "\",\"apiKey\":\"" + API_KEY + "\"}";
            Response response = RestAssured.given().
                    contentType("application/json").
                    body(requestBody).
                    when().
                    post();
            int statusCode = response.getStatusCode();
            assertEquals(200, statusCode);
            String responseBody = response.getBody().asString();
            assertTrue(responseBody.contains(trackingNumber));
            assertTrue(responseBody.contains("status"));
            assertTrue(responseBody.contains("estimatedDelivery"));
        }
        
        @Test
        public void testUnauthorizedRequest() {
            String trackingNumber = "1234567890";
            String requestBody = "{\"trackingNumber\":\"" + trackingNumber + "\",\"apiKey\":\"INVALID_API_KEY\"}";
            Response response = RestAssured.given().
                    contentType("application/json").
                    body(requestBody).
                    when().
                    post();
            int statusCode = response.getStatusCode();
            assertEquals(401, statusCode);
            String responseBody = response.getBody().asString();
            assertTrue(responseBody.contains("Unauthorized request"));
        }
    
    
        @Test
        public void testTrackingNumberNotFound() {
            String trackingNumber = "INVALID_TRACKING_NUMBER";
            String requestBody = "{\"trackingNumber\":\"" + trackingNumber + "\",\"apiKey\":\"" + API_KEY + "\"}";
            Response response = RestAssured.given().
                    contentType("application/json").
                    body(requestBody).
                    when().
                    post();
            int statusCode = response.getStatusCode();
            assertEquals(404, statusCode);
            String responseBody = response.getBody().asString();
            assertTrue(responseBody.contains("Tracking number not found"));
        }
    }

    Avec cela, nous avons maintenant 3 scénarios de test qui couvrent les 3 scénarios décrits dans la spécification OpenAPI du service de suivi FoxShipping. Celles-ci constituent une base solide que vous pouvez utiliser comme point de départ et développer en ajoutant vos propres personnalisations et des cas de test supplémentaires.

    Sur quels autres sujets liés à l’utilisation de ChatGPT dans les tests aimeriez-vous en savoir plus ? S’il vous plaît laissez vos suggestions dans les commentaires ci-dessous et je vais écrire à leur sujet.

    N’hésitez pas à me suivre sur Développeurweb.com et sur LinkedIn pour plus de contenu comme celui-ci.

    PS J’ai généré l’image de cet article que vous avez vu dans l’en-tête en utilisant DALL-E 2 d’OpenAPI en lui demandant « une programmation de paire d’entités AI avec un développeur humain ». C’est plutôt bon!

    Veuillez noter qu’il n’est pas recommandé de coller le code propriétaire privé de votre entreprise dans ChatGPT pour des raisons de sécurité, sauf si vous avez une bonne raison et la permission de le faire ! Le but de cet article est de démontrer la puissance de la nouvelle technologie d’IA qui pourrait perturber le paysage des tests. Si vous recherchez des recettes spécifiques de génération de tests pour votre équipe, n’hésitez pas à me contacter directement.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.