在本文中,将介绍如何通过接口的方式完成测试评审任务的新建、并将之前新建的测试用例纳入该测试评审任务,并最终将该用例标注为评审通过。
首先来看一下新建测试评审的用例。
@Order(6)
@Test
@DisplayName("06测试评审-新建评审")
public void addTestReview() throws Exception {
PlanCaseRelevanceRequest planCaseRelevanceRequest= new PlanCaseRelevanceRequest();
String input="/test/case/review/reviewer";
String inputReview="{\"name\":\"12345\",\"projectIds\":[\"3396e116-f75c-4510-b913-c44aa3d04bbf\"],\"userIds\":[\"demo\"],\"stage\":\"\",\"description\":\"\",\"endTime\":1666147200000,\"status\":null}";
SaveTestCaseReviewRequest request=JSON.parseObject(inputReview,SaveTestCaseReviewRequest.class);
request.setName("review-"+getRandom());
request.setProjectIds(Arrays.asList(project.getId()));
request.setUserIds(Arrays.asList("admin"));
String result= doPost("/test/case/review/save",JSON.toJSONString(request));
assertThat(result).contains("true");
result=doPost("/test/case/review/list/all"," ");
List<TestCaseReview> testCaseReviews= JSON.parseArray(String.valueOf(JSON.parseObject(result,ResultHolder.class).getData()),TestCaseReview.class);
assertThat(testCaseReviews).isNotEmpty();
testCaseReview=testCaseReviews.get(0);
}
我们还是以从前台抓包获取的JSON串作为基础,对请求入参的部分属性进行修改,如测试评审的名称采用了随机数作为后缀,以保证本次提交数据不会和已有名称重复,便于用例的重复执行。另外,在接口请求成功提交之后,又通过查询接口获得了本次提交生成的测试评审的信息并保存下来,作为后续测试用例所需的参数。
@Order(7)
@Test
@DisplayName("07测试评审-关联测试用例")
public void addTestCaseReviewRelevance() throws Exception {
ReviewRelevanceRequest request=new ReviewRelevanceRequest();//JSON.parseObject(inputReview,ReviewRelevanceRequest.class);
request.setReviewId(testCaseReview.getId());
request.setTestCaseIds(Arrays.asList(testCase.getId()));
String result= doPost("/test/case/review/relevance",JSON.toJSONString(request));
assertThat(result).contains("true");
}
这个接口是将先前的testCaseReview和testCase两个对象的Id作为入参提交给后台服务端,从而实现了将测试用例关联到指定的测试评审上去。
@Order(8)
@Test
@DisplayName("08测试评审-评审通过")
public void addTestCaseReviewSuccess() throws Exception {
String inputReview="{\"id\":\"63cc0b83-7ec1-43e5-93e2-2ff8e397f70f\"," +
"\"caseId\":\"ed2244c4-3475-4db8-9719-2631f61d2a89\"," +
"\"reviewId\":\"d28a539a-8a58-4cff-a9a0-abc466fba576\",\"status\":\"Pass\"}";
TestCaseReviewTestCase request=new TestCaseReviewTestCase();//JSON.parseObject(inputReview,ReviewRelevanceRequest.class);
request.setId(testCaseReview.getId());
request.setReviewId(testCaseReview.getId());
request.setCaseId(testCase.getId());
request.setStatus("Pass");
String result= doPost("/test/review/case/edit",JSON.toJSONString(request));
assertThat(result).contains("true");
//测试评审 - 通过
作为本小节的最后,模拟了测试评审并通过的场景。
从前台来看,目前MeterSphere团队设计的用例评审是一个case-by-case的场景,需要一个一个用例来标注评审结果。接口设计上也体现出来是一个用例评审结果发一次请求。后期如果是支持测试用例批量评审通过的话,还需要对接口进行新增或者修改既有的接口。
在用例评审完成后,就可以达到本次旅程的最后一步了,用例执行并通过。