数据测试 测试提效之工具篇 - 测试数据构造与验证实践

中通科技测试 for 上海中通吉网络技术有限公司 · 2021年09月01日 · 最后由 中通科技测试 回复于 2021年09月03日 · 3938 次阅读

一、概述

目前,业界都在追求测试提效,我们中通科技与信息中心同样也非常重视提效。先抛开开发测试比的问题,我们不妨问一下自己,测试同学对业务的贡献是什么,可能很多人会毫不犹豫地说——质量,那么保证质量之后呢?无疑是效率。在我看来,质量保证是测试的本份,而测试同学对业务的进一步贡献就是大幅提升测试效率,其中包括提升自身测试效率和提升开发测试效率。
那么如何提效呢?子曰:工欲善其事,必先利其器。如果纯粹靠人,显然是不现实的,技术改变工作,只有让测试最大程度的自动化起来才能解决测试效率,而要实现高度的自动化测试,我们就需要一套非常高效而流畅的测试工具平台。
本文介绍的是经过笔者亲自实践的业务辅助测试工具,主要用于造数据、结果验证、联调测试及复杂性数据校验等功能,目前在中通财金科技部推广,已经在多个版本迭代中使用。

二、 价值

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 对象并返回。下面以注解式为例:

  1. 可通过@Select @Update @Insert @Delete注解,把 sql 语句的返回解决映射在 Map 对象(或者自己写一个实体类),如:

  2. 引入动态 sql,通过注解@SelectProvider生成动态的 sqlProvider,根据实际需要把查询条件放到入参 Map 对象里,实现动态查询,同样有@UpdateProvider @InsertProvider @DeleteProvider

  3. 在 service 层进行数据库结果的逻辑处理

  4. 在控制层输出 http 接口

  5. 最后是前端通过 Jquery 调用后端 http 接口

综上,实现一个贴近业务的工具平台开发成本不高,但是收益却是非常明显的。
在实际使用中,我们可以维护一个字典表,以 key:value 的方式用来处理一些经常使用的变量,这样既可以保证工具的稳定性,也可以覆盖更多的场景。

四、 总结

在的日常工作中,对于测试同学不免会遇到各种问题,但是学习、提效一定是我们永恒不变的主题。只要在工作中不断思考,把一些反复的工作抽象化,那么我们的工作效率一定会不断提升,同时自己也在不断的进步。

质量之路,永无止尽!

更多详情可加微信 :

更多招聘查看链接:

https://testerhome.com/topics/31821
https://testerhome.com/topics/31820

共收到 3 条回复 时间 点赞

不错的文章

差不多就是,了解业务流程在数据库里面的数据链是怎样的,然后自己写逻辑入库(SQL)???但是如果中间某一环节出错的话,这条数据就变成脏数据了···

@ 底层贫困人员 利用工具调用业务方的接口,并非自己写逻辑入库,中间如果某个环节出错,业务方的接口中会做事务回滚,暂时不存在脏数据。如果单纯调试的时候产生的脏数据可以自己删除不会影响工具调用。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册