作为接触自动化的测试工程师都会接触到关键字视图,好多崇拜自动化的测试工程师,说真正搞大了,搞牛了自动化不需要接触关键字视图。其实真正参与过自动化,反过来思考一下,其实什么都不是绝对的,实际过程中往往许多工作关键字视图与专家视图合理结合回取得速度与效率双重的效果。所以QTP的关键字视图不单单是提供给编程基础不扎实,专家视图使用不熟悉的测试工程师使用,而且也是QTP的一大利器。QuickTest不会无缘无故设计这样一个模块的,亲,你说呢?本篇博文接上篇博文,继续对关键字视图进行深入剖析。
以自带的Flight(C/S)订票系统为案例设计两个测试场景,如下表所示。
测试场景1
| 操作 |
数据 |
期望结果 |
场景1 |
1. 输入用户名 2. 输入密码 3. 点击OK |
正确的数据 用户名/密码 mercury/mercury |
正确登录系统 |
测试场景2
| 操作 |
数据 |
期望结果 |
场景2 |
1. 输入用户名 2. 点击OK |
正确的数据 用户名 mercury |
提示请输入密码的错误信息 |
录制完毕的场景1测试脚本与场景2测试脚本,有相同之处,也有不同之处。
相同之处即两个测试场景都包含对象Agent Name、OK对象,并且记录了对这两个对象执行的操作。不同之处是场景2相比场景1多录制对Password对象,并且记录了对Password对象的操作。
如录制了测试场景2脚本,如何对场景2测试脚本进行维护,实现场景1的需求呢?
测试对象管理一章中通过两步来实现场景2到场景1的变化:
1. 场景2中添加Password对象;
2. 关键字视图中添加Password对象后,设置对Password对象的操作与值。
而维护脚本过程中如需要设计函数、方法等,那又该如何处理呢?而这些工作都可以通过步骤生成器来完成。关键字视图中还可以对对象设定操作、设定逻辑语句等。本章将使用场景1、场景2作为场景案例。
关键字视图中使用步骤生成器可以完成哪些工作呢?
操作步骤的维护。
测试对象、对象属性的维护。
测试对象的操作方法的设置。
添加库函数。
VBScript 函数的调用。
内置函数的调用。
维护对象、插入操作步骤、设置操作方法
1. 录制测试场景2,将测试脚本进行保存,测试脚本命名为添加对象。
2. 将场景2测试脚本另存为场景1测试脚本。打开场景1测试脚本,添加Password对象(借助AS视图)至对象库。
3. 如图所示,切换至关键字视图,鼠标点击关键字视图中的任一空白行。点击菜单栏【Insert】—【Step】—【Step Generator…】或按F7,弹出步骤生成器窗口。
4. 如图所示,步骤生成器窗口中Category选中“Test Objects”,Object选中“Password”,
5. Operation选择“Set”,Arguments中将Text属性值设置为“mercury”。
6. 如图所示,切换至关键字视图中,鼠标左键单击Password对象操作行,通过鼠标拖拽将Password对象拖拽至Agent Name对象。
7. 如图所示,回放测试脚本,可观察到脚本成功回放,实现了场景2至场景1的变化。
通过步骤生成器可插入的对象类别为三类,如下所示:
测试对象(Test Objects)— 通过该选项可选择插入步骤中的测试对象和方法。
实用程序对象 (Utility Objects)—通过该选项可选择插入步骤的实用程序对象和方法。
函数(Functions Objects)— 通过该选项可以使用内部或外部的引用函数,并设定函数的参数值。
参数列表
如图所示,无论是插入测试对象(操作步骤),还是使用内置函数都需要设定参数,而参数列表中列出了测试对象或函数中需要赋值的参数。可通过三种方式给参数赋值:数据表、环境变量、随机数。
参数列表中,参数包括三种类型:
强制参数 - 参数名称后面有一个红色星号 (*),该参数必须要填写。
可选参数 - 参数名称后面没有红色星号 (*),可以为参数指定参数值或者不设置任何值。
已参数化的参数 - 通过单击参数化按钮(<#>) ,可设定参数值或通过DataTable、Environment或Randmon Number进行参数化。