|
我试着搭建一个自动化测试框架:输入一个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
请问产生这个问题的原因是什么,要怎么解决??? |
|