QTP—Web测试

功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。这里使用自动化测试工具QTP(现UFT),进行一些基本的操作,不谈QTP测试机制,测试原理,只是单纯的使用工具。

QuickTest Professional(QTP)原来属于Mercury Interactive公司产品,2006年7月MI公司被HP收购,现在属于HP旗下产品,最新版改名简称UFT,这里使用12.00的版本(文中还是习惯性叫QTP),方便破解使用。这里测试对象为飞机订票系统。测试前先注册账号。

下载地址:http://pan.baidu.com/s/1geIivDL

一、安装

注意:XP、2003、Vista这些操作系统不再被支持! 支持的浏览器:(尽量使用IE)
IE8、9、10、11
Firefox10、17、24ESR、27
Chrome17-26、27-29、30、31、32
Safari6、6.1、7

安装过程比较简单,注意使用管理员权限安装,防止出错。一路下一步,改改安装路径就可以了,安装好之后就可以打开使用了。

二、破解

QTP安装好之后打开桌面快捷方式HP Unified Functional Testing,出现许可证警告,程序试用30天,继续即可,许可证时间到期后,删除许可证文件再次激活,一直使用使用试用模式即可无限用,12.00版本之后的QTP该功能已被HP修复。

具体操作:

  • 删除C:\ProgramData隐藏目录下的SafeNet Sentinel文件夹
  • 运行QTP安装目录下的bin\instdemo.exe
  • 重新运行QTP/UFT 12后即可恢复30天试用

三、录制脚本

打开桌面快捷方式HP Unified Functional Testing,一次点击文件->创建->测试->GUI测试->改名(非必选)->创建。即可创建一个测试项目。过程与VS基本一致。

点击录制开始录制脚本,会先让你进行设置,这里测试的时订票网站,所以选Web,依次输入地址,选择浏览器即可开始录制。

录制时程序会自动打开IE(上面设置的)浏览器,载入设置的地址,然后在网站进行操作,操作完成后点击关闭浏览器,点击停止即可完成录制并生成脚本。点击运行脚本检查脚本录制是否正确。

  • 注意:运行前都要关闭浏览器,否则测试不了。

可以看到脚本还原了之前录制时的所有步骤,出现如下图所示即为脚本正确。

四、插入检查点

顾名思义,插入检查点就是检查网站在这一步是否做了这个动作,以及相关数据是否正确。
比如在输入用户名后添加检查点,右键选择插入标准检查点。

按照次序依次设置后,即可在下方数据->action1中看到表格列名变成了userName_value,此时在下方输入数据即可作为检查时的对比数据,(也可以在设置值时直接使用常量来对比,为了下一步的参数化这里使用操作表的形式来完成)。

发现脚本中多了一行Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Check CheckPoint("userName"),这就是检查点,也可以点击左边action1下面的 本地 查看检查点情况。

这时再次运行脚本即可查看测试结果。如下图,可以看到检查通过,可以设置多个检查点,方法都是一样的。

五、参数化

比如说我要测试大量的用户名密码组合看是否出错,如果我用上一种设置检查点的方法,需要运行多次才能达到这个效果,QTP提供了一种参数化的方法,就是把所有的测试数据放在表中(QTP有Global和Local两种表,global就是所有action都能用,local就是当前action用,以action命名,可以在数据中查看),QTP循环执行脚本,测试表中的数据。

这里只对登陆进行参数化测试,不进行后面的订票操作。

1.修改脚本

QTP脚本基本语法可见另一篇博客:QTP自动化测试之VBScript基础

我们只进行登陆的参数化设置,需要修改脚本,在测试完一条数据后,需要判断是否登录成功,然后返回到主页面,测试下一条数据,直到测试完成。所以在脚本中删除订票多余的脚本,只保留登陆的语句,增加判断的语句,如果想测试完整的订票流程,在登陆成功时,加上订票的脚本即可。

在修改脚本的过程中有一个问题,那就是:判断完是否登录成功后,如何通过脚本返回主界面。
这里需要自己添加对象,然后生成脚本。具体步骤:

首先观察页面:用户名、密码正确时:

用户名、密码错误时:

都需要点击左边面板的home返回主界面。所以这里需要一个像之前,点击登录的那句脚本,类似的脚本,如何得到这句脚本呢,当然还是自动生成。

首先把这个home添加到本地对象库中,以用户名、密码正确时为例:首先IE开着,访问订票网站,输入用户名密码进入,回到QTP双击本地,打开对象存储库,选择将对象添加到本地,这时会看到IE界面,点击home就完成了添加到本地对象库的操作。

生成想要的脚本。点击查看->工具箱,找到自己刚刚添加的对象home,双击,即可生成脚本,这句脚本的含义就是用户名密码正确时点击home返回主界面。同理添加用户名密码错误时的脚本。

最后给出写好的一个脚本示例,每次完成测试后需要加上关闭浏览器的脚本,否则会报错。
即:
Browser("Welcome: Mercury Tours").CloseAllTabs

2.设置数据与程序迭代

参数化要从表单中读取数据,首先做好数据。点击数据,选择Global,双击列A即可修改列名,双击单元格即可写入数据,与Excel操作一致。依次输入想要测试的数据,用户名,密码等,如下图所示:

其中name是用户名,pass是密码,result是登陆状态(用户名密码可以登录,写success,不可以登陆留空)。

右键解决方案中测试项目,选择设置,在运行中,选择在所有行上运行,表示QTP会在所有数据行上依次迭代测试。

3.设置读取表单

点击查看->关键字视图。

找到脚本中username,点击值后面的配置值,弹出窗口,选择参数,全局表,名称name(上一步设置的用户名列名),然后同样的修改password字段。

完成以上几步后,就可以点击运行脚本查看运行效果。

坚持原创技术分享,您的支持将鼓励我继续创作!