2017-06-29 1 views
1

Pour les tests d'automatisation de l'interface utilisateur, je dois effectuer des appels REST Api pour obtenir la réponse. Je passe l'identifiant de session dans le HEADER par request.setheader, mais j'ai reçu la réponse que:Java: comment passer l'identifiant de session pour l'api de repos dans le test API?

{"result":{"success":false,"httpCode":200,"errorCode":"INVALID_SESSION_ID","errorMessage":"Session ID not provided... Kindly Login !!"}} 

J'ai essayé afficher l'identifiant de session et il semble bien, ce que je ne comprends pas, pourquoi il est pas été passé à l'API. Voici le code:

HttpClient httpClient = HttpClientBuilder.create().build(); 
      HttpGet request = new HttpGet(getUrl); 

      SessionId SessionId = ((FirefoxDriver)driver).getSessionId(); 
      request.setHeader("Cookie", SessionId.toString()); 
      HttpResponse response = httpClient.execute(request); 

       InputStream ips = response.getEntity().getContent(); 
       BufferedReader buf = new BufferedReader(new InputStreamReader(ips,"UTF-8")); 
       if(response.getStatusLine().getStatusCode()!=HttpStatus.SC_OK) 
       { 
        throw new Exception(response.getStatusLine().getReasonPhrase()); 
       } 
       StringBuilder sb = new StringBuilder(); 
       String s; 
       while(true) 
       { 
        s = buf.readLine(); 
        if(s==null || s.length()==0) 
         break; 
        sb.append(s); 

       } 
       buf.close(); 
       ips.close(); 
       System.out.println("After parsing: "+sb.toString()); 

Sortie: Après analyse syntaxique: texte fort

{"result":{"success":false,"httpCode":200,"errorCode":"INVALID_SESSION_ID","errorMessage":"Session ID not provided... Kindly Login !!"}} 
+1

Pour les tests d'interface utilisateur, vous ne devez pas effectuer d'appels API. Se moquer d'eux. Vous ne pouvez pas compter sur le réseau pour les tests d'interface utilisateur. – Spoke44

+0

pour quelques cas de test dans mon test d'interface utilisateur, j'ai besoin de la réponse des API. C'est la raison, essentiellement pour tester la fonctionnalité. – codefemme

Répondre

0

est la solution ici: changé,
request.setHeader ("Cookie", SessionId.toString()) à request.setHeader ("sessionId", SessionId.toString()); Cela a été mentionné dans le document API donné par l'équipe API. Ensuite, l'identifiant de session est donné en sortie de l'appel d'API précédent, qui doit être passé dans les appels api suivants. Je n'avais aucune idée à ce sujet, puisque je suis nouveau pour les tests API. J'espère que ma réponse aide quelqu'un dans une situation similaire !!