2017-08-25 1 views
1

J'utilise java-concombre et reste-assuré. Actuellement, j'essaie de créer un rapport dans lequel je ne fournirai pas toutes les informations de demande et de réponse pour chaque demande en cours. Donc, la question est: S'il est possible d'enregistrer en variable toutes les informations de demande et de réponse? Ou utiliser un autre moyen pour obtenir ces données dans le rapport?Fournir le corps de demande et de réponse dans le rapport de concombre

P.S. Je sais comment obtenir une réponse (extract().response()) ou imprimer dans les journaux de la console (log().all()) avec toutes les informations de demande. Et j'ai déjà installé maven-cucumber-reporting qui génère un rapport html, mais sans toutes les données de l'API de requête et de réponse.

+0

Vous pouvez utiliser la méthode write() de Scenario et transmettre le texte de la demande de réponse. Dans le crochet Avant, vous pouvez passer dans l'objet Scénario et le stocker dans une variable d'instance de la classe de définition d'étape. – Grasshopper

+0

Bienvenue sur stackoverflow. S'il vous plaît, pourriez-vous fournir un code de votre problème spécifique. Cela prouve à quel point vous avez essayé et cela aidera les autres membres à mieux comprendre votre problème, à ce moment-là, vous leur donnerez un contexte de votre problème. Veuillez vérifier ces liens: https://stackoverflow.com/help/mcve et https://stackoverflow.com/help/how-to-ask –

Répondre

0

Vous n'êtes pas familier avec le concombre, mais si elle a quelque chose à capturer la sortie pour le rapport que vous pouvez créer un filtre dans Rassurez-vous:

import io.restassured.filter.FilterContext; 
import io.restassured.filter.OrderedFilter; 
import io.restassured.response.Response; 
import io.restassured.specification.FilterableRequestSpecification; 
import io.restassured.specification.FilterableResponseSpecification; 

public class RcAllureFilter implements OrderedFilter { 

    @Override 
    public int getOrder() { 
     return LOWEST_PRECEDENCE; 
    } 

    @Override 
    public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) { 
     Response response = ctx.next(requestSpec, responseSpec); 
     //you need to implement it, refer to io.restassured.internal.print.RequestPrinter#print 
     printRequest(requestSpec.getMethod(), requestSpec.getURI(), requestSpec); 
     //you need to implement it, refer to io.restassured.internal.print.ResponsePrinter#print 
     printResponse(response, response, response.getStatusLine()); 
     return response; 

    } 
} 
0

Si vous pouvez envisager de passer de l'assurance REST, Karaté a la capacité exacte que vous Recherchez où les journaux de requêtes HTTP et de réponses détaillés apparaissent en ligne dans le rapport HTML du concombre. Voici un short video demo.

Vous pouvez trouver une comparaison détaillée de Karaté et REST-assuré here.

Désistement: Je suis le développeur.