数据驱动测试中的参数化技术-软件功能测试自动化实战教程(2)

发表于:2015-3-31 08:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:周焕来、贾海涛    来源:51Testing软件测试网原创

  2.2.5  数据驱动测试中的参数化技术
  数据驱动测试是以数据来控制自动化测试的流程和动作,那么它的首要任务就是对测试脚本中的常量进行参数化,参数化就是针对脚本中的某些常量使用参数来取代。当不同的虚拟用户在执行相同的脚本时,分别调用参数文件中的数据代替这些常量,从而达到模拟多用户真实使用的目的。
  1.参数化设置的原因
  参数化的过程体现了数据驱动的思想,即将测试脚本与测试数据进行分离的思想。脚本体现了测试流程,数据体现测试案例。总的来说,进行参数化的原因主要体现在以下两个方面:
  ① 借助参数化可以减小脚本的数量,如果不进行参数化为了达到目标可能需要拷贝并修改很多个脚本。
  ② 使业务更接近真实的客户业务,每个虚拟用户使用不同参数值来模拟,这样可以更好地接近客户的实际情况。
  2.参数化设置的任务
  参数化设置的作用主要用于扩大测试的覆盖面,提高测试的真实性、灵活性。那么在数据驱动测试中参数化要完成的任务主要包括以下两点:
  (1)在录制的脚本或者手工编写的脚本中用参数取代常量值;
  (2)设置参数的属性以及数据源(这些数据源可能来自工具自带的数据表,也可能来自外部数据源)。
  3.参数化设置的种类
  参数化设置的种类主要包括数据表、环境变量、随机数、外部数据源等参数化类型。下面将对数据表、环境变量、随机数及外部数据源参数化进行一个简单的介绍。
  (1)数据表(Data Table)方式参数化
  数据表方式参数化针对一些自带DataTable对象的自动化测试工具而言,这种参数化设置方式可应用于 HP公司的QTPLoadRunner等自动化测工具中。数据表是参数化设置中最容易实现的一种方式。
  值得注意的是,数据表参数化方式要注意设置数据表数据的运行方式。运行方式概括来说可以分为全局和局部设置。
  ① 全局设置,即设置整个逻辑业务过程的运行方式。当运行方式设置为运行全部或多行时,运行几行数据,整个逻辑业务过程就要回放几次。
  ② 局部设置,即设置局部逻辑业务过程的运行方式。当运行方式设置为运行全部或多行时,运行几行数据,该逻辑业务过程就要回放几次。
  (2)随机数(Random)参数化
  随机数参数化主要用于一个逻辑业务过程中某个步骤的值随着上一个步骤的值而发生改变的测试中。比如,选择航班这个步骤,航班号会跟随所选择的起点和终点而变化。因此,随机数参数化是一个特殊处理这种情况的一个方法。随机数参数化可设置以下几点:
  ① 可以指定随机数的范围。
  ② 可以为该随机数指定名称,同时需要指定该随机参数产生新随机数的方式。这种情况下该随机数可以在别处使用。
  随机数参数产生新随机数的方式包括三点:
  a.迭代运行相同的动作随机数不变化,它是指运行不同动作才重新产生一次,随机数在一个动作中保持不变。
  b.在每一个测试运行的完整过程中随机数保持不变。重复执行该测试的时候随机数变化。
  c.在整个测试中随机数保持不变,相当于只产生一次随机数。
  (3)环境变量(Environment)参数化
  ① 环境变量的来源有两种:内部环境变量和用户自定义环境变量。内部环境变量是自动化测试工具(QTP)默认定义的一组变量,包括一些系统信息、项目信息等。用户定义的环境变量需要用户自己定义变量名和值,支持从外部导入,比如格式为XML文件。
  ② 环境变量作参数有一定局限性,它对数据操作没有数据表灵活,环境变量用的最多的还是数据的共享。
  ③ 环境变量作参数时,每个参数值都需要指定,而且不能批量生成,所以它有一定的应用场景:当一个测试中的不动作需要同样一个参数,用环境变量去参数化常量是个很好的方法;其次就是不同的测试需要用到同样的参数时,用环境变量可以很好解决这个问题。
  (4)外部数据源参数化
  外部数据源参数化是把脚本中常量进行参数化后,将测试的数据存放于外部文件或数据库中。值得注意的是,对外部数据源参数化设置运行方式时是利用脚本语言直接在脚本中进行编写,而不是按照Data Table方式进行设置。
  2.2.6  数据驱动测试中的数据源
  数据驱动测试中重要的一步就是定义好数据源。数据驱动测试的数据源可以来自工具自带的数据源,比如DataTable;也可以来自外部数据源,比如文本文件形式、Excel文件形式、XML文件、数据库等。
  以文本文件存储数据源,在数据文件中,每一行代表要做的一个测试动作,并用分号分隔开要输入的数据,然后在循环中访问数据文件,每次读入一行。
  文本文件作为数据源的缺点就是需要自己定义数据之间的分隔符,并且在读入数据行需要用Split函数来进行切割处理。如果采用Excel文件作为数据源则可以免去这个麻烦,因为Excel本身就是用于数据表格的存储的。
  除了以上两种方法外,还可以采用数据库表作为数据源,可以通过ADO来连接数据库。通过ADO连接数据库,关键是指定好连接串格式。
本文选自《软件功能测试自动化实战教程》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关文章
数据驱动测试技术-软件功能测试自动化实战教程(1)
精选软件测试好文,快来阅读吧~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号