目前,业界都在追求测试提效,我们中通科技与信息中心同样也非常重视提效。先抛开开发测试比的问题,我们不妨问一下自己,测试同学对业务的贡献是什么,可能很多人会毫不犹豫地说——质量,那么保证质量之后呢?无疑是效率。在我看来,质量保证是测试的本份,而测试同学对业务的进一步贡献就是大幅提升测试效率,其中包括提升自身测试效率和提升开发测试效率。
那么如何提效呢?子曰:工欲善其事,必先利其器。如果纯粹靠人,显然是不现实的,技术改变工作,只有让测试最大程度的自动化起来才能解决测试效率,而要实现高度的自动化测试,我们就需要一套非常高效而流畅的测试工具平台。
本文介绍的是经过笔者亲自实践的业务辅助测试工具,主要用于造数据、结果验证、联调测试及复杂性数据校验等功能,目前在中通财金科技部推广,已经在多个版本迭代中使用。
1. 造数及数据验证
请看下面这段对话,发生在某一个需要联调测试的项目中:
到了下午:
是不是要给它发工资了。
我之前做过一个项目,测试数据准备的时间是每个迭代最头痛的事情。我需要造订单、造基础数据、造测试场景数据,平均每个单子的成本有五分钟,每个迭代需要覆盖完场景的情况下,需要至少 10 条订单,非常费时费力。现在,只需要点一下按钮,1 秒钟完成。
除此之外,开发同学在自测时,产品在验收的过程中都可以借助测试工具。
2. 辅助功能
结合实际工作,解决实际工作的痛点。比如,我觉得我每天发报告的时间比较多,那么我就可以做个一键生成报告的功能,复制粘贴即可。
比如下面这个功能,可以快速生成 Batis 的代码。
实现方式比较简单,后端 springboot+mybatis,前端使用的 layui。Layui 官网(https://www.layui.com)集成了各种简单实用的组件,已经足够使用了,而且易上手,学习成本低,重要的是我觉得很好看!!!
下面简单介绍下后端的框架。
代码结构如下图:
我们造数据或者进行数据验证的时候,最关心的还是对数据库的增删改查,本文简单介绍下 mybatis 对数据库的增删改查操作;MyBatis 是一个优秀的持久层框架,它对 jdbc 的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建 connection、创建 statement、手动设置参数、结果集检索等 jdbc 繁杂的过程代码。Mybatis 通过 xml 或注解的方式将要执行的各种 statement 配置起来,并通过 java 对象和 statement 中的 sql 进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射成 java 对象并返回。下面以注解式为例:
可通过@Select @Update @Insert @Delete注解,把 sql 语句的返回解决映射在 Map 对象(或者自己写一个实体类),如:
引入动态 sql,通过注解@SelectProvider生成动态的 sqlProvider,根据实际需要把查询条件放到入参 Map 对象里,实现动态查询,同样有@UpdateProvider @InsertProvider @DeleteProvider
在 service 层进行数据库结果的逻辑处理
在控制层输出 http 接口
最后是前端通过 Jquery 调用后端 http 接口
综上,实现一个贴近业务的工具平台开发成本不高,但是收益却是非常明显的。
在实际使用中,我们可以维护一个字典表,以 key:value 的方式用来处理一些经常使用的变量,这样既可以保证工具的稳定性,也可以覆盖更多的场景。
在的日常工作中,对于测试同学不免会遇到各种问题,但是学习、提效一定是我们永恒不变的主题。只要在工作中不断思考,把一些反复的工作抽象化,那么我们的工作效率一定会不断提升,同时自己也在不断的进步。
质量之路,永无止尽!
https://testerhome.com/topics/31821
https://testerhome.com/topics/31820