|
刚开始学习QTP,写的不是很成熟,本着知识的Open & Share精神,希望能够抛砖引玉,看到大家写的更成熟的源码,并期望得到中肯的意见和建议;
这段代码并不是执行软件测试,而是利用QTP通过超级终端自动的对PHS小灵通机站进行固件版本升级.也算是自动化工具的另一种用法吧!
'********************************************************************************************************
'启动超级终端
invokeapplication "C:\Program Files\Windows NT\hypertrm.exe"
wait(5) '等待系统启动超级终端
Dim soft_url,bs_type
bs_type =Cint( inputbox("1--CS502 2--CS500 3--CS508 4--CS500M","请输入机站类型序号:"))
'判断屏幕是否打印出"press any key......"字符串
Window("超级终端").Activate
Call search_keyword("any")
Window("超级终端").WinObject("Term Class").Type "j"
'判断屏幕是否打印出"下载界面"
Call search_keyword("ESC") '需要注意一下,可能因界面不同而修改
'键入“A”命令,下载A程序
window("超级终端").WinObject("Term Class").Type "a"
soft_url = DataTable.GetSheet(2).GetParameter(bs_type).ValueByRow(1) '获取A程序的URL
Call search_keyword("Complete") '判断ROM Erase是否完成
Call Send(soft_url) '发送A程序
'判断屏幕是否打印出"下载界面"
Call search_keyword("ESC")
'键入“B”命令,下载B程序
window("超级终端").WinObject("Term Class").Type "b"
soft_url = DataTable.GetSheet(2).GetParameter(bs_type).ValueByRow(2) '获取B程序的URL
Call search_keyword("Complete") '判断ROM Erase是否完成
Call Send(soft_url) '发送A程序
'判断屏幕是否打印出"下载界面"
Call search_keyword("ESC")
'键入“P”命令,下载P程序
window("超级终端").WinObject("Term Class").Type "p"
soft_url = DataTable.GetSheet(2).GetParameter(bs_type).ValueByRow(3) '获取P程序的URL
Call search_keyword("Complete") '判断ROM Erase是否完成
Call Send(soft_url) ' 发送A程序
'判断屏幕是否打印出"下载界面"
Call search_keyword("ESC")
'键入“enter”命令,结束下载过程
Window("超级终端").WinObject("Term Class").Type "enter"
'关闭超级终端
Window("超级终端").Close
'提示用户是否关闭,点击“是”
Window("超级终端").Dialog("超级终端").WinButton("是(Y)").Click
'******************************************************************************************
'搜索屏幕中打印出的关键字
Sub search_keyword(keyword)
Dim Strkeyword,Flag,Counter
Counter = 0
Do
Counter = Counter + 1
wait(1)
If Counter > 60 Then '应为60,调试完后修改
msgbox "都快一分钟了,还没响应,重来吧"
Exit do
end if
StrKeyword = Window("超级终端").WinObject("Term Class").GetVisibleText()
Flag =not isnull(StrKeyword)
loop until Flag and instrrev(StrKeyword,keyword) <> 0
End Sub
'*************************************************************************************************
'通过RS232串口发送程序到机站中
Sub Send(url)
Dim Counter
Counter =0
If Window("超级终端").Dialog("为 ma 发送 Xmodem 文件").Exist(1) Then
Window("超级终端").Dialog("为 ma 发送 Xmodem 文件").WinButton("取消").Click
Window("超级终端").Dialog("正在发送文件").WinButton("确定").Click
end if
window("超级终端").WinMenu("Menu").Select "传送(T);发送文件(S)..."
Window("超级终端").Dialog("发送文件").WinComboBox("协议(P):").Select "Xmodem"
Window("超级终端").Dialog("发送文件").WinEdit("文件名(F):").Set url
Window("超级终端").Dialog("发送文件").WinButton("发送(S)").Click
Do while Window("超级终端").Dialog("为 ma 发送 Xmodem 文件").Exist(1)
wait(10)
Counter = Counter + 1
If Counter >180 Then '应为180,调试完后修改
msgbox "已经半个小时了,还没下完,有问题吧?"
Exit do
End If
loop
End Sub
'*********************************************************************************************
[ 本帖最后由 walker1020 于 2008-3-26 23:26 编辑 ] |
|