数据驱动测试

数据驱动测试是一种软件测试方法,其中测试数据以表或电子表格格式存储。数据驱动的测试允许测试人员输入单个测试脚本,该脚本可以对表中的所有测试数据执行测试,并期望测试输出在同一表中。也称为表驱动测试或参数化测试。

数据驱动框架

数据驱动框架是一个自动化测试框架,在该框架中,从数据文件中读取输入值并将其存储到测试脚本中的变量中。它使测试人员可以将肯定和否定测试用例都构建到单个测试中。数据驱动框架中的输入数据可以存储在单个或多个数据源中,例如.xls,.xml,.csv和数据库。

为什么要进行数据驱动测试?

数据驱动测试非常重要,因为测试人员经常为一个测试提供多个数据集,并且为每个数据集创建单独的测试可能很耗时。数据驱动的测试有助于使数据与测试脚本分开,并且可以针对输入的测试数据的不同组合执行相同的测试脚本,并且可以高效地生成测试结果。

例如,我们要使用包含1000个不同数据集的多个输入字段来测试登录系统。

要对此进行测试,可以采用以下不同方法:

方法1)为每个数据集创建1000个脚本,并逐个运行每个测试。

方法2)手动更改测试脚本中的值,然后运行几次。

方法3)从Excel工作表导入数据。从excel行中逐行提取测试数据并执行脚本。

在给定的三种情况下,前两种情况既费力又费时。因此,遵循第三种方法是理想的。

因此,第三种方法就是数据驱动框架。

如何创建数据驱动的自动化框架

考虑您要测试应用程序的登录功能。

步骤1)确定测试用例

输入正确的用户名和密码-登录成功

输入错误的用户名和正确的密码–登录失败

输入正确的用户名和错误的密码-登录失败

步骤2)为上述3个测试用例创建详细的est步骤

测试用例 描述 测试步骤 测试数据 预期结果

1

检查登录以获取有效凭证

启动应用程序

输入用户名密码

单击确定

检查结果

用户名:有效

密码:有效

登录成功

2

检查登录以获取无效的凭证

启动应用程序

输入用户名密码

单击确定

检查结果

用户名:无效

密码:有效

登录失败

3

检查登录以获取无效的凭证

启动应用程序

输入用户名密码

单击确定

检查结果

用户名:有效

密码:无效

登录失败

创建测试脚本

如果您遵守3个测试步骤,则“测试步骤”仍然很常见。您需要创建一个测试脚本来执行这些步骤

//这是伪代码//测试步骤1:启动应用程序
driver.get(“应用程序的URL”);//测试步骤2:输入用户名
txtbox_username.sendKeys(“ valid”);//测试步骤3:输入密码
txtbox_password.sendKeys(“ invalid”);//测试步骤4:检查结果
If (Next Screen) print success else Fail

使用输入测试数据创建excel / csv

步骤修改凭证以循环输入测试数据。输入命令也应参数化

