多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

自动化测试之数据驱动测试中的参数化技术

更新时间:2022-02-14 09:36:07 作者:多测师 浏览:352

  数据驱动测试是以数据来控制自动化测试的流程和动作,那么它的首要任务就是对测试脚本中的常量进行参数化,参数化就是针对脚本中的某些常量使用参数来取代。当不同的虚拟用户在执行相同的脚本时,分别调用参数文件中的数据代替这些常量,从而达到模拟多用户真实使用的目的。

  1.参数化设置的原因

  参数化的过程体现了数据驱动的思想,即将测试脚本与测试数据进行分离的思想。脚本体现了测试流程,数据体现测试案例。总的来说,进行参数化的原因主要体现在以下两个方面:

  ① 借助参数化可以减小脚本的数量,如果不进行参数化为了达到目标可能需要拷贝并修改很多个脚本。

  ② 使业务更接近真实的客户业务,每个虚拟用户使用不同参数值来模拟,这样可以更好地接近客户的实际情况。

  2.参数化设置的任务

  参数化设置的作用主要用于扩大测试的覆盖面,提高测试的真实性、灵活性。那么在数据驱动测试中参数化要完成的任务主要包括以下两点:

  (1)在录制的脚本或者手工编写的脚本中用参数取代常量值;

  (2)设置参数的属性以及数据源(这些数据源可能来自工具自带的数据表,也可能来自外部数据源)。

  3.参数化设置的种类

  参数化设置的种类主要包括数据表、环境变量、随机数、外部数据源等参数化类型。下面将对数据表、环境变量、随机数及外部数据源参数化进行一个简单的介绍。

  (1)数据表(Data Table)方式参数化

  数据表方式参数化针对一些自带DataTable对象的自动化测试工具而言,这种参数化设置方式可应用于 HP公司的QTP、LoadRunner等自动化测工具中。数据表是参数化设置中最容易实现的一种方式。

  值得注意的是,数据表参数化方式要注意设置数据表数据的运行方式。运行方式概括来说可以分为全局和局部设置。

  ① 全局设置,即设置整个逻辑业务过程的运行方式。当运行方式设置为运行全部或多行时,运行几行数据,整个逻辑业务过程就要回放几次。

  ② 局部设置,即设置局部逻辑业务过程的运行方式。当运行方式设置为运行全部或多行时,运行几行数据,该逻辑业务过程就要回放几次。

  (2)随机数(Random)参数化

  随机数参数化主要用于一个逻辑业务过程中某个步骤的值随着上一个步骤的值而发生改变的测试中。比如,选择航班这个步骤,航班号会跟随所选择的起点和终点而变化。因此,随机数参数化是一个特殊处理这种情况的一个方法。随机数参数化可设置以下几点:

  ① 可以指定随机数的范围。

  ② 可以为该随机数指定名称,同时需要指定该随机参数产生新随机数的方式。这种情况下该随机数可以在别处使用。

  随机数参数产生新随机数的方式包括三点:

  a.迭代运行相同的动作随机数不变化,它是指运行不同动作才重新产生一次,随机数在一个动作中保持不变。

  b.在每一个测试运行的完整过程中随机数保持不变。重复执行该测试的时候随机数变化。

  c.在整个测试中随机数保持不变,相当于只产生一次随机数。

  (3)环境变量(Environment)参数化

  ① 环境变量的来源有两种:内部环境变量和用户自定义环境变量。内部环境变量是自动化测试工具(QTP)默认定义的一组变量,包括一些系统信息、项目信息等。用户定义的环境变量需要用户自己定义变量名和值,支持从外部导入,比如格式为XML文件。

  ② 环境变量作参数有一定局限性,它对数据操作没有数据表灵活,环境变量用的最多的还是数据的共享。

  ③ 环境变量作参数时,每个参数值都需要指定,而且不能批量生成,所以它有一定的应用场景:当一个测试中的不动作需要同样一个参数,用环境变量去参数化常量是个很好的方法;其次就是不同的测试需要用到同样的参数时,用环境变量可以很好解决这个问题。

