专栏首页软件测试那些事我来给MeterSphere写测试用例06

我来给MeterSphere写测试用例06

类似于开发同学的code review活动,在测试过程中对于测试用例进行同行评审也是一项有价值的质量活动,毕竟找bug也是一项智力活动,需要测试人员投入智力劳动,而测试用例就是这一活动的典型产物。MeterSphere提供了一个用例评审的功能。通过这个功能,可以在MeterSphere上进行测试用例的评审,通过评审的用例就可以纳入用例库作为待执行的新增用例了。以下是从其演示网站截取的一个示例。

在本文中,将介绍如何通过接口的方式完成测试评审任务的新建、并将之前新建的测试用例纳入该测试评审任务,并最终将该用例标注为评审通过。

新建测试评审

首先来看一下新建测试评审的用例。

     @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的场景,需要一个一个用例来标注评审结果。接口设计上也体现出来是一个用例评审结果发一次请求。后期如果是支持测试用例批量评审通过的话,还需要对接口进行新增或者修改既有的接口。

在用例评审完成后,就可以达到本次旅程的最后一步了,用例执行并通过。

本文分享自微信公众号 - 软件测试那些事(antony-not-available),作者:风月同天测试人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-12-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MeterSphere系列04-通过Multi-Part接口新建用例

    继续我们的MeterSphere之旅。在本小节中,将介绍如何在MeterSphere中创建测试用例。

    Antony
  • 嘀,验证卡

    在某些情况下,除了验证程序的执行结果,还需要对程序的行为进行断言。Mockito提供了verify的方法来支持这一类的需求。

    Antony
  • 测试工具中的设计模式实例谈之三迭代器模式(Iterator)

    本文将以OPENCSV为案例,介绍迭代器模式(Iterator)的实现CSVIterator,并以Iterable接口的实现CSVReader为例,简要讨论了I...

    Antony
  • Django-restframework

    最近学习了 django 的一个 restframework 框架,对于里面的执行流程产生了兴趣,经过昨天一晚上初步搞清楚了执行流程(部分方法还不太清楚),于是...

    py3study
  • webbench压力测试软件

    进行测试: webbench -c 1000 -t 60 http://192.168.1.2/phpinfo.php 参数说明:

    院长技术
  • Motan源码阅读--设计一个RPC

    在RPC中服务提供者和服务消费者都可以抽象成一个节点,节点包含了创建,销毁,节点描述信息,和节点链接,节点状态等。

    春哥大魔王
  • teprunner测试平台用例前置模块开发

    现在正式进入测试相关功能开发。teprunner测试平台底层是pytest,中间层是tep,还没了解的朋友可以先看看tep的文章,整个平台的设计思路和后面用例的...

    dongfanger
  • 春节充电系列:李宏毅2017机器学习课程学习笔记20之支持向量机(support vector machine)

    【导读】我们在上一节的内容中已经为大家介绍了台大李宏毅老师的机器学习课程的迁移学习(transfer learning),这一节将主要针对讨论支持向量机(sup...

    WZEARW
  • [ JavaScript ] 执行函数中改变 this 的指向以及方法

    bind,apply,call 都是执行函数时,用来改变 this 的指向。另外,apply、call 是立即执行,而 bind 是调用的时候才执行。

    GavinUI
  • 你真的了解Spring MVC处理请求流程吗?

    用户2032165

扫码关注云+社区

领取腾讯云代金券