【分享】使用相对路径call外部action
使用相对路径call外部action有很多好处。当test所在路径变化时,只要外部action所在的test的相对路径没变,且文件名没变,那么路径不管怎么变化,对外部action的call都有效,否则只要一改变路径,external action都不可用。使用相对路径的方法:
1).首先,在Tools > Options > Folders里,把存放脚本的路径加进来。比如你有test1, test2脚本文件,都放在路径d:\QTP_Test下,
那么加入路径d:\QTP_Test。
2).在test1中插入test2中的reusable actionA的方法:在Insert call to existing Action的对话框中,From test栏不要点击浏览按钮,而是直接输入test2,然后Action下拉框中会自动列出test2中可重用的action,此时选中actionA,并确定。
3).验证是否是以相对路径的方式插入外部Action: 在刚插入的actionA上点击右键,Action Properties,在Location栏中显示的应该是test2\actionA,那么就对了。如果显示的是d:\QTP_Test\test2\actionA,说明还是以绝对路径的方式插入的,只要d:\QTP_Test 的路径变了,所有的外部Action都不能访问。
比较麻烦的是,原来用绝对路径方式插入的action,都不能修改,只能删除后重新按相对路径方式插入。 总结得很好,向你学习! 这个技巧很不错,正准备有时间把脚本调用都改成相对路径,呵呵。
补充一点
如果你想把你的QTP 脚本从一台电脑拷贝到另外一台电脑上,那么 只要保证脚本在这两台电脑上的 路径一致就可以了。例如,我的测试脚本在原来电脑的位置是 D:\scropt, 那么把这些测试脚本拷贝到 第二台电脑的 D:\scropt 下,直接运行就可以了。这样不需要进行任何修改了。 我们在演示 QTP 测试脚本的时候就经常用这样方法。 根据我的理解, 如果是规模大的公司和对测试比较重视的公司(如微软),他们都是有专门的测试部门,对测试人员也划分的比较细。他们也有专门的测试机和测试环境。因此 他们就不会说是发生去改变测试脚本的路径的问题。如果没有专门的测试机和测试环境,那么我建议把测试机和测试环境相对稳定下来,以减少无用的工作在这些没有什么意思的问题上。 有时候从工作机移到测试机上,或者其他的原因,难免会出现绝对路径发生变化的情况。所以如果一开始就都使用相对路径,就可以避免这样的问题,何尝不可呢?! 我的做法就是,把这些外部的ACTION都放在本地目录下面,如果放到其它测试机,那整个目录COPY过去就可以了,不会说是少了哪个,或者放在QC上面也行!
这个功能意义重大
如果进行版本管理,GET代码的时候要你设置工作目录,如果有了这个功能,工作目录就可以随意设置了,我以前都是用的绝对目录,GET代码的时候必须跟当初上传代码的目录一致,因为开始调试的目录是变化的,记住了绝对目录就很麻烦了。终于让搂住发现了这个功能,好贴 好帖,值得收藏!
通过Map Network Driver更好
我是这样做的, 不管在任何环境下,都把存放代码的脚本目录Map到一个虚拟盘符上,比如: Z:\然后把 Z:\设置在Tools->Option->Folders
这样在任何需要使用QTP脚本的机器,或者需要执行的机器,只要能访问相应的虚拟盘符就可以了.
[ 本帖最后由 Salina 于 2007-2-27 14:11 编辑 ] 感謝分享 学习无止境!!!
MAP?
原帖由 Salina 于 2007-2-27 14:08 发表 http://bbs.51testing.com/images/common/back.gif我是这样做的, 不管在任何环境下,都把存放代码的脚本目录Map到一个虚拟盘符上,比如: Z:\
然后把 Z:\设置在Tools->Option->Folders
这样在任何需要使用QTP脚本的机器,或者需要执行的机器,只要能访问相应的虚拟盘符就 ...
请问:如何把存放代码的脚本Map到一个虚拟盘符上呢?我不是很明白,麻烦向我解释一下如何操作? 当被调用的action路径发生变化时,只要把变化后的路径加入到folders里,脚本便可正常运行。 好文章啊,这个正是我现在想要的东西,顶一个 call外部action
我有个疑问,这里的call to existing action 是通过QTP的UI上操作完成,有没有方法通过脚本代码或者编程来完成这个操作呢?!(急) 学习了,谢谢分享 正好用到,我还试了半天RunAction
页:
[1]