软件测试52讲
茹炳晟
eBay中国研发中心,测试基础架构技术主管
立即订阅
13370 人已学习
课程目录
已完结 63 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从“小工”到“专家”,我的软件测试修炼之道
免费
测试基础知识篇 (11讲)
01 | 你真的懂测试吗?从“用户登录”测试谈起
02 | 如何设计一个“好的”测试用例?
03 | 什么是单元测试?如何做好单元测试?
04 | 为什么要做自动化测试?什么样的项目适合做自动化测试?
05 | 你知道软件开发各阶段都有哪些自动化测试技术吗?
06 | 你真的懂测试覆盖率吗?
07 | 如何高效填写软件缺陷报告?
08 | 以终为始,如何才能做好测试计划?
09 | 软件测试工程师的核心竞争力是什么?
10 | 软件测试工程师需要掌握的非测试知识有哪些?
11 | 互联网产品的测试策略应该如何设计?
GUI自动化测试篇 (10讲)
12 | 从0到1:你的第一个GUI自动化测试
13 | 效率为王:脚本与数据的解耦 + Page Object模型
14 | 更接近业务的抽象:让自动化测试脚本更好地描述业务
15 | 过不了的坎:聊聊GUI自动化过程中的测试数据
16 | 脑洞大开:GUI测试还能这么玩(Page Code Gen + Data Gen + Headless)?
17 | 精益求精:聊聊提高GUI测试稳定性的关键技术
18 | 眼前一亮:带你玩转GUI自动化的测试报告
19 | 真实的战场:如何在大型项目中设计GUI自动化测试策略
20 | 与时俱进:浅谈移动应用测试方法与思路
21 | 移动测试神器:带你玩转Appium
API自动化测试篇 (3讲)
22 | 从0到1:API测试怎么做?常用API测试工具简介
23 | 知其然知其所以然:聊聊API自动化测试框架的前世今生
24 | 紧跟时代步伐:微服务模式下API测试要怎么做?
代码测试篇 (3讲)
25 | 不破不立:掌握代码级测试的基本理念与方法
26 | 深入浅出之静态测试方法
27 | 深入浅出之动态测试方法
性能测试篇 (7讲)
28 | 带你一起解读不同视角的软件性能与性能指标
29 | 聊聊性能测试的基本方法与应用领域
30 | 工欲善其事必先利其器:后端性能测试工具原理与行业常用工具简介
31 | 工欲善其事必先利其器:前端性能测试工具原理与行业常用工具简介
32 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(上)
33 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(下)
34 | 站在巨人的肩膀:企业级实际性能测试案例与经验分享
测试数据准备篇 (4讲)
35 | 如何准备测试数据?
36 | 浅谈测试数据的痛点
37 | 测试数据的“银弹”- 统一测试数据平台(上)
38 | 测试数据的“银弹”- 统一测试数据平台(下)
测试基础架构篇 (4讲)
39 | 从小作坊到工厂:什么是Selenium Grid?如何搭建Selenium Grid?
40 | 从小工到专家:聊聊测试执行环境的架构设计(上)
41 | 从小工到专家:聊聊测试执行环境的架构设计(下)
42 | 实战:大型全球化电商的测试基础架构设计
测试新技术篇 (5讲)
43 | 发挥人的潜能:探索式测试
44 | 测试先行:测试驱动开发(TDD)
45 | 打蛇打七寸:精准测试
46 | 安全第一:渗透测试
47 | 用机器设计测试用例:基于模型的测试
测试人员的互联网架构核心知识篇 (5讲)
48 | 优秀的测试工程师为什么要懂大型网站的架构设计?
49 | 深入浅出网站高性能架构设计
50 | 深入浅出网站高可用架构设计
51 | 深入浅出网站伸缩性架构设计
52 | 深入浅出网站可扩展性架构设计
特别放送篇 (8讲)
测试专栏特别放送 | 答疑解惑第一期
测试专栏特别放送 | 答疑解惑第二期
测试专栏特别放送 | 答疑解惑第三期
测试专栏特别放送 | 答疑解惑第四期
测试专栏特别放送 | 答疑解惑第五期
测试专栏特别放送 | 答疑解惑第六期
测试专栏特别放送 | 答疑解惑第七期
测试专栏特别放送 | 浅谈全链路压测
测一测 (1讲)
测一测 | 这些软件测试题目,你都掌握了吗?
结束语 (1讲)
结束语 | 不是结束,而是开始
软件测试52讲
登录|注册

35 | 如何准备测试数据?

