麦子华华 发表于 2006-8-22 14:29:32

【分享】使用相对路径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,都不能修改,只能删除后重新按相对路径方式插入。

QA_BAY 发表于 2006-8-22 15:01:23

总结得很好,向你学习!

2005hljun 发表于 2006-8-23 09:28:34

这个技巧很不错,正准备有时间把脚本调用都改成相对路径,呵呵。

walker1020 发表于 2006-8-23 11:04:35

补充一点

如果你想把你的QTP 脚本从一台电脑拷贝到另外一台电脑上,那么 只要保证脚本在这两台电脑上的 路径一致就可以了。例如,我的测试脚本在原来电脑的位置是 D:\scropt, 那么把这些测试脚本拷贝到 第二台电脑的 D:\scropt 下,直接运行就可以了。这样不需要进行任何修改了。 我们在演示 QTP 测试脚本的时候就经常用这样方法。

walker1020 发表于 2006-8-23 11:12:42

根据我的理解, 如果是规模大的公司和对测试比较重视的公司(如微软),他们都是有专门的测试部门,对测试人员也划分的比较细。他们也有专门的测试机和测试环境。因此 他们就不会说是发生去改变测试脚本的路径的问题。
如果没有专门的测试机和测试环境,那么我建议把测试机和测试环境相对稳定下来,以减少无用的工作在这些没有什么意思的问题上。

麦子华华 发表于 2006-8-23 14:23:00

有时候从工作机移到测试机上,或者其他的原因,难免会出现绝对路径发生变化的情况。所以如果一开始就都使用相对路径,就可以避免这样的问题,何尝不可呢?!

QA_BAY 发表于 2006-8-23 16:39:53

我的做法就是,把这些外部的ACTION都放在本地目录下面,如果放到其它测试机,那整个目录COPY过去就可以了,不会说是少了哪个,或者放在QC上面也行!

volvoo 发表于 2006-8-23 17:41:22

这个功能意义重大

如果进行版本管理,GET代码的时候要你设置工作目录,如果有了这个功能,工作目录就可以随意设置了,我以前都是用的绝对目录,GET代码的时候必须跟当初上传代码的目录一致,因为开始调试的目录是变化的,记住了绝对目录就很麻烦了。
终于让搂住发现了这个功能,好贴

walker1020 发表于 2006-9-6 20:28:50

好帖,值得收藏!

Salina 发表于 2007-2-27 14:08:12

通过Map Network Driver更好

我是这样做的, 不管在任何环境下,都把存放代码的脚本目录Map到一个虚拟盘符上,比如: Z:\
然后把 Z:\设置在Tools->Option->Folders
这样在任何需要使用QTP脚本的机器,或者需要执行的机器,只要能访问相应的虚拟盘符就可以了.

[ 本帖最后由 Salina 于 2007-2-27 14:11 编辑 ]

jutlin 发表于 2007-5-1 11:58:49

感謝分享

wish_luckyman 发表于 2007-6-22 18:28:37

学习无止境!!!

郁金香 发表于 2007-10-8 15:58:20

MAP?

原帖由 Salina 于 2007-2-27 14:08 发表 http://bbs.51testing.com/images/common/back.gif
我是这样做的, 不管在任何环境下,都把存放代码的脚本目录Map到一个虚拟盘符上,比如: Z:\
然后把 Z:\设置在Tools->Option->Folders
这样在任何需要使用QTP脚本的机器,或者需要执行的机器,只要能访问相应的虚拟盘符就 ...
请问:如何把存放代码的脚本Map到一个虚拟盘符上呢?我不是很明白,麻烦向我解释一下如何操作?

sally_0817 发表于 2008-6-4 16:40:56

当被调用的action路径发生变化时,只要把变化后的路径加入到folders里,脚本便可正常运行。

ltp401128401128 发表于 2008-11-21 15:53:13

好文章啊,这个正是我现在想要的东西,顶一个

songyq521 发表于 2009-5-11 18:35:47

call外部action

我有个疑问,这里的call to existing action 是通过QTP的UI上操作完成,有没有方法通过脚本代码或者编程来完成这个操作呢?!(急)

t95abin 发表于 2009-12-28 11:09:00

学习了,谢谢分享

shuishixingyu 发表于 2010-6-7 09:00:54

正好用到,我还试了半天RunAction
页: [1]
查看完整版本: 【分享】使用相对路径call外部action