51Testing软件测试论坛

标题: 关于自己写的function [打印本页]

作者: iyaw    时间: 2006-4-13 10:51
标题: 关于自己写的function
请问,能不能把自己写的function放到一个外部文件里去, 然后就象WR自己的函数一样调用? 就象QTP里的vbs一样,只要将这个vbs文件放到resource选项的Associated library files列表里去, 就可以直接调用这些函数,而不需要写成一个脚本,然后先call这个脚本,之后才能调用这个函数呢?

请大侠指教.
作者: 生如火花    时间: 2006-4-13 14:39
可以做成脚本或者模块保存,用call/load命令调用
作者: iyaw    时间: 2006-4-13 16:22
不好意思, 是不是要把这些文件编译成dll?
如果要编译成 dll, WR里应该怎么做呢?

再次感谢!!!
作者: 生如火花    时间: 2006-4-13 16:53
不用,保存为脚本就可以了
作者: iyaw    时间: 2006-4-13 17:24
谢谢版主,
我找到了一个解决办法, 把自己写的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
顶一贴
作者: tianyu124    时间: 2006-4-14 15:53
多嘴问一下楼主,我现在正在学习wr,C:\Program Files\Mercury Interactive\WinRunner\dat\下的脚本tslinit是做什么用的,您在下面加load语句的作用有是什么?如能回复不胜感激。
作者: iyaw    时间: 2006-4-14 18:20
tslinit用于初始化WR, 此时会装载一些WR内置的功能函数.

我在下面加load的语句的目的是让它把我自己写的函数当成系统级的函数装载. 这样,在我的其它脚本里就不用再写任何的load此函数了,这样方便了很多.以后有自己写的通用的函数, 就放到function_for_Sys里去,其它地方都不需要再做申明就可以调用了.
作者: 生如火花    时间: 2006-4-17 09:51
原帖由 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
又长见识了,多谢楼主!!
作者: jbmw_dzg    时间: 2006-4-19 15: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
这些是自定义的标准功能函数库, 没有必要每次都去load,让系统一启动就load,就更方便了.




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2