1.启动
SystemUtil.Run和InvokeApplication
例子:
SystemUtil.Run "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
InvokeApplication "D:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
SystemUtil.Run "iexplore.exe","www.baidu.com",,,3
InvokeApplication "C:\Program Files\Internet Explorer\IEXPLORE.EXEhttp://www.google.cn/"
2.设置环境参数,并读取
1)手动设置:file-settings-environment,选择build in,添加参数和值,并可以导出为xml文件
2)可以自己直接创建修改xml文件,格式如下:
xml文件的格式为:
================================================
<Environment>
<Variable>
<Name>UserID</Name>
<Value>founder</Value>
</Variable>
<Variable>
<Name>pwd</Name>
<Value>112</Value>
</Variable>
</Environment>
=================================================
3)通过语句读xml文件,并设置为环境参数
例子:
Environment.LoadFromFile "G:\qtpscrīpt\peixun\test.xml"
Dim tmp_ID,tmp_pwd
tmp_ID= Environment.Value ("UserID")
tmp_pwd= Environment.Value ("pwd")
msgbox environment.ExternalFileName
msgbox tmp_ID
msgbox tmp_pwd
4)优点:任何action可以调用。
如:设置路径为环境参数,以后脚本转移了,直接修改xml里路径的值就可以了。(?待实践)
3.导出QTP的EXCEL文件,读取默认格式的xls文件(有Global,Action1)
例子:导出excel文件,读取文件,并读取具体字段
Dim tmp_pwd
Datatable.Export "G:\qtpscrīpt\peixun\test.xls"
Datatable.Import "G:\qtpscrīpt\peixun\test.xls"
tmp_pwd = datatable.RawValue("Password","Action1")
msgbox tmp_pwd
4.读取自己定义的xls文件
例子:读取自己定义的xls文件,取值
自己定义的xls文件,取出,替换到ACTION1的值。
Datatable.ImportSheet "G:\qtpscrīpt\peixun\test1.xls",1,"Action1"
'设置当前读取第几行
datatable.SetCurrentRow(2)
tmp_pwd=Datatable.RawValue("Password","Action1")
msgbox tmp_pwd
Dim tmp_user
tmp_user=datatable.RawValue("UserID","Action1")
msgbox tmp_user
5.显示当前执行excel的行数
Dim tmp
datatable.SetCurrentRow(2)
datatable.SetPrevRow
datatable.SetNextRow
tmp=datatable.RawValue("row","Action1")
msgbox tmp
tmp=datatable.RawValue("row","Action1")
msgbox tmp
6.语句调用vbs函数
ExecuteFile "c:\my.vbs"
(注:我的QTP9.5版本不行)
7.for循环
Dim i,j
For i=1 to 10 step 5
For j=1 to 10
print"j."&j
Next
Next
8.重写方法
例子:
Function MySet(obj,x)
MySet=obj.set(x)
msgbox"Myset"
End Function
RegisterUserFunc "WinEdit","Set","MySet"
Dialog("Login").WinEdit("Agent Name:").Set "founder"
UnRegisterUserFunc "WinEdit","Set"
练习:代替click动作
Function MyClick(obj,x)
mySet=obj.click(x)
msgbox"Myclick"
End Function
RegisterUserFunc "WinButton","Click","MyClick"
Dialog("Login").WinButton("OK").Click
UnRegisterUserFunc "WinButton","Click"
9.输出值
Dialog("Login").WinEdit("Agent Name:").Output CheckPoint("Agent Name:_4")
Dim temp
temp=datatable.RawValue("name","Action1")
msgbox temp
10.同步点
Dim temp
temp=Window("Flight Reservation").WinComboBox("Fly From:").Check( CheckPoint("Fly From:_2")) '?????????加+正则表达式??
msgbox temp
11.给action设置参数
手动到Keyword View页面,对action右键-action properties-Parameters,添加参数
msgbox parameter.Item ("userid")
ps:调用Action的方法。。?
12.描述性编程
方法一
sName="Login"
Dialog("text:="&sName,"Class Name:=Dialog").WinEdit("attached text:=Agent Name:").Set parameter.Item ("userid")
Dialog("text:=Login","Class Name:=Dialog").WinEdit("attached text:=Password:").SetSecure parameter.Item("password")
Dialog("Login").WinButton("OK").Click
方法二
set AgentName = Descrīption.Create()
AgentName("attached text").Value = "Agent Name:"
Set MyObj=Descrīption.Create()
MyObj("text").Value="Login"
MyObj("class name").value="Dialog"
Dialog(MyObj).WinEdit(AgentName).Set parameter.Item ("userid")
Dialog(MyObj).WinEdit("attached text:=Password:").SetSecure parameter.Item("password")
Dialog(MyObj).WinButton("text:=OK").Click