茹炳晟 2018-09-17
你好,我是茹炳晟,今天我和你分享的主题是:如何准备测试数据。
从今天开始,我们将一起进入测试数据准备这个新的系列了。我会用四篇文章,和你详细探讨软件测试过程中关于测试数据准备的话题。我会依次分享测试数据创建的基本方法、测试数据准备的痛点、自行开发的测试数据工具,以及目前业内最先进的统一测试数据平台。
你我都非常清楚,测试数据的准备是软件测试过程中非常重要的一个环节,无论是手工测试,还是自动化测试,无论是 GUI 测试,还是 API 测试,无论是功能测试,还是性能测试,都避不开测试数据准备的工作。
所以,如果你想要成长为一名优秀的测试工程师,那就非常有必要深入理解测试数据准备的方法,以及它们各自的优缺点、适用场景了。
今天,我们就先从测试数据准备的基本方法开始吧。
从创建测试数据的维度来看,测试数据准备方法主要可以分为四类:
基于 GUI 操作生成测试数据;
通过 API 调用生成测试数据;
通过数据库操作生成测试数据;
综合运用 API 和数据库的方式生成测试数据。
这时,相信你已经回想起我曾在第 15 篇文章《过不了的坎:聊聊 GUI 自动化过程中的测试数据》中从创建测试数据的维度和你分享过这些内容,这次的分享只不过是多了“通过 GUI 调用生成测试数据”的方法。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件测试52讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(16)

  • wenjun
    测试数据这个问题困扰了我很久,基本上成为团队进一步发展的瓶颈之一。 想请教一下老师,对于前台和中台团队,下面难点怎么突破:
    1.最终数据,部分数据不是实时生成的,例如需要后台清算才能产生。
    2.依赖于多个后台系统,他们分别产生不同的数据,存储在不同的数据库中。中台需要整个这些数据。

    以上两个方面需要如何高效的产生和维护真实可靠的测试数据呢?(目前是搞一套完整的系统,自动化跑清算,感觉成本太高)
    2018-11-01
    6
  • 楚耳
    老师,你文中提到的在一个你可以独占的环境上执监控服务器端的调用日志,和数据库日志,这其中分别用的是什么工具进行监控的
    2018-10-31
    1
    4
  • sylan215
    1.如果使用非 GUI 操作获取测试数据,一定要保证使用的方法和 GUI 操作路径/逻辑是一致的,不然没法保证测试的一致性了;

    2.如果是一次性操作,其实 GUI 操作的成本并不高(或者使用 GUI 操作的接口,而不是额外开发的接口),其他方法可能会涉及单独的开发工作量吧,特别是数据库,大部分业务的数据库表都是关联的,如果改不好,可能定位问题就需要很长时间;

    3.另外也需要关注测试数据的恢复,保证数据的一致性。

    以上,欢迎沟通交流,公众号「sylan215」
    2018-09-17
    2
  • shane
    我们是两种方式都有,但我们有个原则,即便是死数据,只要是新增的测试用例,我们都尽量重新造所需的数据,这样就不会影响旧的数据,互不干扰
    2019-07-22
    1
  • 静静张
    我们是在测试用例执行前通过api创建数据,执行后清除数据的方式。

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

    2018-11-18
    1
  • 胖虫子
    遇到过一次测试,很多的测试数据需要操作很多步骤才能得到,只是为了测试方便,也为了节约时间,采用katalon提供的web录制回访,虽然也是gui的,但因为是录制回访,所以也没花太多的时间
    2018-11-01
    1
  • 夏洛克的救赎
    “基于 GUI 的测试数据创建方法不适合封装成测试数据工具”

    测试数据工具?用JavaScript实现?

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

    2018-10-01
    1
  • 刘超 mingo
    请问如何对后端接口进行自动化导入到测试平台,或者有没有类似的接口导入工具可以自动扫描代码出接口,
    2019-11-04
  • 倔强的潇洒小姐
    基于MQ消费的,我现在都是2边直接插表数据,然后会走一遍正常流程验证MQ消息
    2019-07-17
  • 阿星星阿
    直接写sql的话对简单链路还好,如果像订单这种比较大的业务链路成本会不会有点高
    2019-06-11
  • 口水窝
    消息队列就是两台机器之间的通讯协议,消息存储于一个容器中。没有真正深入到消息队列,所以里面的创建原理并不熟悉,记录,下次学习。
    2019-05-13
  • Sphinx
    开发在做UT测试的时候也会需要准备测试数据,若是底层服务,会直接在测试用例中通过ORM来创建所需数据;若是上层服务,通常会调用底层服务的API来创建所需数据,微服务架构下,我觉得使用API方式来构建测试数据会比较理想,这样更利于测试代码的抽象与实现。
    2018-11-19
  • 小老鼠
    测试数据
    1、在测试执行前创建完毕
    2、在测试前通过setup来创建
    这两个方法各有什么利弊?
    2018-11-07
  • 小老鼠
    各位作自动化测试的时候,测试数据是实先存在系统数据库中还是在运行测试程序开始生成,完成以后再删除,有没有必要一批测试用例执行完毕,不侵犯系统中原有的数据。今天我发现我以前写的一些测试用例只接操纵产品数据库,但是忘了启动web server,但启动了DB server,然后运行测试代码往DB server里写数据了,但由于web server没有启动,测试用例运行失败,结果写进数据库中的数据没有及时处理干净,形成了垃圾测试数据,你平时在测试中是如何处理的?
    2018-11-04
  • 雨注金池
    茹老师,请问如果通过api更新数据库业务上需要发消息给上游,那么通过CRUD数据库的方法直接构造特殊数据并不会发消息,那是需要再构造Q么?这样成本会不会很高
    2018-10-25
  • 深邃
    我现在还是不懂怎么用GUI测试
    2018-09-17
    1
收起评论
16
返回
顶部