软件测试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讲
登录|注册

15 | 过不了的坎:聊聊GUI自动化过程中的测试数据

茹炳晟 2018-08-01
在前面几篇文章中,我从页面操作的角度介绍了 GUI 自动化测试,讲解了页面对象模型和业务流程封装,今天我将从测试数据的角度再来谈谈 GUI 自动化测试。
为了顺利进行 GUI 测试,往往需要准备测试数据来配合测试的进行,如果不采用事先数据准备的方式,测试效率将会大打折扣,而且还会引入大量不必要的依赖关系。
以“用户登录”功能的测试为例,如果你的目的仅仅是测试用户是否可以正常登录,比较理想的方式是这个用户已经存在于被测系统中了,或者你可以通过很方便的方式在测试用例中生成这个用户。否则,难道你要为了测试用户登录功能,而以 GUI 的方式当场注册一个新用户吗?显然,这是不可取的。
其实从这里,你就可以看出测试数据准备是实现测试用例解耦的重要手段,你完全不必为了测试 GUI 用户登录功能而去执行用户注册,只要你能够有方法快速创建出这个登录用户就可以了。
在正式讨论测试数据的创建方法前,我先来分析一下 GUI 测试中两种常见的数据类型:
第一大类是,测试输入数据,也就是 GUI 测试过程中,通过界面输入的数据。比如“用户登录”测试中输入的用户名和密码就就属于这一类数据;再比如,数据驱动测试中的测试数据,也是指这一类。
第二大类是,为了完成 GUI 测试而需要准备的测试数据。比如,“用户登录”测试中,我们需要事先准备好用户账户,以便进行用户的登录测试。今天我分享的测试数据创建的方法,也都是围着这一部分的数据展开的。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件测试52讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(15)

  • 假装乐
    数据库监控工具有推荐的吗
    2018-08-01
    25
  • sylan215
    是不是可以这么理解:
    API 调用和数据库操作创建,本质上都是操作数据库,不过 API 调用是做了一层封装,保证了操作的可控性(避免胡乱写数据库操作语句)。
    实时创建数据和事先创建测试数据,其实也是不冲突的,我理解他俩并不是互斥的关系,而是互为补充,在 API 调用逻辑内部,先检查数据库中是否存在需要的测试数据,存在则继续,不存在则创建即可。
    欢迎沟通交流,公众号「sylan215」
    2018-08-01
    7
  • 口水窝
    小公司,没有做GUI自动化测试,更无从测试数据的准备谈起,只能自己摸索,不断尝试,总结更多的实践经验。
    2019-03-29
    2
  • 年轻人的瞎折腾^.
    我们是out the box 脚本预制 然后on the fly 接口调用,API测试,经常因为接口变动大,数据库也有变化 这样脚本经常容易改动 有什么方法可以设置变量方面,灵活性的脚本?
    2018-11-08
    2
  • arthur
    我们的产品有一个best practice的包,里面包含了很多数据,对测试非常有用
    2018-08-06
    2
  • FamilyLi
    最近几张讲的GUI测试,听起来主要是基于浏览器的业务测试,对于APP的测试如何应用
    2018-08-02
    2
  • 叶夏立
    我的做法是备份还原整个数据库😂,当然也是看业务场景的
    2018-08-01
    2
  • 任大树
    老师讲的很清楚~~我有个小问题想请教一下:自动化做完 要进行数据还原,老师有没有什么数据还原的方法推荐呢?比如数据库快照什么的。或者说有哪些类型的自动化测试根本不用还原?
    2018-09-21
    1
  • Geek_AX1
    老师,我以前做过一个项目,测试数据我们直接copy一些现网数据来创造数据,尤其是性能测试高并发的时候,请问这个是不是一种好方法呢?
    2019-06-04
  • 孙建伟
    并不矛盾,GUI自动化测试是基于功能稳定的情况下进行的!
    2019-04-24
  • Lynn
    数据库监控工具有推荐的吗
    2018-12-13
  • 小老鼠
    1,本文中需要注意的是,这两种思路的前提都是,假定产品功能正确,否则就会出现“一错到底”的尴尬局面。一一-前题是产品功能正确,测试的目的是找到产品中的Bug,没觉得这有矛盾吗?
    2,在自动化测试中,teatdown方法中往往作的最重要的事情是清除脏数据。但是自动化测试往往出现的状况是测试程序在测试过程中遇到问题,挂掉了,这样造成的结果是执行不了teatdown方法中清除脏数据的操作,从而影响其他用例的运行。我一般Have to在所有测试开始(setup方法)一开始都清除所有脏数据,保证此测试用例在干净环境下运行。请问作者没有别的好办法。
    2018-10-24
    1
  • 晴天
    hui测试的两类数据感觉没有什么区别,老师能详细说下嘛

    作者回复: 其实这里是从两个不同的角度来描述测试数据,一种是测试输入数据,也就是你的数据驱动中用到的数据,另一种是讲你怎么去创建这个测试数据。

    2018-08-10
  • 涅槃Ls
    打卡15
    2018-08-03
  • hi !girl
    在准备测试数据中,我觉得应该尽量减少第三方的依赖,避免脚本的不稳定性,也就是说能预先设定的就先考虑,不能的再采取实时产生的方式
    2018-08-02
收起评论
15
返回
顶部