1
對於UI自動化測試,我需要做REST Api調用來獲得響應。我傳遞會話ID成request.setheader頁眉,但我收到的反應是:Java:如何通過會話ID爲api測試休息API調用?
{"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測試。 – Spoke44
對於我的UI測試中的少數測試用例,我需要來自api的響應。這是基本上用於功能測試的原因。 – codefemme