分享

搭建QTP初步框架

 杨柳1234 2010-11-19

搭建QTP初步框架

测试技术 2010-06-04 13:13:32 阅读42 评论0   字号: 订阅

选择测试的业务内容:

在业务选择的最初,先由最简单的入手,选择产品中较为核心的功能,同时业务也比较简单,描述如下:

    1、登录待测系统

    2、登录后,在制定模块进行相应配置

虽然描述起来简单,但是要真正做好可就不容易了(这是我的感觉)。

 在本章内容中,我们先要做的是完成‘登录待测系统’这个工作,同时也要把我们的QuickTest基本框架搭建起来。

第一步(把冰箱门打开)

这一步,对于新手来说往往是进入QTP世界最为神圣的一布,也就是脚本录制但对于我这个旧手来说。。。

so,在这里我不具体描述脚本录制的方法,而是把我在录制中实际遇到的问题和解决这些问题所采取的方法拿出来做个分享

公司产品是基于PKI体系的应用产品,登录系统必须要通过https协议,同时在登录系统时,会弹出证书选择窗口,选择管理员证书后,才能真正进入到系统。(这个过程可能没有接触过pki体系产品的人会有些疑惑,我这样做个简单说明,其实就像你在登录sohu的邮箱,需要输入用户名和密码一样,通过https协议来登录时,用一个更高级的安全密码--证书 取代了你用户名口令的输入)

这个登录过程还是很简单的,录制出来的脚本内容也不多,如下:

Browser("Browser").Dialog("选择数字证书").Activate

Browser("Browser").Dialog("选择数字证书").WinListView("您要查看的网站要求标识。请选择证书。").Select "normal"

Browser("Browser").Dialog("选择数字证书").WinButton("确定").Click

Browser("Browser").Dialog("安全警报").WinButton("是(Y)").Click 

这里要注意的是在选择证书时WinListView("您要查看的网站要求标识。请选择证书。").Select "normal"  ,这是我选择的一个名为 normal的证书,这是一张管理员证书,选择后可以正常登录到系统中,而对于证书实际上可以做一些文章,比如,我可以选一张非管理员的证书进行登录,如果也能登录成功,那这个bug可就大了。由于我的目标限于出场测试,出货测试手册中也没有这方面的要求。因此,这项工作省略了(凡事还是需要突出重点地)。

第二步(把大象放进去)

脚本录制完成后,需要对脚本进行一些优化。比如说,添加个检查点啦。登录后添加检查点还是有必要的,因为登录后,我们最先需要判断一下产品的版本,如果版本都错了,在执行测试也没有什么意义,因此增加了如下内容:

Browser("Browser").Page("安全系统").Frame("WorkArea").Check CheckPoint("版本3.7.0.18")

增加检查点并不困难,作为优化,我这里考虑的不仅仅是当前的这个脚本,而是我所有录制的脚本,在今后的运行过程中如何组织,如何更便于维护,如何更具适用性,让任何人拿到我的脚本,只要安装了qtp,就可以通过微小的改动就可以测试他想测试的设备(我可不想所有的设备都由我自己来测)

出于这种想法,我先在电脑中创建了一个目录,F:\TOO\version001\Action,把我录制好的脚本存储到这个目录下,起名action_000_login

然后做了一个实验,把版本检查点进行了参数化处理,处理的方式是,我在外部建立了一个VBS文件,在这个文件里,写了如下的函数:

Public Function Version

 Version="版本3.7.0.18"

End Function

并将这个vbs存储到F:\TOO\version001\lib下(这些目录都是新创建的,里面什么都没有,很干净),名为custome.vbs

接下来,我在我录制的脚本中添加了如下语句:

dim file_vbs_name

file_vbs_name= "F:\TOO\version001\lib\custome.vbs"

ExecuteFile file_vbs_name

Dim version_value

 version_value=Version

最后,我把刚才添加的检查点修改为:

Browser("Browser").Page("安全系统").Frame("WorkArea").Check CheckPoint(version_value)

完成后,我运行了一遍,OK,very nice,非常成功。

可能有人回问:“您这是弄的啥玩艺儿啊~~~”

其实是这样的,我在录制的脚本中,通过ExecuteFile 执行了我前面写的custome.vbs,把这个vbs里的version值去了出来,传给变量version_value,然后让检查点就检查这个变量的值。

那么这样做的意义何在??其实,这个意义就在于,我会把我的一些用例通过文本,或者excel文档在QTP脚本的外部进行维护,通过一些文件调用、读取的方式把这些用例读给QTP脚本,让他来执行我给他的值,这样就更便于我对测试用例及用例值的维护,而不需要每次打开QTP才能维护,更为灵活。

到这一步,殊不知,我们已经悄悄地建立起一个小小的框架了,如果你还没看出来,那也不用着急,在后续的文章中,这个框架会渐渐的壮大起来。

为了能让QTP脚本执行我所指定的一个URL,而不依赖于qtp自身的record and run setting,我又做了如下的工作,在刚才的custom.vbs中,我又增加了几行代码:

Public Function Address

 Address="https://190.160.5.244:6333"

End Function

随即在action_000_login脚本中,增加如下

Systemutil.Run("C:\Program Files\Internet Explorer\IEXPLORE.EXE"),"","","open","3"

browser("Browser").Navigate Address

注意:需要将QTP中 record and run setting 中的设置,调整为record and run test on any open web browser

再次执行,QTP顺利自动打开IE,访问指定的URL进行模拟登录操作

第三步(把冰箱门关上)

为了让QTP执行时,能够把系统中已经打开的IE窗口都关闭,保障运行的唯一性,这样需要在action_000_login脚本中增加如下语句:

Systemutil.CloseProcessByName("iexplore.exe")

再试一试脚本运行,QTP会把所有打开的IE窗口都关闭掉,哦了,这关建的第一部分内容,就完成了

注:文章中提到了一些对象和对象的方法,这里并没有重点说明,有兴趣的朋友可以参考一下QTP自带的帮助文档

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多