如何通过 REST API java 在 Azure DevOps 中添加测试结果?
How to add test results in Azure DevOps through REST API java?
我试过下面的程序,但测试结果没有添加到 VSTS 中:
public static void addTestResults() throws ClientProtocolException, IOException {
String pat = "abc@abc.com:xxxxxxxxxxxxxxxxxxxxxx";
byte[] byteArray2 = Base64.encodeBase64(pat.getBytes());
String encodedString2 = new String(byteArray2);
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost postRequest = new HttpPost("https://xxx.visualstudio.com/DefaultCollection/XXX/_apis/test/runs/1000012/results?api-version=5.0-preview.5" );
List<NameValuePair> arguments1 = new ArrayList<NameValuePair>(4);
arguments1.add(new BasicNameValuePair("state", "Completed"));
arguments1.add(new BasicNameValuePair("testPoint", "{\"id\":40}"));
arguments1.add(new BasicNameValuePair("outcome", "Passed"));
arguments1.add(new BasicNameValuePair("testCase", "{\"id\":7340}"));
try {
postRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
patchRequest.setHeader(HttpHeaders.ACCEPT, "application/json");
postRequest.setHeader("Authorization", "Basic "+encodedString2);
postRequest.setEntity(new UrlEncodedFormEntity(arguments1,"UTF-8"));
HttpResponse response = httpClient.execute(postRequest);
System.out.println("Out is"+EntityUtils.toString(response.getEntity()));
} catch (IOException e) {
e.printStackTrace();
}
}
输出如下:
Out is
{
"$id":"1",
"innerException":null,
"message":"Value cannot be null.\r\nParameter name: results",
"typeName":"System.ArgumentNullException, mscorlib",
"typeKey":"ArgumentNullException",
"errorCode":0,
"eventId":0
}
任何人都可以帮我解决我哪里出错了。我想了好几天都没有解决。
我得到了解决方案,这里是:
public static void addTestResults() throws ClientProtocolException, IOException {
String pat = "abc@abc.com:xxxxxxxxxxxxxxxxxxxxxx";
byte[] byteArray2 = Base64.encodeBase64(pat.getBytes());
String encodedString2 = new String(byteArray2);
String reqbody = "{\n" +
" \"state\": \"Completed\",\n" +
" \"testPoint\": {\n" +
" \"id\": 40\n" +
" },\n" +
" \"outcome\": \"Passed\",\n" +
" \"testCase\": {\n" +
" \"id\": 7390\n" +
" }\n" +
" }";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost postRequest = new HttpPost("https://xxx.visualstudio.com/DefaultCollection/XXX/_apis/test/runs/1000012/results?api-version=5.0-preview.5" );
try {
postRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
patchRequest.setHeader(HttpHeaders.ACCEPT, "application/json");
postRequest.setHeader("Authorization", "Basic "+encodedString2);
postRequest.setEntity(new StringEntity(reqbody, ContentType.APPLICATION_JSON));
HttpResponse response = httpClient.execute(postRequest);
System.out.println("Out is"+EntityUtils.toString(response.getEntity()));
} catch (IOException e) {
e.printStackTrace();
}
}
我试过下面的程序,但测试结果没有添加到 VSTS 中:
public static void addTestResults() throws ClientProtocolException, IOException {
String pat = "abc@abc.com:xxxxxxxxxxxxxxxxxxxxxx";
byte[] byteArray2 = Base64.encodeBase64(pat.getBytes());
String encodedString2 = new String(byteArray2);
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost postRequest = new HttpPost("https://xxx.visualstudio.com/DefaultCollection/XXX/_apis/test/runs/1000012/results?api-version=5.0-preview.5" );
List<NameValuePair> arguments1 = new ArrayList<NameValuePair>(4);
arguments1.add(new BasicNameValuePair("state", "Completed"));
arguments1.add(new BasicNameValuePair("testPoint", "{\"id\":40}"));
arguments1.add(new BasicNameValuePair("outcome", "Passed"));
arguments1.add(new BasicNameValuePair("testCase", "{\"id\":7340}"));
try {
postRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
patchRequest.setHeader(HttpHeaders.ACCEPT, "application/json");
postRequest.setHeader("Authorization", "Basic "+encodedString2);
postRequest.setEntity(new UrlEncodedFormEntity(arguments1,"UTF-8"));
HttpResponse response = httpClient.execute(postRequest);
System.out.println("Out is"+EntityUtils.toString(response.getEntity()));
} catch (IOException e) {
e.printStackTrace();
}
}
输出如下:
Out is
{
"$id":"1",
"innerException":null,
"message":"Value cannot be null.\r\nParameter name: results",
"typeName":"System.ArgumentNullException, mscorlib",
"typeKey":"ArgumentNullException",
"errorCode":0,
"eventId":0
}
任何人都可以帮我解决我哪里出错了。我想了好几天都没有解决。
我得到了解决方案,这里是:
public static void addTestResults() throws ClientProtocolException, IOException {
String pat = "abc@abc.com:xxxxxxxxxxxxxxxxxxxxxx";
byte[] byteArray2 = Base64.encodeBase64(pat.getBytes());
String encodedString2 = new String(byteArray2);
String reqbody = "{\n" +
" \"state\": \"Completed\",\n" +
" \"testPoint\": {\n" +
" \"id\": 40\n" +
" },\n" +
" \"outcome\": \"Passed\",\n" +
" \"testCase\": {\n" +
" \"id\": 7390\n" +
" }\n" +
" }";
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost postRequest = new HttpPost("https://xxx.visualstudio.com/DefaultCollection/XXX/_apis/test/runs/1000012/results?api-version=5.0-preview.5" );
try {
postRequest.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");
patchRequest.setHeader(HttpHeaders.ACCEPT, "application/json");
postRequest.setHeader("Authorization", "Basic "+encodedString2);
postRequest.setEntity(new StringEntity(reqbody, ContentType.APPLICATION_JSON));
HttpResponse response = httpClient.execute(postRequest);
System.out.println("Out is"+EntityUtils.toString(response.getEntity()));
} catch (IOException e) {
e.printStackTrace();
}
}