本节书摘来自异步社区《软件功能测试自动化实战教程》一书中的第6章6.3节参数化测试,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.3 参数化测试
软件功能测试自动化实战教程
在UFT中可以通过把测试脚本中固定的值替换成参数的方式来扩展测试脚本,这个过程也叫参数化测试,能有效地提高测试的灵活性。

6.3.1 通过参数化测试来提高测试的灵活性
可以通过参数化的方式,从外部数据源或数据产生器读取测试数据,从而扩大测试的覆盖面,提高测试的灵活性。

在UFT中,可以使用多种方式来对测试脚本进行参数化,数据表参数化(Data Table Parameters)是其中一种重要的方式,还有环境变量参数化(Environment Variable Parameters)、随机数参数化(Random Number Parameters)等。

下面以自带的“Flight”程序为例,介绍如何对测试脚本进行参数化。假设在名为“航班预订”的订票界面中,输入航班信息后,插入订票记录,然后希望重新打开该记录,检查航班信息中的终点的设置是否正确,录制的测试脚本如图6-2所示。


提示:
对于这样一个测试脚本,仅能检查特定的航班订票记录的正确性,如果希望测试脚本对多个航班订票记录的正确性都能检查,则需要进行必要的参数化。
6.3.2 参数化测试步骤
首先,把测试步骤中的输入数据进行参数化,例如航班日期、航班始点和终点等信息。下面,以“输入终点”的测试步骤的参数化过程为例,介绍如何在关键字视图中对测试脚本进行参数化。

(1)选择“终点:”所在的测试步骤行,单击“值”列所在的单元格,如图6-3所示。


(2)单击单元格旁边的“< # >”按钮,或按快捷键“Ctrl+F,则出现如图6-4所示的界面。


提示:
在这个界面中,选择“参数”,在旁边的下拉框中选择“Data Table”,在“名称”中输入参数名,也可接受默认名,在“数据表中的位置”中可以选择“全局表”,也可以选择“当前操作表(本地)(U)”,它们的区别是参数存储的位置不同。
(3)单击“确定”按钮,在关键字视图中可看到,“值”值已经被参数化,替换成了如图6-5所示。


(4)这时,选择菜单“视图→数据”,则可看到如图6-6所示的界面。


可看到,在“p_Item”列中有一个默认数据“Frankfurt”,这是参数化之前录制的脚本中的常量,可以在“p_Item”列中继续添加更多的测试数据。

提示:
可以双击修改“p_Item”列名,让其可读性更强,例如,改成“FlyTo”。
(5)把其他几个数据也参数化,如图6-7所示。


运行时,就会从如图6-8所示的数据表格中提取数据来对测试过程中的各项输入进行参数化。


6.3.3 使用随机数来进行参数化
对于选择航班这个测试步骤的参数化来说会有所不同,因为航班会跟随所选择的起点和终点而变化,因此,需要做特殊的处理。如下列代码所示。


先通过访问Get ItemsCount属性,获取航班列表的行数,然后使用RandomNumber随机选取其中一项。最后再通过Select方法选择航班。参数化后的测试步骤如图6-9所示。


提示:
使用随机数也是测试脚本参数化的一种重要方法,在测试代码中,可用RandomNumber来实现,在关键字视图编辑的界面如图6-10所示,其效果与在脚本中直接编辑是一样的。


6.3.4 参数化检查点
测试脚本的最后一个测试步骤是检查订票记录中的航班终点是否正确,同样需要进行适当的参数化,具体方法如下。

(1)单击检查点所在测试步骤的“值”列中的单元格,如图6-11所示。


(2)单击旁边的按钮,则出现如图6-12所示的界面。


(3)在“配置值”中选择“参数”后,可单击“确定”按钮接收默认的设置,也可单击旁边的编辑按钮,在如图6-13所示的界面中,进行参数化的详细设置。


在“参数”中,选择“Data Table”;可在“名称”修改参数名,或接受默认的命名,产生如图6-14所示的数据列,也可以选择“FlyTo”,因为检查点所指的航班终点得到的预期值应该与测试步骤中选择航班终点时的输入数据一致,否则认为错误。


6.3.5 设置数据表格迭代方式
把测试步骤和检查点的参数化工作都完成后,可得到如图6-15所示的测试步骤。


运行这个测试脚本之前,还要做一些必要的设置,选择菜单“文件→设置”,出现如图6-16所示的测试设置界面,切换到“运行”页,在“数据表迭代”中,可设置数据表格的迭代方式。


运行,得到测试结果。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

