QTP - 脚本相关收集
1)生产随机数列
第一种方法
randomize\'更新反回的数据
funcation rand(k,n)
n="int((k-1)*rnd+1) rand=n
end funcation
第二种方法
n="randomnumber.value(1,255)
2)wintreeview一些操作
选择一个条目:wintreeview.select(item)\'根是0
根的名称:wintreeview.getitem(0)
3)QTP中用代码连接数据库
Set Conn = CreateObject("ADODB.Connection" )
str="DRIVER=Oracle in OraHome92;SERVER=192.168.0.1;DBQ=testdb;user id=test; password=test"
Conn.open str
Set Rs = CreateObject ("ADODB.Recordset" )
sql = "select * from user_table t where table_name = \'XXX\' "
Rs.open sql,conn\',1,3
4)QTP如何测试鼠标右键菜单
以QTP附带的订票网站sample为例,edit控件username鼠标右键,点击paste(第4个菜单项)
cur_replay_type = Setting.WebPackage("ReplayType")
\'Run mouse operations using the mouse, if 1 using browser events
Setting.WebPackage("ReplayType") = 2
Browser("Browser").Page("Welcome: Mercury Tours").WebEdit("userName").Click micRightBtn
Setting.WebPackage("ReplayType") = cur_replay_type
index=4
Set WshShell = CreateObject("Wscrīpt.Shell")
For i = 1 To index
WshShell.sendKeys "{DOWN}"
Next
WshShell.sendKeys "{ENTER}"
Set WshShell = nothing
5)QTP测试页面字体颜色的办法
set obj = Browser().Page().WebElement().Object
\' Get the object
set iStyle= obj.currentstyle
\' Get the attribute
sColor = iStyle.color
6)从QC自动启动qtp如何自动加载插件
\'此函数用于加载指定Test所有的插件,若要运行Test可自己加个qtApp.Test.Run
Function Load_Addins(testPath)
Dim qtApp \'As QuickTest.Application
Dim blnNeedChangeAddins
Dim arrTestAddins
Set qtApp = CreateObject("QuickTest.Application")
arrTestAddins = qtApp.GetAssociatedAddinsForTest(testPath)
blnNeedChangeAddins = False
For Each testAddin In arrTestAddins
If qtApp.Addins(testAddin).Status <> "Active" Then
blnNeedChangeAddins = True
Exit For
End If
Next
If qtApp.Launched And blnNeedChangeAddins Then
qtApp.Quit
End If
If blnNeedChangeAddins Then
Dim blnActivateOK
blnActivateOK = qtApp.SetActiveAddins(arrTestAddins, errorDescrīption)
If Not blnActivateOK Then
Call ErrorLog(errorDescrīption) \'这里是调用自己的日志函数,可替换为自己的或注释掉
Wscrīpt.Quit
End If
End If
If Not qtApp.Launched Then
qtApp.Launch
End If
qtApp.Visible = True
qtApp.Open testPath
\'可在此加入qtApp.Test.Run来运行Test
Set qtApp = Nothing
End Function
7)换行符
vbcr----chr(13)回车符
vblf----chr(10)换行符
vbcrlf----chr(13)+chr(10)结合
type(chr(13)就相当于按了一上键盘上的enter
8)防程序中断方法
On error resume next
On error goto 0
9)"is+*"类型function
isarray \'是否是数组
isconnected \'判断QTP是否连接到TD
isdate \'是否是合法的日期类型
isempty \'判断是否初始化
isNull \'判断是否为空值
isNumeric \'判断是否是数字型
isobject \'判断是否一个功能对象
isready \'判断设备是否准备就绪
isRootFolder \'是否是根目录
10)WScript.Shell的一些应用
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{ENTER}" \'模拟键盘进行操作
WshShell.AppActivate "Calculator" \'启动应用程序
\' 利用粘贴板,实现中文输入
strCopy = "软件测试."
Set bjIE = CreateObject("InternetExplorer.Application")
objIE.Navigate("about:blank")
objIE.document.parentwindow.clipboardData.SetData "text", strCopy
objIE.Quit
wait 1
Setting.WebPackage("ReplayType")=2
Set bj=createobject("wscrīpt.shell")
obj.sendkeys "{TAB}"
wait 2
obj.sendkeys "^v"
wait 1
Setting.WebPackage( "ReplayType")=1
11)childobjects的应用
childobject可以返回界面上满足条件的对象集合,而且与对象库里是否有这些对象无关,这就可以简化对象库;
返回的对象集合的count方法可以返回对象个数,这就可以通过下标对单个对象进行操作;在出现index标识对象时
可以进行运用.如:
\' Find All WebEdit Objects on a Web Page and Set a Value for a Specific One
Sub ChildObjects_Example()
Dim EditToSearch, ValueToSet, NumberOfEdits
EditToSearch = "credit_card_number"
ValueToSet = "3558986773230578"
Set Desc = Description.Create()
oDesc("micclass").Value = "WebEdit"
oDesc("name").Value = "credit_card_number"
Set EditCollection = Browser("Book a Flight: Mercury").Page("Book a Flight: Mercury").ChildObjects(oDesc)
NumberOfEdits = EditCollection.Count
For i = 0 To NumberOfEdits - 1
If EditCollection(i).GetROProperty("name") = EditToSearch Then
EditCollection(i).Set ValueToSet
End If
Next
End Sub
12)关闭所有IE
SystemUtil.CloseProcessByName("iexplore.exe")
13)启动IE的语句:SystemUtil.Run "iexplore.exe", "http://www.***.com"
关闭IE或其他程序的语句:
SystemUtil.CloseProcessByName "app.exe"
SystemUtil.CloseProcessByWndTitle "Some Title"
14)引用自定义环境变量
Environment.LoadFromFile "D:\\询价\\case\\环境\\huiyuan.xml"
15) 环境变量有2种,一种是QTP的内置变量,一种是用户自定义的变量。内置变量是可以直接就可以用,自定义环境变量需要在菜单中选择“文件”——>“ 设置”——>“环境”,在变量类型中选择“用户自定义”,然后进行添加,可以对添加的变量全部导出,导出的文件为.xml格式的文档。既然可以导出,那么必然可以导入.xml文件,你可以在该对话框中的选中“从外部文件导入”,然后添加其文件路径即可。(当然这些操作都可以直接使用脚本来实现,如:Environment.LoadFromFile(“FileName”))
xml文件格式如下:
<Environment>
<Variable> // 变量定义起始标识
<Name>aa</Name> // 变量名称
<Value>11</Value> // 变量值
</Variable> // 变量定义结束标识
<Variable>
<Name>bb</Name>
<Value>22</Value>
</Variable>
</Environment>
使用的脚本
Dim aParam3
aParam3=Environment.Value(“aa”) // 调用环境变量
msgbox aParam3
16)弹出输入窗口
Dim Input
Input = InputBox("Enter your name")
MsgBox ("You entered: " & Input)
17)不同数据库检查点手动SQL写法
QTP插入数据库检查点,手动指定SQL语句的写法。
一、SQL Server格式(本地无需安装SQL Server)
connectionstring(连接字符串):
1.本地没有创建数据源的方式
DRIVER=SQL Server;SERVER=数据库IP地址;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=本地主机名;DATABASE=数据库名
实例:
DRIVER=SQL Server;SERVER=10.160.11.10;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJHLJUN;DATABASE=dcwork
2.本地已创建数据源的方式
DSN=数据源名称;UID=用户名;PWD=密码;APP=Microsoft Office 2003;WSID=数据库的主机名;DATABASE=数据库名
实例:
DSN=LocalServer;UID=sa;PWD=sa;APP=Microsoft Office 2003;WSID=RJDCWORKTEST;DATABASE=dcwork
3.SQL语句实例(从数据库表HR_LANGUAGE_TYPE中,查询字段语言名称LANGUAGE_NAME,条件语言名称=中文,按语言名称升序排序结果)
SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM dcwork.dbo.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME=\'中文\') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME
二、DB2格式:(本地至少安装DB2 Run-Time Client Lite)
connectionstring(连接字符串):
1.本地没有创建数据源的方式
DRIVER={IBM DB2 ODBC DRIVER};UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=数据库名;
实例:
DRIVER={IBM DB2 ODBC DRIVER};UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;
2.本地已创建数据源的方式
DSN=数据源名称;UID=用户名;PWD=密码;MODE=SHARE;DBALIAS=DCWORK;
实例:
DSN=DWCORKDB2;UID=db2admin;PWD=db2admin;MODE=SHARE;DBALIAS=DCWORK;
3.SQL语句实例
SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DB2ADMIN.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME=\'中文\') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME
三、Oracle格式:(本地需要安装Oracle ODBC DRIVER)
connectionstring(连接字符串):
1.本地没有创建数据源的方式
DRIVER={Oracle in OraHome92};SERVER=数据库服务名;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F; XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;
实例:
DRIVER={Oracle in OraHome92};SERVER=DCWORK;UID=DCWORK;PWD=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BAM=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;
2.本地已创建数据源的方式
DSN= 数据源名称;UID=用户名;PWD=密码;DBQ=数据库名;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10; FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;
实例:
DSN=dcworkoracle;UID=DCWORK;DBQ=DCWORK;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;
3.SQL语句实例
SELECT HR_LANGUAGE_TYPE.LANGUAGE_NAME FROM DCWORK.HR_LANGUAGE_TYPE HR_LANGUAGE_TYPE WHERE (HR_LANGUAGE_TYPE.LANGUAGE_NAME=\'中文\') ORDER BY HR_LANGUAGE_TYPE.LANGUAGE_NAME
四, mysql
Set Conn = CreateObject("ADODB.Connection" )
str="DRIVER={MySQL ODBC 3.51 Driver};SERVER=192.168.1.100;DATABASE=wp_blog;user id=zzz ; password=123456"
Conn.open str
Set Rs = CreateObject ("ADODB.Recordset" )
sql = "select * from `wp_blog`.`blg_webcategory` limit 0, 5000;"
Rs.open sql,conn,1,3
If (not Rs.eof) then
Rs.MoveFirst
MsgBox Rs(0)
MsgBox Rs(1)
MsgBox Rs(2)
MsgBox Rs(3)
end if
Rs.close
Set Rs = Nothing
Conn.close
Set Conn = Nothing
五. access
Set Conn = CreateObject("ADODB.Connection" )
str="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/db1.mdb"
Conn.open str
Set Rs = CreateObject("ADODB.Recordset")
转载于:https://www.cnblogs.com/hgfg331/p/3526620.html