数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索

这篇具有很好参考价值的文章主要介绍了数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UI自动化测试用例剖析

让我们先从分析一端自动化测试案例的代码开始我们的旅程。以下是我之前写的一个自动化测试的小Demo。这个Demo基于Selenium与Java。由于现在Selenium在自动化测试的统治地位,并且随着Selenium 4的即将发布,在未来很长的一段时间里这种统治地位应该还会持续,所以我的这篇文章还都是基于Selenium与Java的。

数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展
自动化测试小Demo

它要测试的东西其实是要看一下百度搜索能不能返回兴业银行的官网。我们分析一下这段代码都包含些什么东西。

第一,这段代码包含了定位符。熟悉Selenium的都知道,inpubBox和searchButton就是网页的元素,通过By.id实例化,然后driver在findElement 的时候是通过他们的id,就是”kw”和”su”找到他们的。所以”kw” 和”su”就是他们的定位符。

数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展
定位符

第二,这段代码包含测试数据。“兴业银行”,“兴业银行欢迎您”就是测试要输入的数据。
数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展

测试数据

第三部分没前面两部分那么直观。这段代码在基于”kw”找到inputBox后,往里填入“兴业银行”四个字,然后点击了searchButton提交搜索申请,然后在搜索结果里面寻找“兴业银行欢迎您”的text,然后以是否找到这个text作为assert的标准。这些测试步骤反映的是真实的业务逻辑, 并且不能随意更换顺序。所以第三部分是业务逻辑。数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展
业务逻辑

第四部分是业务逻辑里面的每一个步骤的具体操作,例如输入某段文字,或者点击一个按钮等。具体到我们的例子就是sendKeys和click。

数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展

具体操作

第五部分就是如果把前面四部分都抽出去后,测试代码剩下的东西,基本上就是一些负责准备或者是清理的代码,例如初始化driver等。我把它称为代码骨架。

经上分析,一个自动化测试用例由五部分组成:定位符、测试数据、业务逻辑、具体操作、代码骨架。
数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展
UI自动化测试结构

数据驱动的自动化测试

如果把测试数据抽取出去,通过数据的改变驱动自动化测试的执行,最终引起测试结果的改变,就是数据驱动的自动化测试。说白了,就是测试数据参数化。
数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展

数据驱动

数据驱动的自动化测试适合测试场景与业务逻辑相对简单,变化不是特别大,但是测试数据对测试结果影响大的情景,或者是需要通过大量不同的测试数据对相同的测试场景展开测试的情景。它实现的方式比较简单,但由于业务逻辑还是镶嵌于测试代码里面的,业务逻辑与测试代码还是强耦合的,一旦业务场景发生改变,需要修改测试代码来适应业务的变化。

想要隔离业务对测试代码的影响,就必须使用关键字驱动的方法。

关键字驱动的自动化测试

简单来说,关键字驱动的自动化测试,就是在数据驱动的基础上,把具体操作抽取到代码以外,通过具体操作的改变来驱动测试的执行。这里的说的关键字其实就是具体的操作,例如例子里面的sendKeys和click。但由于具体操作(关键字)是基于业务逻辑的,要想把关键字抽取,业务逻辑也得一同抽取,才能实现真正的关键字驱动。同时,具体操作的对象是定位符定位的元素,所以定位符也必须得一同抽取出代码意外,才能完全隔离业务对代码的影响。数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展

关键字驱动

基于关键字驱动的自动化测试适合业务场景复杂,测试步骤繁多的情景,又或者是希望搭建统一测试平台的情景。它最大的优点是使得不懂编程的业务人员可以在不需要读懂代码的情况下,通过更改配置,自由添加新的测试用例或修改现有的测试用例。这一点在敏捷开发里面相当实用,可以把业务卷入到测试当中,让测试用例的准备工作尽可能提前;另外,测试代码与要测试的业务逻辑完全隔离,同一份测试代码可以复用于不同的测试场景,较少了重复开发的成本。但是,它也不是完全没有缺点。首先,并不是所有场景都需要基于关键字驱动的,有些场景数据驱动的方法能解决的话就应该果断选用数据驱动,而不应该过度设计;第二,由于业务逻辑与代码隔离了,代码的可读性将大大降低,单纯的代码基本没有业务含义,要想通过读测试代码来了解业务,基本是不可能了。牺牲了代码的可读性来换取可重用性。第三,由于代码复用了,每一个测试用例的执行都相当于一次全新的测试,这意味着如果不加额外处理,测试报告将被互相覆盖,永远都只保留最后一个测试用例的执行结果。

一个关键字驱动的自动化测试例子