《软件功能测试自动化实战教程》—第6章6.3节参数化测试相关推荐

  1. 《软件功能测试自动化实战教程》—第6章6.7节文件数据源的数据驱测试

    本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.7节文件数据源的数据驱测试,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区"异 ...

  2. 《软件功能测试自动化实战教程》—第6章6.4节Action测试输入的参数化

    本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.4节Action测试输入的参数化,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区&quo ...

  3. 《软件功能测试自动化实战教程》—第6章6.5节使用环境变量的参数化

    本节书摘来自异步社区<软件功能测试自动化实战教程>一书中的第6章6.5节使用环境变量的参数化,作者51Testing网 , 周焕来 , 贾海涛,更多章节内容可以访问云栖社区"异步 ...

  4. 《Kali Linux渗透测试的艺术》—第2章2.3节安全测试方法论

    本节书摘来自异步社区<Kali Linux渗透测试的艺术>一书中的第2章2.3节安全测试方法论,作者[英]Lee Allen , [印尼]Tedi Heriyanto , [英]Shake ...

  5. 《精通软件性能测试与LoadRunner最佳实战》—第1章1.1节软件测试基础

    本节书摘来自异步社区<精通软件性能测试与LoadRunner最佳实战>一书中的第1章1.1节软件测试基础,作者于涌 , 王磊 , 曹向志 , 高楼 , 于跃,更多章节内容可以访问云栖社区& ...

  6. 【Mybatis从入门到实战教程】第一章 Mybatis 入门

    一.Mybatis 入门 1.1 什么是MyBatis MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了goo ...

  7. 【转载保存】Lucene 实战教程第六章 Lucene 的精确、包含、集合查询 Query 的简单使用

    原链接:https://www.xttblog.com/?p=3532 所有的搜索基本上都存在精确匹配,包含等操作.Lucene 中同样存在这样的操作,今天我们以 IntPoint 为例,来说说 Lu ...

  8. 1个G带你学软件测试项目实战教程:《学车不》APP测试

    APP测试不会做?软件测试不熟练?别着急,今天就帮助大家走出这个困境,分享一套APP测试项目教程,视频有1个G的压缩包,内容挺多,建议跟随课程,看起来! 课程内容: 1. APP测试基础知识(架构.发 ...

  9. qt 多个模型如何显示在表格中_Qt MOOC系列教程 第五章第四节:QML中的C++模型

    我们已经多次讨论过如何创建自己的模型来表示QML中的数据,并且在上一节中我们看到了QStandardItemModel的基本示例.通常,出于性能和功能方面的原因,需要从一开始就要实现自己的模型.QAb ...

最新文章

  1. AI探索(二)Tensorflow环境准备
  2. Linux操作系统下软件的安装方法大全
  3. IDEA中安装Free Mybatis plugin插件实现从dao层到mapper层自由跳转
  4. java applet 游戏_Java Applet实现五子棋游戏
  5. Java Poi 向excel中插入图片
  6. python 时分秒毫秒_python将时分秒转换成秒的实例
  7. Linux下查看CPU使用率 --- top命令的使用
  8. MyBatis 实例
  9. 创建二叉树的代码_解二叉树的右视图的两种方式
  10. c/c++教程 - 1.9 指针 空指针 野指针 const修饰指针 指针常量 常量指针 指针和数组 指针和函数
  11. cad关闭图层的快捷命令是什么_36个CAD快捷键命令,18个CAD制图技巧,学会轻松玩转CAD...
  12. Flutter报错 Navigator operation requested with a context that does not include a Navigator.
  13. Linux 定时任务详解
  14. 如何设计财务对账系统 —— 从0到1搭建对账中心实战
  15. 小样本不符合正态_尿液样本HPV分型检测用于宫颈癌筛查的可能性
  16. cts测试如何跳过某个模块不测过
  17. 短时傅里叶变换(STFT)及matlab
  18. OpenGL学习笔记(十五)
  19. mysql 中的1064_错误代码:mysql中的1064
  20. 关系模式分解为BCNF,分解过程中关系依赖集为空集问题,欢迎大家解答

热门文章

  1. 10W+的爆款文章都是如何写出来的?
  2. python 操作windows DNS
  3. CSS 实现父组件半透明,子组件不透明
  4. 物联网LoRa系列-24:LoRa终端--PingPong应用程序常见问题解析
  5. Linux 系统基础知识
  6. android编译集成dialer应用,Android Dialer应用程序
  7. 用Java写股票查询系统
  8. 【Sparse-to-Dense】《Sparse-to-Dense:Depth Prediction from Sparse Depth Samples and a Single Image》
  9. python项目-爬取妹子图
  10. 小程序传布尔_拥抱和传布禅宗编码