软件测试52讲笔记--15 过不了的坎:聊聊GUI自动化过程中的测试数据

这是我购买的"极客时间"上的一套课程的笔记,总共52讲,定期对其中的内容做一笔记,巩固学习内容。

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

测试数据准备是实现测试用例解耦的重要手段。本篇从创建测试数据的技术手段和时机两个方面,介绍GUI测试数据的准备。

GUI测试中两种常见的数据类型

  • 第一大类:测试输入数据,也就是GUI测试过程中,通过界面输入的数据。
  • 第二大类:为了完成GUI测试而需要准备的测试数据。

创建测试数据的方法

  1. API调用
  2. 数据库操作
  3. 综合运用API调用和数据库操作

实际项目中,对于创建数据的技术手段而言,最佳的选择是利用API来创建数据。当API不能满足需要时,才使用数据库操作的手段。

实际上,许多测试数据的创建时基API和数据库操作两者的结合来完成,即先通过API创建基本的数据,然后调用数据库操作来修改数据,以达到对测试数据的特定要求。

创建的时机

  1. 测试用例执行过程中,实时创建测试数据。通常称为 On-the-fly 。
  2. 测试用例执行前,事先创建好“开箱即用”的测试数据。通常称为 Out-of-box 。

而对于创建数据的时机,实际项目中,往往是二者结合在一起使用。

下面作者结合具体的例子做出了说明,我就不再复述例子了,简单总结一下:

基于API调用创建测试数据

当数据的创建和修改,可以通过API调用进行的时候,就能够基于API调用创建测试数据。
实际项目中,通常会把对这些API的调用以代码的形式封装为测试数据工具。

基于API的方式,优点是,测试数据的准确性直接由产品API保证,缺点是并不是所有的测试数据都有相关API来支持。
但是,对需要大量创建数据的测试来说,基于API调用方式的执行效率会比较低。

基于数据库操作创建测试数据

当数据的创建和修改直接在产品代码内完成,并且没有对外暴露供测试使用的接口时,就需要通过操作数据库来产生测试数据。
同样地,可以把创建和修改数据的相关SQL语句封装成测试数据工具,以方便测试用例的使用。
有两个思路:

  1. 手工方式。查阅设计文档和产品代码,找到相关SQL语句集合。
  2. 自动方式。测试环境中,先在只有一个活跃用户的情况下,通过GUI界面操作完成数据的创建、修改,然后利用数据库监控工具获取这段时间内所有的业务表修改记录,以此为依据开发SQL语句集。
    这两种思路的前提,都是假定产品功能正确。

基于数据库的方式,优点是,可以直接创建和修改API不支持的测试数据,并且执行效率远高于API调用方式。缺点是,数据库表操作的任何变更,都必须同步更新测试数据工具中的SQL语句。
所以,在实际工程项目中,需要引入测试数据工具的版本管理,并通过开发流程来保证SQL的变更能够及时通知到测试数据工具团队。

综合运用API调用和数据库操作创建测试数据

具体来讲就是,可以通过API先创建一个基本的数据,然后再通过修改数据库的方式来更新这个数据,达到创建特定测试数据的要求。

实时创建数据 On-the-fly

GUI测试脚本中,在开始执行界面操作前,通过调用测试数据工具实时创建测试数据,就是 On-the-fly 方式。
实际项目中往往会存在三个问题:

  1. 用例执行过程中实时创建数据,导致测试的执行时间比较长。
  2. 业务数据的连带关系,导致测试数据的创建效率非常低。
  3. 对测试环境的依赖性很强。比如创建数据相关的API需要处于可用状态,但是很有可能在测试用例执行的时候它是不可用的(在采用微服务架构的系统中很常见)。

事先创建测试数据 Out-of-box

在被测系统中预先创建好了充足的、典型的测试数据。

有效解决了实时创建数据的很多问题,但是缺点也很明显,主要体现在以下三个方面:

  1. 测试用例中需要硬编码测试数据,额外引入了测试数据和用例之间的依赖。
  2. 只能被一次性使用的测试数据不适合这种方式。
  3. “预埋”的测试数据的可靠性远不如实时创建的数据。

On-the-fly 和 Out-of-box 的互补

针对应该选择什么时机创建测试数据,总结了如下三点:

  1. 对于相对稳定、很少有修改的数据,建议采用 Out-of-box 方式。
  2. 对于一次性使用、经常需要修改、状态经常变化的数据,建议使用 On-the-fly 的方式。
  3. 用 On-the-fly 方式创建测试数据时,上游数据的创建可以采用 Out-of-box 方式,以提高测试数据创建的效率。

【心得】
作者这一篇写的太清晰了有木有!!!
仔细看看,作者提到的各种方式都有用到过。但是,可能由于经历的项目没有作者公司的大,团队对于测试数据的准备并没有特别重视,只是觉得能用就好,有些时候效率低一点也能够接受。所以从来没有想过还可以这样好好的总结,并且在不同的时机选择不同的方式,提升效率!
果然还是要做比较复杂的大项目,才能遇到更多的坑,从而提出更优化的解决方式,然后才能有这么详尽的总结和相关的心路历程。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容