软件测试 52 讲
茹炳晟
腾讯 TEG 基础架构部 T4 级专家
71691 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 63 讲
结束语 (1讲)
软件测试 52 讲
15
15
1.0x
00:00/00:00
登录|注册

35 | 如何准备测试数据?

使用数据库操作生成特殊测试需求的数据
调用API完成基本数据创建
需要维护和更新数据准备函数
容易出现数据不完整
数据准备函数维护成本高
创建效率高
批量创建海量数据效率低
多个API调用增加复杂性
不是所有数据都有对应API支持
数据创建逻辑变更透明
封装成测试数据函数方便
执行效率高
数据准确性高
引入不必要的测试依赖
成功创建概率低
不适合封装成测试数据工具
创建效率低
数据来自真实业务流程
简单直接
处理消息队列里的数据
测试数据不仅局限于数据库
典型例子
缺点
优点
缺点
优点
缺点
优点
思考题
综合运用API和数据库的方式生成测试数据
通过数据库操作生成测试数据
通过API调用生成测试数据
基于GUI操作生成测试数据
测试数据准备方法

该思维导图由 AI 生成,仅供参考

你好,我是茹炳晟,今天我和你分享的主题是:如何准备测试数据。
从今天开始,我们将一起进入测试数据准备这个新的系列了。我会用四篇文章,和你详细探讨软件测试过程中关于测试数据准备的话题。我会依次分享测试数据创建的基本方法、测试数据准备的痛点、自行开发的测试数据工具,以及目前业内最先进的统一测试数据平台。
你我都非常清楚,测试数据的准备是软件测试过程中非常重要的一个环节,无论是手工测试,还是自动化测试,无论是 GUI 测试,还是 API 测试,无论是功能测试,还是性能测试,都避不开测试数据准备的工作。
所以,如果你想要成长为一名优秀的测试工程师,那就非常有必要深入理解测试数据准备的方法,以及它们各自的优缺点、适用场景了。
今天,我们就先从测试数据准备的基本方法开始吧。
从创建测试数据的维度来看,测试数据准备方法主要可以分为四类:
基于 GUI 操作生成测试数据;
通过 API 调用生成测试数据;
通过数据库操作生成测试数据;
综合运用 API 和数据库的方式生成测试数据。
这时,相信你已经回想起我曾在第 15 篇文章《过不了的坎:聊聊 GUI 自动化过程中的测试数据》中从创建测试数据的维度和你分享过这些内容,这次的分享只不过是多了“通过 GUI 调用生成测试数据”的方法。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

测试数据准备方法包括基于GUI操作、API调用、数据库操作以及综合运用API和数据库的方式。基于GUI操作生成测试数据简单直接但效率低,不适合封装成测试数据工具。通过API调用生成测试数据准确性高但执行效率较低,而通过数据库操作生成测试数据效率高但维护复杂。综合运用API和数据库的方式是主流做法,先通过API调用生成基础数据,再使用数据库的CRUD操作生成符合特殊测试需求的数据。在实际工作中,可能还需要创建消息队列里的数据。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件测试 52 讲》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(23)

  • 最新
  • 精选
  • 静静张
    我们是在测试用例执行前通过api创建数据,执行后清除数据的方式。

    作者回复: 完全可行,取决被测系统的特性

    2018-11-18
    2
  • 夏洛克的救赎
    “基于 GUI 的测试数据创建方法不适合封装成测试数据工具” 测试数据工具?用JavaScript实现?

    作者回复: 如果基于gui来封装测试数据工具,就会变成用gui来创建测试数据,这样的效率非常差。测试数据工具一般采用java或者python实现居多,当然用js也是可以的,这要取决于你们公司的技术架构和技术栈

    2018-10-01
    1
  • wenjun
    测试数据这个问题困扰了我很久,基本上成为团队进一步发展的瓶颈之一。 想请教一下老师,对于前台和中台团队,下面难点怎么突破: 1.最终数据,部分数据不是实时生成的,例如需要后台清算才能产生。 2.依赖于多个后台系统,他们分别产生不同的数据,存储在不同的数据库中。中台需要整个这些数据。 以上两个方面需要如何高效的产生和维护真实可靠的测试数据呢?(目前是搞一套完整的系统,自动化跑清算,感觉成本太高)
    2018-11-01
    2
    17
  • sylan215
    1.如果使用非 GUI 操作获取测试数据,一定要保证使用的方法和 GUI 操作路径/逻辑是一致的,不然没法保证测试的一致性了; 2.如果是一次性操作,其实 GUI 操作的成本并不高(或者使用 GUI 操作的接口,而不是额外开发的接口),其他方法可能会涉及单独的开发工作量吧,特别是数据库,大部分业务的数据库表都是关联的,如果改不好,可能定位问题就需要很长时间; 3.另外也需要关注测试数据的恢复,保证数据的一致性。 以上,欢迎沟通交流,公众号「sylan215」
    2018-09-17
    7
  • 阿星星阿
    直接写sql的话对简单链路还好,如果像订单这种比较大的业务链路成本会不会有点高
    2019-06-11
    5
  • 楚耳
    老师,你文中提到的在一个你可以独占的环境上执监控服务器端的调用日志,和数据库日志,这其中分别用的是什么工具进行监控的
    2018-10-31
    3
    5
  • shane
    我们是两种方式都有,但我们有个原则,即便是死数据,只要是新增的测试用例,我们都尽量重新造所需的数据,这样就不会影响旧的数据,互不干扰
    2019-07-22
    3
  • 胖虫子
    遇到过一次测试,很多的测试数据需要操作很多步骤才能得到,只是为了测试方便,也为了节约时间,采用katalon提供的web录制回访,虽然也是gui的,但因为是录制回访,所以也没花太多的时间
    2018-11-01
    2
  • Middleware
    最近被测试数据填充困扰了,看了专栏 豁然开朗
    2020-11-07
    1
  • 毛毛雨
    问大家一个额外的问题是关于配置maven本地仓库的,我安装配置好maven(3.5.3)版本。。。所有环境都正常;就是想构建本地仓库时,一直都不成功:输入mvn help:system ,然后一直BUILD FAILURE ,打印[ERROR] No plugin found for prefix 'help' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (E:\maven\m2), aliyunmaven (https://maven.aliyun.com/repository/public)] ;我百度了很多方法都没用;而且同样的操作同样的文件参数,我用笔记本配了是可以的;很想问问大家有没有什么思路或者解决方法来提供,因为困扰我好多天了,蟹蟹
    2020-08-26
    1
收起评论
显示
设置
留言
23
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部