51Testing软件测试论坛

标题: 请问:QTP脚本中怎样调用QTP的专用函数 [打印本页]

作者: loveyatou1101    时间: 2010-3-31 13:36
标题: 请问:QTP脚本中怎样调用QTP的专用函数
网络上看了很多QTP的专用函数,例如:  
QTP_WriteFile(pathway,words)  '写文件函数(追加) 文件路径 写入内容 
Function QTP_WriteFile_Change(pathway,words) '写文件函数(改写)  文件路径  写入内容
QTP_Read_Excel(pathway,sheetname,x,y) '读Excel文件元素  文件路径 工作表名  行值 列值
QTP_Write_Excel(pathway,sheetname,x,y,content) '写Excel文件元素并保存退出 文件路径 工作表名 行值 列值 写入内容
请问在QTP脚本中假如要用到QTP_Read_Excel(pathway,sheetname,x,y)这个函数,应该怎么写呢?直接写QTP_Read_Excel("D:\text.xls","sheet1",1,1)是不行的。
疑问:既然是QTP专用函数,为什么不能直接引用呢?是不是我的方法不对?如果是我的方法不对,那么应该怎么调用QTP的专用函数呢?谢谢!附件中是QTP专用函数

[ 本帖最后由 loveyatou1101 于 2010-3-31 14:18 编辑 ]
作者: shotstar    时间: 2010-3-31 13:50
你要清楚每个函数的意思,以及是否有返回值。
QTP_Read_Excel("D:\text.xls","sheet1",1,1),像这个应该是读取文件某个单元格的值的,那么他肯定有返回值,你直接运行他也没有意义。你需要把这个值赋值给变量,例如
text=QTP_Read_Excel("D:\text.xls","sheet1",1,1)
msgbox text
这样来用。
对于没有返回值的函数,比如上面的那个WriteFile,可能直接执行就行了,不过要看具体代码,也许会有true和false的返回值用来判断是否成功写文件了,那么也要用变量来赋值使用。
作者: loveyatou1101    时间: 2010-3-31 14:14
原帖由 shotstar 于 2010-3-31 13:50 发表
你要清楚每个函数的意思,以及是否有返回值。
QTP_Read_Excel("D:\text.xls","sheet1",1,1),像这个应该是读取文件某个单元格的值的,那么他肯定有返回值,你直接运行他也没有意义。你需要把这个值赋值给变量, ...


谢谢,我使用的是: msgbox QTP_Read_Excel("D:\text.xls","sheet1",1,1),运行报错,报错信息为:类型不匹配: 'QTP_Read_Excel'
Line (1): "msgbox QTP_Read_Excel("D:\text.xls","sheet1",1,1)".
根据报错信息可以知道,显然QTP脚本在运行过程中,找不到这个函数,因为以上函数是QTP专用函数,为什么会找不到呢?需要什么配置吗?还是……
自己写个Excel读取数据的函数是可以正常使用的,我的理解是:既然是QTP专用函数,那么应该是QTP内置的才对啊?难道也是外部函数,这样说好象有点说不过去吧?既然是自己的函数,为什么还要加载后才能使用呢?这不是多此一举吗 ?真不理解,为什么这些函数称为QTP专用函数,而在脚本中却又不能直接调用
作者: shotstar    时间: 2010-3-31 14:25
你的函数是否加载进去了?
我看了一下,这些专用函数只是个名称而已,其实本质还是用vbs写的。你要把函数加载到resources里或者直接加到代码里。
我看了你的附件,里面都只是名称而已,没有具体的实现代码,你需要找到他们具体的实现代码才能用。我估计起这个名字的人是想说这些函数是专门给QTP用的,于是简称QTP专用函数了。QTP好像没太多内置函数,基本上帮助里都可以找到,我记得是U开头的那个帮助文件,你去QTP的帮助目录里找一下。
所以上面那些函数,你要找到具体的代码。
作者: loveyatou1101    时间: 2010-3-31 14:51
原帖由 shotstar 于 2010-3-31 14:25 发表
你的函数是否加载进去了?
我看了一下,这些专用函数只是个名称而已,其实本质还是用vbs写的。你要把函数加载到resources里或者直接加到代码里。
我看了你的附件,里面都只是名称而已,没有具体的实现代码,你需要 ...


谢谢!本以为那些函数既然是专用函数,那么就应该是QTP的内置函数了,所以通过函数名称就可以直接调用了,被那个“专用”给忽悠了,呵呵,本以为有了那些专用函数,就省了自己写函数了,哎!原来是场梦
作者: mote    时间: 2010-3-31 15:06
多练习,凡事需要过程!




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