收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
软件测试 > QTP > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

关于QTP中“相对路径”的使用技巧及原理

来源:互联网 日期:2013-09-26 07:30

  引言:大家都知道,在实际的自动化项目运用中,相对路径设置的重要性,QTP自然也是!我们知道,用QTP做自动化项目,需要将各个模块细分化,写脚本编写思路也是将一个个业务模块进行分解编程,经常要用到Call to Existing Action这个功能,用来调用外部可共享的脚本。现在假设我的脚本A的保存路径位置是:D:实验脚本集脚本A,OK,此时我重新建立新脚本,脚本名就叫我的调用脚本实验吧。这个脚本的作用就是专门用来调用外部脚本的,调用方法暂时略过,下面讲解。OK,假设现在我们调用外部脚本“脚本A”的时候,使用了绝对路径,即:D:实验脚本集脚本A,好,此时,你的兄弟或者姐妹或者领导要看你的脚本,并且要运行下!你很开心地把脚本拷给别人,用的U盘居然还是名牌“金士顿”的,传输的真快,一会会就拷给对方了,正当你得意之时,其实,你已经面临着一场灾难,胜过玛雅人的预言的一场大灾难,这个堪比“2010”的灾难是什么?原来,你兄弟或者姐妹或者领导将这个脚本集存放在了E盘下,我靠~打开脚本一看。。。完蛋了~只见QTP无情的提示:Missing Action:Action1 From Test:脚本A,瞬间世界安静了。。。 呵呵,好了,不开玩笑了,只是借此来表达出设置“相对路径”的重要性,所以在调用外部脚本时,请务必选择“相对路径”。

  正文:其实说到这里,也还是没有到重点,关于设置相对路径的方法和重要性,其实已经有前人写过类似的文章了,可以BAIDU搜寻下,不难找到!但是我发觉,前人所写的文章并没有彻彻底底的描述清楚,不知道是叙述不清晰(因为前人文章貌似没有图文注解)还是压根他们自己都没彻底的完全搞清楚,导致了这个文章其实并没有多少指导意义!最多只是让大家了解到了有相对路径这么一个概念和重要性而已!当然,我们还是要感谢前人,我也正是先从研究他们的文章来彻底搞清楚QTP关于相对路径的使用技巧和原理的。由于以前做项目我也不关注路径问题,最近吃了亏,原因反正就是和上面的小故事差不多吧,所以痛定思痛,下定决心一定要把QTP的设置相对、绝对问题搞的明明白白!因为今朝的疏忽、得过且过会导致以后的无法弥补。

  好了,先开始用图文的方式写出整个使用过程,中间再穿插一些原理介绍和技巧。

  第一步:我在E盘下建立了这么一个文件夹路径:E:试验脚本,我将要建立的两个QTP脚本会放到这个路径下

  第二步:准备开始创建两个脚本了,名字分别为:我是被外部调用的脚本、调用脚本吧

  先写“我是被外部调用的脚本”的脚本内容吧,很简单,一句话:MsgBox "我被调用成功了!",OK,保存下,保存在那个路径下面

  然后要写“调用脚本”了,脚本内容就是:RunAction "Action1[我是被外部调用的脚本]", oneIteration,很明显,我只在这个脚本内做了调用的操作

  下面,也顺便的过一遍基础知识,用图文并茂的方式,关于怎么调用,以及怎么设置绝对路径和相对路径等,我的QTP10.0的,其它版本可能有稍许不同,但也差不到哪去,都一个妈生的

  1、

  2、

  3、弹出这个界面

  4、这里要节约上传资源,不截图了,出来个Open Test的界面,选择你要调用的脚本,双击,我们这里选择“我是被外部调用的脚本”

  5、选择后,会出现这个Dialog框

  6、还是为了节约资源,这里就不截图了,跳出这个Dialog框后有两个选择,Yes Or NO,选择Yes,则添加为相对路径,选择No,则添加为绝对路径,添加成功后要看添加的是相对的还是绝对的,在左侧试图Test Flow对准那个Action右键,然后点击Action Properties,如果是相对路径的话,Location:我是被外部调用的脚本Action1,如果是绝对路径的话,Location:E:试验脚本我是被外部调用的脚本Action1,我们这里不介绍绝对路径,所以选择添加为“相对路径”,点击Yes。

  7、OK,到这一步,调用外部脚本成功(添加的是相对路径),也自动生成了这么一句代码:RunAction "Action1 [我是被外部调用的脚本]", oneIteration

  插一句:好了,整个过程大家都明白了吧,呵呵,相对路径添加好了,大事告成,这下安逸了,随便别人怎么蹂躏QTP都不会出问题了,我管你放到A盘还是B盘下,我是相对路径我怕啥!呵呵,这么简单?这么简单,我今天写这篇文章干嘛? 你错了,就搞到这里,你试试看,让你的兄弟或者姐妹或者领导把盘符换成D盘好了,脚本不丢失,你打我! 接下来,正是讲解相对路径的精髓部分,大家瞪大眼睛,忍住呼吸,仔细往下看,开始讲解QTP关于相对路径的工作原理了,万物原理最重要了。

  第三步:点击Tools-->Options-->,选择Folders,来到这个界面,见图

  开始讲解了:其实,我们在刚才设立了相对路径后,QTP自动的在这里生成了一个路径,这个路径才是起作用的路径:我们来拼装下,图里的路径是:E:试验脚本,那么还记得之前设置成相对路径后的Location吗?是什么?是:我是被外部调用的脚本Action1,你把他们两“拼接”起来,路径就是:E:试验脚本我是被外部调用的脚本Action1,看到了吗?其实,即使你刚才设置的是相对路径,其实!它仍然是一个“绝对路径”!其实直到这一步,前人们还是有写到的,但是这个原理,以及之后的内容,就再也搜索不出来了。。。至少,我没看到过带有中文字的。。。现在你懂了吧?你还敢得意忘形的随意让其他人将你的脚本随意放在哪个文件夹下吗?呵呵~要是放到其它文件夹,可以,但是需要手动去重新配置下路径,就在这里配置的!但是这样,也太不方便了吧!好了,接下来,就教大家如果让QTP自动的去识别到路径,让“相对路径”真正的发挥其作用。

  第四步:分析和运用、彻底透析和掌握

  1、我们先来看这张图,图中,我尝试着把路径设置为D:试验脚本,此时,文件夹的右下角出现了一个小小的“问号”,这就说明,脚本找不到了,MISS了,原因是什么?很简单,因为这个路径下并没有我想要的脚本

  2、那么,我把路径改成../,各位看官再看看图中,什么效果,呵呵,是不是惊奇的发现“问号”消失了?!

  3、到这里,才是真正的设置成为真正意义上的相对路径(相对路径知识点就不讲解了,百度下吧~)!点击Apply,点击OK,圆满完成。

  4、接下来试试效果吧,我把“E:试验”这个文件夹剪切到F盘下吧(不想再用D盘举例),打开脚本“调用脚本”,你看看,还会不会出现MISS的情况,如果MISS,借用周立波的一句话,你把我送到神经病医院 ,这个时候说明,真正意义上的相对路径设置成功了

  5、还没结束呢,看官您在看看图中,看看什么变化!

  可以看到,路径从E盘自动的变成了F盘了,咦?我刚才不是明明设置成../的嘛,怎么变成这样的,其实这是正确的, 说明../相对路径起作用了,如果你放到B盘,QTP一样会自动的把路径变成B:试验脚本,呵呵~

  6、来,我们再来做个试验,帮HP公司免费测试一下QTP,我增加几个目录,把我的2个脚本放在F:试验123脚本下,增加了3层文件夹,看看相对路径还是不是管用,仍然先设置成../,我们来看看效果,见图:

  呵呵,还是自动能识别到的啦

  经过实验,初步断定,Search List存在不稳定因素或者BUG,大多为显示上的缺陷,实质性是有作用的

  稍作举例和说明,见下图:

  如图,第一点,QTP在搜索到相对路径后,会自动识别为当前路径,假设第一条,大家看下,如果这个LIB在E盘下,那么它也会自动识别成E盘下。。。的LIB文件夹,这点肯定没问题,

  然后我在试验中发现其实显示上并不稳定,比如我设置了../../../底层脚本/公共,../../../底层脚本/前台,../../../底层脚本/后台,../../../底层脚本/集体,这样4个相对路径列表,然后我的脚本里正好有3个脚本针对前台、后台、集体但是没有脚本是针对公共的,打开以后,所以脚本无论放到哪个盘符下,都不会出现MISS了,功能性没有问题,但是显示肯定是有问题的,比如大家看图中,他自动合并成了脚本中并没有的“公共”,而且这样的显示也并不稳定,捉不到规律

  我们再看看,我有意点击一个NEW,创建新脚本,意思就在于让这些路径都读不到应该有的脚本路径,那么他们自然会变成问号状态,而现在的显示结果呢?不但我设置的5,6个路径没有全部出来,图中只出来一个../../../底层脚本/前台,而且居然另外两条的显示还是“显示为在读到脚本相对路径的情况下”的显示方法

  总结下:这一块还是有点问题的,经过我的实验,如果高人比较通略这块的话,请回帖,包括我自己也非常想知道这块到底是BUG还是我的误操作,或者其他,目前初步也只能断定,这块有显示BUG了~好了,关于这个文章就写到这吧,大家踊跃讨论

  更正:又有新发现,每次点击TOOLS--OPTIONS--FOLDERS,都会每次新显示一条路径。。。大家可以试试~我断定,这个就是BUG,呵呵~

  其实,写这篇文章是为了帮助更多的新人了解这个机制,也不光是新人啦,相信很多用QTP很久的人也不是很了解这个机制!包括我自己玩QTP2年了,今天也才彻彻底底地想到去研究下,因为迫不得已啊,不可能永远设置成绝对路径吧,太不方便了!我很用心的在写,只是希望大家看了文章,可以回复一下下啦,小顶我一帖,这也对写手是一种动力和鼓励吧,别总是剑过不留名~

  原帖地址:http://bbs.51testing.com/viewthread.php?tid=182276&extra=&page=1

版权声明:本文由会员yujie6832首发于51Testing软件测试论坛。

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号