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

网友投稿 850 2022-11-28

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

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

1.参数化设置的原因

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

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

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

2.参数化设置的任务

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

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

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

3.参数化设置的种类

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(4)外部数据源参数化

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

2.数据驱动测试中的数据源

数据驱动测试中重要的一步就是定义好数据源。数据驱动测试的数据源可以来自工具自带的数据源,比如DataTable;也可以来自外部数据源,比如文本文件形式、Excel文件形式、XML文件、数据库等。

以文本文件存储数据源,在数据文件中,每一行代表要做的一个测试动作,并用分号分隔开要输入的数据,然后在循环中访问数据文件,每次读入一行。

文本文件作为数据源的缺点就是需要自己定义数据之间的分隔符,并且在读入数据行需要用Split函数来进行切割处理。如果采用Excel文件作为数据源则可以免去这个麻烦,因为Excel本身就是用于数据表格的存储的。

除了以上两种方法外,还可以采用数据库表作为数据源,可以通过ADO来连接数据库。通过ADO连接数据库,关键是指定好连接串格式。

上一篇:大数据和机器学习有什么区别
下一篇:数据驱动测试技术概述
相关文章

 发表评论

暂时没有评论,来抢沙发吧~