【问题标题】:Java: how to pass session id for rest api call in api testing?Java:如何在 api 测试中为 rest api 调用传递会话 ID?
【发布时间】:2017-12-02 20:52:03
【问题描述】:

对于 UI 自动化测试,我需要调用 REST Api 来获得响应。我通过 request.setheader 将会话 ID 传递到 HEADER,但收到的响应为:

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

我尝试过显示会话 ID,它似乎很好,但我不明白的是,为什么它没有被传递给 API。下面是代码:

    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());

输出: 解析后:强文本

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

【问题讨论】:

  • 对于 UI 测试,你不能做 api 调用。嘲笑他们。您不能依赖网络进行 UI 测试。
  • 对于我的 UI 测试中的少数测试用例,我需要来自 api 的响应。这就是原因,基本上是为了功能测试。

标签: java rest servlets selenium-webdriver web-api-testing


【解决方案1】:

解决方法如下: 变了,
request.setHeader("Cookie", SessionId.toString()); 到 request.setHeader("sessionId", SessionId.toString()); API团队给出的API文档中提到了这一点。 然后会话 ID 作为先前 API 调用的输出给出,需要在后续 api 调用中传递。我对此一无所知,因为我是 API 测试的新手。希望我的回答能帮助遇到类似情况的人!!

【讨论】:

    猜你喜欢
    • 2017-09-17
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2014-02-09
    • 2021-09-03
    相关资源
    最近更新 更多