自动化测试之数据驱动测试中的参数化技术

  (4)外部数据源参数化

  外部数据源参数化是把脚本中常量进行参数化后,将测试的数据存放于外部文件或数据库中。值得注意的是,对外部数据源参数化设置运行方式时是利用脚本语言直接在脚本中进行编写,而不是按照Data Table方式进行设置。

  自动化测试之数据驱动测试的概念

  数据驱动测试是从数据文件(如Excel文件、文本文件、XML文件或数据库等)中读取测试数据,然后通过变量传入事先编写或录制好的测试脚本中,这些变量既可传递测试输入数据也可传递测试输出的验证数据。测试数据只出现在数据文件中,测试脚本负责测试逻辑业务过程、测试状态以及数据文件读取,因此,测试数据和测试脚本是分开存放的。数据文件中的每一行表示一组测试数据,通过循环遍历数据文件中的每一行,将数据逐一注入到相同的测试流程进行反复的测试验证。

  数据驱动测试框架可减少为实现所有测试用例而需要编写的脚本数量,只需少量脚本即可产生大量测试用例,降低脚本创建和维护成本;测试数据单独存放于数据文件中便于修改和维护;数据存放结构清晰简单,有利于测试结果分析和错误跟踪。

  然而,数据驱动测试的开发和实现需要测试人员对测试脚本语言具有一定的专业基础。数据驱动的测试适应于对相同流程进行大数据量测试且测试结果可被预期的情况;当需要对不同流程进行测试时会受到限制,未提供良好机制适应被测程序的变动,一旦应用程序功能上发生变动,测试脚本和测试数据都可能需要发生相应的改动。

  数据驱动测试技术的来源

  自动化测试框架系统就是针对手工测试效率低,覆盖面不全等问题产生的。自动化测试技术,简单来说就是用计算机按照特定的流程或商业逻辑来模拟用户执行的操作,比较软件执行实际结果与预期结果的差别,将执行的结果记录到日志文件中去的过程。由于计算机能够做到执行重复的操作,并且每一次的操作都是无差异性的,从而弥补了手工测试对单一重复操作的不足,增强了过去纯手工测试过程。自动化测试是测试行业智能化中很重要的一个体现,这个转变大大提高了工作效率。

  软件自动化测试技术发展大致经历了三个阶段。第一个阶段是基于GUI的测试,这种测试检验了标准的GUI对象和控件。测试脚本是非结构化的,并且不可维护。在第二个阶段中,脚本编写者发展了"建立结构良好、健壮的、可维护测试"的能力,其关键特征是测试脚本组件的可重用性。测试自动化的第三个阶段的特征是控制了测试资源。在这个级别上,测试设计和测试自动化被看成是相互分开的行为。

  对于传统的自动化测试技术,即其发展的前两个阶段,当遇到数据输入改变、程序流改变和管理应用程序改变等情况时,由于被改编的数据都是经过硬编码的,若要改变或修改它们,必须编辑或重新记录脚本,这必将消耗大量的时间,达不到自动化测试应有的效果。传统自动化测试失败的主要原因是与捕获/回放方法相关联的维护的负担。而第三阶段的用户却用一个不同的方式使用脚本,即单个脚本处理每个测试用例。数据驱动测试是以此为基础的,将数据包含在数据文件中,并且数据控制自动化测试脚本执行的流程和动作。利用数据驱动自动化测试,既可以改善自动化测试初期比较耗时的情况,又便于自动化测试脚本后期的维护。

  2.1.3 数据驱动测试技术的特点

  自动化测试是对录制和编辑好的测试步骤进行回放,然而测试回放的只是录制时做出的界面操作以及输入的测试数据,或者是脚本编辑时指定的界面操作和测试数据。这种自动化测试方式,其缺点是非常明显的,就是测试覆盖面比较低。

  数据驱动方式的测试脚本开发是解决这类问题的重要手段。它的核心就是从数据文件中读取输入数据,将数据与测试脚本分离,从而可以在不修改测试脚本的情况下通过更新测试数据完成对测试用例的增加、更改和删除。通过变量的参数化,将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。测试脚本的开发和维护是数据驱动自动化测试的重要环节,适当地调整和增强测试脚本实现少的脚本,大量的测试数据。因此,数据驱动测试的主要特点是提高了测试脚本的灵活性,增加测试覆盖面,以及提高应对测试对象变更的能力。

  数据驱动测试技术的适用测试阶段

  数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。数据驱动测试注重于测试软件的功能性需求,也即数据驱动测试使软件工程师派生出执行程序所有功能需求的输入条件。数据驱动测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。

  黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。

  黑盒测试试图发现以下类型的错误:

  a.功能错误或遗漏;

  b.界面错误;

  c.数据结构或外部数据库访问错误;

  d.性能错误;

  e.初始化和终止错误。

  鉴于数据驱动测试的测试功能,基于数据驱动的自动化测试可以在单元测试、集成测试、系统或验收测试等任何层次中执行。

  以上内容为大家介绍了自动化测试之数据驱动测试中的参数化技术,希望对大家有所帮助,如果想要了解更多接口自动化测试相关知识,请关注多测师。https://www.aichudan.com/xwzx/


联系电话

17727591462

返回顶部