51Testing软件测试论坛

标题: QTP中主函数与外部调用函数值的传递问题 [打印本页]

作者: qq50505195    时间: 2008-11-2 23:14
标题: QTP中主函数与外部调用函数值的传递问题
我是一个新手,最近在学习简单的QTP框架,今天遇到一个问题,就是如果将对EXCEL表操作的语句封装在一个外部VBS函数中,在TEST中无法调用相关对EXCEL表的语句。(注外部VBS函数通过SETTING里的RESOURCE来添加,我有的是QTP9.2)我可以肯定函数是可以调用到的!
举个简单的例子:TEST 中语句如下:Call inputexcel    ‘inputexcel 外部VBS函数中定义的一个过程名
                                                           msgbox myExcelSheet.Cells(2,2)
                           外部VBS函数如下:Public Sub inputexcel
                                                         Dim fso,excelbook,excelsheet,myExcelBook,myExcelSheet
                                                        Set fso=createobject("Scripting.FileSystemObject")
                                                        Set excelbook=createobject("Excel.Application")
                                                          Set myExcelBook=ExcelBook.WorkBooks.Open("e:\data.xls")
                                                        Set myExcelSheet = myExcelBook.WorkSheets("Sheet1")
                                                     End Sub
运行时,QTP报错缺少对象myExcelSheet
           这时候我认为应该是外部函数的变量作用范围问题,他并不能直接在TEST中直接调用。为了可以值传递我在外部VBS函数中加入如下两句
                    environment.Value("omyExcelSheet")=myExcelSheet
                      Environment.Value("omyExcelbook")=myExcelbook  ‘将变量的值存储到环境两个环境变量中
同时在TEST中加入两句:myExcelbook= Environment.Value("omyExcelbook")
                                        myExcelSheet=environment.Value("omyExcelSheet")
这时QTP报错:对象不支持此属性或方法myExcelbook.我弄了好久都没找出问题来。我现在想问的是:
1、TEST和外部函数中的变量的范围是什么样的,比如外部函数中定义的PUBLIC变量是否可以在TEST中直接使用,反之也一样
2、如果不能使用,我要传递值的时候怎么传递。对(EXCET操作为例)谢谢
e:%5Csnap2e:%5Csnap3
作者: qq50505195    时间: 2008-11-2 23:17
自己来一个。
作者: f84248860    时间: 2008-11-2 23:38
定义全局变量,over
作者: f84248860    时间: 2008-11-2 23:40
或者你用function,然后传递返回值。话说Sub是什么东西?我从来不用的。




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