51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2189|回复: 3
打印 上一主题 下一主题

[求助] qtp调用外部function时遇到的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-12-20 17:15:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我试着搭建一个自动化测试框架:输入一个testfile.xls文件后,经过FUNCTION的处理,输出一个resultfile.xls
现将代码帖出来:
function 放在zhsl028文件里:
public Function zhsl028()


Dim Conn, Rs, Sql



' 创建数据库链接对象
Set Conn =CreateObject("ADODB.Connection")
Conn.ConnectionString ="XXXXXXXXX"
Conn.Open        '打开数据库链接

Set Rs = CreateObject("ADODB.RecordSet")

Sql = " XXXXXXXXXXXXX"


Rs.Open Sql, Conn, 1, 3        '打开记录集
Dim i

For i =1 to 3
datatable.GetCurrentRow

datatable.GetSheet("zhsl028").getparameter("ADSL接入号").valueByRow(i)=Rs("service_nbr")

Rs.MoveNext               


Next



        Rs.close
    conn.close





Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").WebElement("WebTable").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").WebElement("null").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("mm_01").WebList("latnId").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("mm_01").WebList("latnId").Select "H 合肥分公司"
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("mm_01").WebEdit("conditionValue").Click





Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("mm_01").WebEdit("conditionValue").Set DataTable("ADSL接入号", "zhsl028")
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("mm_01").WebButton("查询").Click



'Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Click

wait(6)
If  Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Exist(1)Then
        Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
End If

wait(6)
If  Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Exist(1)Then
        Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
End If



'Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("mm_02").Link("已购销售品").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("menu_down_frame").Link("改速率兼计费方式").Click
'Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
wait(6)
If  Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Exist(1)Then
        Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
End If
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("TAB_P_13982_iframe").WebList("serv_ofr_ext_18").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("TAB_P_13982_iframe").WebList("serv_ofr_ext_18").Select "K 宽带上网卡"
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("TAB_P_13982_iframe").WebList("serv_ofr_ext_114").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("TAB_P_13982_iframe").WebList("serv_ofr_ext_114").Select "20M"
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("mm_02").WebElement("业务经办信息  营销单号:  发展单位:").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("acceptInstInfo").WebButton("确定保存").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("TAB_P_13982_iframe").Link("<全部取消>").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("Frame_2").Link("[订单确认]").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Dialog("Microsoft Internet Explorer").WinButton("取消").Click
Browser("中国电信安徽分公司客户关系管理系统 V3.601").Page("中国电信安徽分公司客户关系管理系统 V3.601").Frame("CustChargeList").WebButton("返回用户查询").Click
zhsl028="pass|succesful"
End Function




主脚本如下:
TestFile = "e:\casesfile.xls"
ResultFile = "e:\resultfile.xls"

caseSheet =1'Specify the case sheet
varSheet = 2 'Specify the var value sheet

datatable.ImportSheet TestFile,1,"Global"
rcnt = DataTable.GetSheet(caseSheet).GetRowCount

iter =1
DataTable.GetSheet(caseSheet).SetCurrentRow iter
For iter = 1 to rcnt

        executeFlag=False       
        DataTable.GetSheet(caseSheet).SetCurrentRow iter       
    ScenarioName=DataTable("casename", caseSheet)
    Datatable("status", caseSheet)= ""
    Datatable("result", caseSheet)= ""
       
   results=eval(ScenarioName)
  
   msgbox results
        status = Split(results,"|")
        Datatable("status", caseSheet) = status(0)
        Datatable("result", caseSheet)= status(1)
        'DataTable.Export ResultFile
        datatable.Export  ResultFile
Next


当我把这俩个脚本合并成一个脚本时,可以正常运行,且结果与预期结果一致.但是,当我把这俩个脚本分开存放时,并在主脚本时调用function时,系统提示出错:
Error in called function.  
detail:Test line (1): "TestFile = "e:\casesfile.xls"".
Error details:
Function file: E:\zhsl028.vbs
Line (23): "datatable.GetSheet("Global").getparameter("ADSL接入号").valueByRow(i)=Rs("service_nbr")".
Description: The Sheet.GetParameter operation failed. The <ADSL接入号> column does not exist.

我已经把这个被调用 的function放到funtiong library中去了source--associated libray file
请问产生这个问题的原因是什么,要怎么解决???
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-12-21 00:24:19 | 只看该作者
    x信息提示:The <ADSL接入号> column does not exist.   ADSL接入号 这一列不存在
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-12-21 10:05:56 | 只看该作者
    看着就头晕!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-12-21 11:50:03 | 只看该作者
    学习
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 17:58 , Processed in 0.072705 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表