iyaw 发表于 2006-4-13 10:51:38

关于自己写的function

请问,能不能把自己写的function放到一个外部文件里去, 然后就象WR自己的函数一样调用? 就象QTP里的vbs一样,只要将这个vbs文件放到resource选项的Associated library files列表里去, 就可以直接调用这些函数,而不需要写成一个脚本,然后先call这个脚本,之后才能调用这个函数呢?

请大侠指教.

生如火花 发表于 2006-4-13 14:39:40

可以做成脚本或者模块保存,用call/load命令调用

iyaw 发表于 2006-4-13 16:22:45

不好意思, 是不是要把这些文件编译成dll?
如果要编译成 dll, WR里应该怎么做呢?

再次感谢!!!

生如火花 发表于 2006-4-13 16:53:58

不用,保存为脚本就可以了

iyaw 发表于 2006-4-13 17:24:50

谢谢版主,
我找到了一个解决办法, 把自己写的function保存为一个脚本, 保存到C:\Program Files\Mercury Interactive\WinRunner\lib, 文件名如 : function_for_Sys, 修改这个的测试属性为compiled,
再用WR打开C:\Program Files\Mercury Interactive\WinRunner\dat\下地脚本 tslinit, 在最后加上一句
"load( m_root & "\\lib\\function_for_Sys",0,1);"
这样,我的脚本里面的function就可以被任何一个其它脚本 调 用了,而不需要再写任何load或call声明了.

不过这样做的一个缺点就是 可移植性不好. 换一台机器, 就可重新去修改一下tslinit, 并复制一份function_for_Sys.

不知版主有什么好的办法.

xihong2004 发表于 2006-4-14 12:44:47

顶一贴

tianyu124 发表于 2006-4-14 15:53:49

多嘴问一下楼主,我现在正在学习wr,C:\Program Files\Mercury Interactive\WinRunner\dat\下的脚本tslinit是做什么用的,您在下面加load语句的作用有是什么?如能回复不胜感激。

iyaw 发表于 2006-4-14 18:20:40

tslinit用于初始化WR, 此时会装载一些WR内置的功能函数.

我在下面加load的语句的目的是让它把我自己写的函数当成系统级的函数装载. 这样,在我的其它脚本里就不用再写任何的load此函数了,这样方便了很多.以后有自己写的通用的函数, 就放到function_for_Sys里去,其它地方都不需要再做申明就可以调用了.

生如火花 发表于 2006-4-17 09:51:26

原帖由 iyaw 于 2006-4-13 17:24 发表
谢谢版主,
我找到了一个解决办法, 把自己写的function保存为一个脚本, 保存到C:\Program Files\Mercury Interactive\WinRunner\lib, 文件名如 : function_for_Sys, 修改这个的测试属性为compiled,
再用WR打 ...
解决办法其实很简单,写个应用程序,装完了WR,再启动你写的应用把你这个文件覆盖原来的就行了。

tianyu124 发表于 2006-4-17 10:21:47

又长见识了,多谢楼主!!

jbmw_dzg 发表于 2006-4-19 15:25:25

你为什么不写个Compile Module的Script,Include你需要的User-defined Functions
and call them in your main test script via reload statement.

iyaw 发表于 2006-4-24 12:40:32

这些是自定义的标准功能函数库, 没有必要每次都去load,让系统一启动就load,就更方便了.
页: [1]
查看完整版本: 关于自己写的function