这是我很早之前写的一个关键字驱动的自动化测试的Demo。基本的想法是把定位符、测试数据、业务逻辑、具体操作多抽取到一个叫做testCase.properties的文件。Parameter用于存贮从testCase.properties读出来的属性,主测试类TestBankIndex通过读取这个文件来驱动测试的执行。关键字所对应的具体操作放在了PageAction里面。

在testCase.Properties里面,通过testCaseNameList来定义测试用例名字,中间用|分割开。testCaseNameList以下,是每一个测试用例的具体测试步骤。每个测试步骤名字以测试用例名字作为前缀,并且其排列顺序就是测试步骤的顺序。然后测试步骤的值以测试所需的操作(关键字)、定位方式、定位表达式、测试数据、超时时间排列得来,中间以|分割。这里有一个比较特别的是断言。如果是断言的话,会有Keyword,用于断言的判断。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索,软件测试,python,开发语言,功能测试,软件测试,自动化测试,程序人生,职场和发展文章来源地址https://www.toymoban.com/news/detail-825689.html

到了这里,关于数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试之数据驱动与关键字驱动

    目录 1.录制/回放的神话 2.数据驱动的自动化测试框架 3.驱动的自动化测试  初次接触自动化测试时,对数据驱动和驱动不甚理解,觉得有点故弄玄须,不就是参数和函数其嘛!其实其也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展

    2024年02月17日
    浏览(47)
  • 自动化测试框架之关键字驱动和数据驱动

    文章架构 1.什么是驱动 2.什么是数据驱动 3.数据驱动和驱动的关系 4.数据驱动和驱动结合进行测试的实施流程 5.案例 1.什么是驱动? 驱动是自动化测试框架设计的核心内容,可以解决代码冗余、可读性、维护性、代码复用性等问题。 比如,

    2024年02月14日
    浏览(42)
  • 如何搭建关键字驱动自动化测试框架?这绝对是全网天花板的教程

    目录 1. 驱动自动化测试介绍 2. 搭建驱动自动化测试框架 步骤1:选择测试工具 步骤2:定义测试用例 步骤3:编写测试驱动引擎 步骤4:实现测试库 步骤5:执行测试 3. 实现驱动自动化测试的关键技术 技术1:测试工具 技术2:测试驱动引擎的编写 技

    2023年04月20日
    浏览(72)
  • python+selenium自动化测试关键字驱动

    page2

    2024年02月11日
    浏览(48)
  • Robot Framweork之UI自动化测试---Selenium2Library常用关键字

    在项目实际自动化测试过程中,主要用到了Selenium2Library库里的一些和内置包BuiltIn的,今天我们就来分享下Selenium2Library常用。 我们把操作主要分为六大类: 一)浏览器操作 二)文本输入 三)点击操作 四)选择/取消选择 五)检查点 六)其他 插播一个小

    2024年02月14日
    浏览(39)
  • Python Selenium 关键字驱动

    目录 项目目录结构  action目录 config目录 exceptionpictures目录 log目录 testCases目录

    2024年02月05日
    浏览(54)
  • scanf和strcpy这类关键字和函数为什么不安全,使用VS编译会报错

    首先先说解决方法: 在程序最顶端加入这个代码段 这主要是微软的 C 运行时库实现将这些函数标记为不安全,主要原因是这些函数缺乏对输入长度的边界检查,容易导致缓冲区溢出漏洞。 会产生这样的报错: 即: C4996    \\\'strcpy\\\': This function or variable may be unsafe. Consider usin

    2024年02月13日
    浏览(49)
  • 【C语言】scanf和strcpy这类关键字和函数为什么不安全,使用VS编译会报错

    首先先说解决方法: 在程序最顶端加入这个代码段 这主要是微软的 C 运行时库实现将这些函数标记为不安全,主要原因是这些函数缺乏对输入长度的边界检查,容易导致缓冲区溢出漏洞。 会产生这样的报错: 即: C4996    \\\'strcpy\\\': This function or variable may be unsafe. Consider usin

    2024年02月14日
    浏览(59)
  • 数据库--SQL关键字的执行顺序

    数据库-- 数据类型 : http://t.csdn.cn/RtqMD 数据库-- 三大范式、多表查询、函数sql: http://t.csdn.cn/udJSG 数据库-- MySQL增删改查: http://t.csdn.cn/xkiti select   from   join   where   group by   having   order by   聚合函数   limit   top  以及逻辑运算符not  and    or    一: 语法顺序    

    2024年02月12日
    浏览(51)
  • ORA : 无法找到期望的FROM关键字 大数据

    ORA : 无法找到期望的FROM 大数据 大数据在现代社会中发挥着越来越重要的作用。它是指规模庞大、复杂度高且变化迅速的数据集合,通过分析这些数据,我们可以获得有价值的信息和洞察力。然而,在处理大数据时,我们经常会遇到各种挑战和问题。本文将探讨一个常

    2024年02月04日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包