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

我来给MeterSphere写测试用例07

作为本次旅程的最后一站,我们来到了最终的一站-测试结果。如下图所示,测试执行人员可以在测试计划中就本次计划执行的测试用例逐个或者批量地标注执行结果。如果有缺陷的话,可以在同一个页面中报告缺陷。

我们通过测试计划的管理接口来实现用例的执行结果上报,将之前新增并纳入测试计划的用例标注为执行通过。以下是用例,

 @Order(9)
 @Test
 @DisplayName("09测试计划-执行通过")
 public void executeTestCaseSuccess() throws Exception {
     TestPlanTestCaseWithBLOBs request=new TestPlanTestCaseWithBLOBs();
     request.setId(testCase.getId());
     request.setStatus("Pass");
     String result= doPost("/test/plan/case/edit",JSON.toJSONString(request));
     assertThat(result).contains("true");
 
 }

这样,先前的用例就执行完成了。

完整用例

来看一下完整的测试用例

JUnit5中指定用例执行顺序

有读者可能注意到了@Order的注解。这是用来保证Junit按照指定的顺序来执行测试用例。如以下代码,

 @TestMethodOrder(MethodOrderer.OrderAnnotation.class)
 @Slf4j
 public class Project2TestCaseLongJourneyTest extends TestApp {}

这个用例类中添加了@TestMethodOrder注解用于指定测试用例的按顺序执行,并且使用了OrderAnnotation的方式。通过在测试方法上依次加入@Order(1) ~ @Order(9),就能指定这些用例的执行顺序了,从而实现了通过若干个用例来组织形成一个测试场景的目的,并且保障了用例之间数据相互依赖的情况下,整个场景可以按照既定顺序完成执行。

代码覆盖率

最后,来简单看一下上述场景对MeterSphere后台的代码覆盖率(部分)

可以看到,对controller/service/DAO层均有覆盖。

回顾一下

在本次旅程中,我们实现了服务端的集成测试,主要用到的技术是,

  • MariaDB4j提供内存数据库,供Flyway来初始化Schema
  • SpringBootTest来启动提供Spring容器上下文
  • MockMVC来发起Post/Get请求,维持Session,Muliti-Part 文件上传
  • JUnit5 的@Order来指定用例执行顺序

关于更多MeterSphere的使用,可以参考https://metersphere.io/docs/user_manual/test_track/

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

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 去中心化的测试用例平台之Maven插件

    从测试用例管理的角度来看,测试平台或者测试框架,首先需要解决业务域的问题 1)如何来表征一个测试用例、步骤以及用例集 2)如何来执行用例、用例集 3)如何来获取...

    Antony
  • 数据管理策略的三个案例

    之前在外企做UI自动化的时候,有一套所谓的Seed data。这套数据是产品的一部分,安装完就有,业务上主要给客户做demo用。我们用它来做自动化的上下文。 譬...

    Antony
  • 可视化代码架构反模式

    在研究代码度量的过程中,笔者了解到了codeflower,一个代码可视化工具,作者Francois Zaninotto还提出了若干种代码的可视化模式 visua...

    Antony
  • 2018年人工智能将如何影响数字营销?

    引言:人工智能正在改变世界,那么人工智能在2018年将会如何影响数字营销呢?本文分析了AI可以极大地推动数字营销的一些潜在领域。 翻译 | Nic 审校 | S...

    iCDO互联网数据官
  • 用Python从零开始创建区块链

    作者认为最快的学习区块链的方式是自己创建一个,本文就跟随作者用Python来创建一个区块链。 对数字货币的崛起感到新奇的我们,并且想知道其背后的技术——区块...

    Python中文社区
  • [javaSE] GUI(鼠标事件)

    调用Button对象的addMouseListener方法,参数:MouseListener对象,这个类是个接口,需要实现以下方法

    陶士涵
  • 资源 | 吴恩达deeplearning.ai第四课学习心得:卷积神经网络与计算机视觉

    选自Medium 机器之心编译 参与:路雪、李泽南 不久前,Coursera 上放出了吴恩达 deeplearning.ai 的第四门课程《卷积神经网络》。本文...

    机器之心
  • NERVE:一款为渗透测试设计的多功能网络安全&漏洞利用引擎

    我们认为,安全扫描应当是一件需要持续去做的事情,这种持续性并不是指每天、每周、每个月或每个季度,我们指的是每一分每一秒!这种持续性的安全扫描方式适用于以下几种场...

    FB客服
  • DeepMind创始人:只有了解大脑,才能开发出更强的AI(附论文)

    陈桦 允中 编译整理 量子位 出品 | 公众号 QbitAI ? 经过几十年的野蛮生长之后,人工智能正重新回到舞台中央。成本更低的计算性能和大规模数据集使研究人...

    量子位
  • AI除了能下棋,还能做什么?

    在两个月前,中国乌镇围棋峰会在浙江桐乡乌镇热火朝天的举行。5场比赛最受关注的毫无疑问要数AlphaGo与世界排名第一的柯洁的三番棋对弈,可以说是人类顶尖棋手与人...

    AiTechYun

扫码关注云+社区

领取腾讯云代金券