//这是伪代码
//循环3次
(i = 0; i< = 3; i ++){//从Excel读取数据并将其存储到变量int input_1 = ReadExcel(i,0);int input_2 = ReadExcel(i,1);//测试步骤1:启动应用程序driver.get(“应用程序的URL”);//测试步骤2:输入用户名txtbox_username.sendKeys(input_1);//测试步骤3:输入密码txtbox_password.sendKeys(input_2);//测试步骤4:检查结果是否If(Next Screen) print successelse Fail}

以上只是3个测试用例。仅通过将测试数据值附加到Excel,即可使用测试脚本来循环以下测试用例

  • 输入错误的用户名和错误密码–登录失败

  • 输入正确的用户名和密码为空白–登录失败

  • 输入空白的用户名和密码–登录失败

数据驱动测试的最佳做法:

下面给出的是数据驱动测试的最佳测试实践:

  • 理想的是在数据驱动的测试过程中使用真实的信息

  • 测试流程导航应在测试脚本中编码

  • 利用有意义的数据来驱动虚拟API

  • 使用数据来驱动动态断言

  • 测试正面和负面结果

  • 重新利用数据驱动功能测试的安全性和性能

  • 数据驱动测试的优势

数据驱动具有许多优点,其中包括:

  • 允许在回归测试期间使用多组数据值测试应用程序

  • 测试数据和验证数据只能组织在一个文件中,并且与测试用例逻辑分开。

  • 基于该工具,可以将测试脚本存储在单个存储库中。这使文本易于理解,维护和管理。

动作和功能可以在不同的测试中重复使用。

  • 一些工具会自动生成测试数据。当需要大量随机测试数据时,这很有用,这有助于节省时间。

  • 数据驱动的测试可以执行开发的任何阶段。数据驱动的测试服务通常在单个过程中合并。但是,它可以在多个测试案例中使用。

  • 允许开发人员和测试人员清楚地将测试用例/脚本的逻辑与测试数据区分开。

  • 相同的测试用例可以执行多次,这有助于减少测试用例和脚本。

  • 测试脚本中的任何更改都不会影响测试数据

数据驱动测试的缺点:

  • 测试的质量取决于实施团队的自动化技能

  • 测试大量数据时,数据验证是一项耗时的任务。

  • 维护是一个大问题,因为数据驱动测试需要大量编码。

  • 需要高级技术技能。测试人员可能必须学习全新的脚本语言。

  • 将有更多文档。主要与脚本管理测试基础结构和测试结果有关。

  • 需要使用诸如记事本之类的文本编辑器来创建和维护数据文件。

结论:

数据驱动的是一个测试自动化框架,以表格或电子表格格式存储测试数据。

  • 在数据驱动的测试自动化框架中,输入数据可以存储在单个或多个数据源中,例如xls,XML,csv和数据库。

  • 为每个数据集创建单独的测试是一个漫长且耗时的过程。数据驱动测试框架通过将数据与功能测试分开来解决了此问题。

  • 在数据驱动测试中,使用实际信息是理想的选择

  • 它允许在回归测试期间使用多组数据值测试应用程序

  • 该方法的缺点在于它取决于实施团队的自动化技能

推荐阅读

  • 如何使用PYTHON抓取新闻文章

  • pCloudy的方式–连续测试平台可实现高速,高质量的移动应用程序测试

  • Linux系统下一步到位搭建bug管理系统——禅道

  • 七夕如何向心爱的ta表白,看这里


扫一扫添加小编获取最新资料

什么是数据驱动测试?学习创建框架相关推荐

  1. mysql数据驱动测试_自动化测试框架-数据驱动(2)

    5.使用Excel进行数据驱动测试 测试逻辑: (1)打开百度首页,从Excel文件中读取测试数据作为搜索关键词 (2)在搜索输入框中输入读取出搜索关键词 (3)单击搜索按钮 (4)断言搜索结果页面中 ...

  2. python数据驱动读取用例_Python Selenium 之数据驱动测试

    数据驱动模式的测试好处相比普通模式的测试就显而易见了吧!使用数据驱动的模式,可以根据业务分解测试数据,只需定义变量,使用外部或者自定义的数据使其参数化,从而避免了使用之前测试脚本中固定的数据.可以将测 ...

  3. 不会数据驱动?还不快来看看,教你快速搭建数据驱动测试框架

    导语 说到数据驱动自动化测试,你会不会有这样的疑问:数据怎么管理?数据怎么才能驱动测试用例执行?到底怎么样才算数据驱动?那么本篇文章就教你如何进行数据驱动测试,相信你一定能对数据驱动自动化测试有一个不 ...

  4. Robotium 数据驱动测试框架

    refer to http://controlingquality.blogspot.com/2011/02/design-data-driven-framework-around.html 被测试代 ...

  5. python数据驱动测试设计_GitHub - 13691579846/DataDriverTestFrameWork: python+selenium+pageobject数据驱动测试框架...

    DataDriverTestFrameWork 一.说明 ``本实例为数据驱动测试框架搭建实践`` 二.框架分析 注意!注意!注意!重要的示请说3遍,本项目只用于学习使用,为了你能够成功执行本项目 e ...

  6. Unittest自动化测试框架教程(四)——Python中的数据驱动测试DDT

     " 数据驱动测试DDT(Data Drivern test),是自动化测试领域优势中亮眼的闪光点,在unittest测试框架中对数据驱动更是提供了强大的支持,文章通过基础概念的引入,介绍了 ...

  7. python使用ddt_使用DDT数据驱动测试框架Python

    DDT(数据驱动测试)允许您用不同的测试数据运行一个测试用例,从而使它看起来像多个测试用例. DDT由一个类装饰@ddt(对应您的testcase子类)和两个方法装饰(对于您希望成倍增加的测试)组成: ...

  8. 【Web自动化测试——代码篇十二】自动化测试模型——数据驱动测试和关键字驱动测试...

    自动化测试模型可以看作自动化测试框架与工具设计的思想.随着自动化测试技术的发展,演化为以下几种模型: 线性测试 模块化驱动侧式 数据驱动测试 关键字驱动测试 数据驱动测试 前一篇所讲的模块化驱动测试能 ...

  9. 软件测试-柠檬班python全栈自动化50期测试学习笔记分享

    数组(1174536086)←v是有序的元素序列.用于差异数组的各个元素的数字编号称为下标.若将有限个类型相同的变量的集结命名,那么这个名称为数组名.数组是一个固定长度的存储相同数据类型的数据结构,数 ...

最新文章

  1. MimbleWimble系列之协议介绍
  2. 四则运算-ppt演示
  3. 这周末,清华迎来了最小的学生和最牛的老师,Science都点赞的那种
  4. VTK:网格之WindowedSincPolyDataFilter
  5. 关于element框架的el-image点击后,页面出现卡死等情况的解决方式
  6. aix oracle监听配置_AIX系统中安装ORACLE,客户端连接时,监听会宕掉的问题
  7. matlab破损皮革定位,matlab-code-of-TDOAFDOa 干扰源定位代码,应该在 的求解过程中有帮助。 276万源代码下载- www.pudn.com...
  8. java gc回收堆还是栈_浅析JAVA的垃圾回收机制(GC)
  9. 局域网内两台9303 的管理vlan mac地址冲突解决方法
  10. java webservice
  11. 记于开学两个星期...十九岁快乐!
  12. 汇编语言王爽老师第四版(寄存器解读与实验二)
  13. tongweb自动部署_将web应用迁到TongWeb
  14. 如何确认IAR软件有没有激活
  15. 航班预定系统java源代码_飞机订票系统源代码(Java)
  16. driver接管当前浏览器
  17. (已解决)报错:collect2 error ld returned 1 exit status
  18. IntelliJ IDEA 破解 到2100年到期
  19. spark-大表join优化方案
  20. 笔记本怎么重装系统win11

热门文章

  1. css b加粗怎么用,CSS去掉b加粗和strong加粗标签样式.doc
  2. ArcEngine 入门教程-控件初体验
  3. 存储卡的相关标准.CF.SD.SDHC.MMC.TF
  4. 产业新基建,撬动数字经济发展新机遇
  5. OptaPlanner的新约束表达方式 Constraint Streams
  6. 腾讯云云开发CTA认证题库
  7. Unity3D热更设计:一款基于 HybridCLR的C#热更方案
  8. 2022年终工作总结PPT模板来了~
  9. 红帽linux安装intel(R) wifi link 5100 AGN总结
  10. 对路径“C:\inetpub\wwwroot\Test\Temper\”的访问被拒绝 【已解决】