首页 测试 工具 查看内容

qtp一个比较综合的使用

2014-8-5 23:26| 发布者: tianzc| 查看: 317| 评论: 0

摘要: 个人写的第2个还算实用的QTP脚本,学习QTP第5天开始觉得有点难了。还好我只是客串测试。 1.启动一个VB的windows application。设置好Excel文件和QTP的安装路径。 2.启动脚本进行测试,测试代码是QTP自带的订票系统。 ...

个人写的第2个还算实用的QTP脚本,学习QTP第5天开始觉得有点难了。还好我只是客串测试
[功能]
    1.启动一个VB的windows application。设置好Excel文件和QTP的安装路径。
    2.启动脚本进行测试,测试代码是QTP自带的订票系统。

[脚本的参数设定]
    脚本中有2个参数-EXCEL文件和QTP安装路径从VBS文件传入。在QTP中设定如下:
    1.在KeyWord view界面。在Action1上点击右键,选Action properties,弹出 Action properties对话框。在其中添加2个入参。如下图所示:


2.设置测试参数
    Test->Test Settings->Parameters.设置2个入参。如下图所示:


3.将Action参数和Test参数关联起来
     1.在KeyWord view界面。在Action1上点击右键,选择Action Call properties




点Vaiue


在脚本中使用以下语句可以取得2个入参:
    filename= Parameter("InAction1")
    QtpPath= Parameter("InAction2")
[脚本部分]
Dim conn,rst,filename,coboname
Dim user,passwd
'filename="C:DATA.xls"
filename= Parameter("InAction1")
QtpPath= Parameter("InAction2")
'datatale.import(filename)
Set conn= createobject("ADODB.Connection")
'msgbox filename
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source="&filename&";Extended Properties='Excel 8.0;hdr=yes'"
Set rst= createobject("ADODB.Recordset")

'  Excelファイルのデ?タを?み?む
rst.Open "select  *   from [sheet1$] " ,conn,1,1

' table WHCT0717のデ?タをセットする
 While Not rst.EOF 
   systemutil.run  QtpPath&"samplesflightappflight4a.exe",""
    user = rst.fields("user")
 passwd = rst.fields("password")
 Dialog("ログイン").WinEdit("代理店名:").Set  (user)
   ' Dialog("ログイン").WinEdit("代理店名:").Type  micTab
 Dialog("ログイン").WinEdit("パスワード:").set(passwd)
 Dialog("ログイン").WinButton("OK").Click
 reporter.filter=0
 If ( Dialog("ログイン").Dialog("フライト予?").WinButton("OK").Exist(2) )  Then
    text = Dialog("ログイン").Dialog("フライト予?").GetVisibleText
 reporter.ReportEvent micFail ,"Load Error",text
  Dialog("ログイン").Dialog("フライト予?").WinButton("OK").Click
  Dialog("ログイン").WinButton("キャンセル").Click
 else
   Window("フライト予?").close
 end if
     rst.MoveNext
   Wend
 rst.close

   脚本部分最主要的是注意QTP对象的选择和使用。(Tools-->object Repository 对象的添加和删除)

[VB application]
     以下是Button1单击的触发事件
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim qtApp
        Dim qtTest 
        Dim qtResultsOpt
        Dim pDefColl, pDef, rtParams, rtParam1, rtParam2
        Dim QtpTestPath
        qtApp = CreateObject("QuickTest.Application") 
        qtApp.Launch()
        qtApp.Visible = True '使得QTP的程序可见


        ' 设置运行属性
        QtpTestPath = QtpPath.Text & "TestsTest3" '设置脚本路径
        qtApp.Options.Run.RunMode = "Fast"
        qtApp.Open(QtpTestPath, True) ' Open the test in read-only mode

        ' set run settings for the test
        qtTest = qtApp.Test
        qtTest.Settings.Run.OnError = "NextStep" 
        qtResultsOpt = CreateObject("QuickTest.RunResultsOptions") 
        qtResultsOpt.ResultsLocation = "D:program filesMercury InteractiveQuickTest ProfessionalTestsTest3" ' 设置放结果的地方

        pDefColl = qtApp.Test.ParameterDefinitions
        Dim cnt = pDefColl.Count
        Dim Indx = 1
        While Indx <= cnt
            pDef = pDefColl.Item(Indx)
            Indx = Indx + 1
        End While
        rtParams = pDefColl.GetParameters()
        rtParam1 = rtParams.Item("InParameter1")
        rtParam1.Value = DataFileName.Text
        ' MsgBox(TextBox1.Text)
        rtParam2 = rtParams.Item("InParameter2")
        rtParam2.Value = QtpPath.Text

        qtTest.Run(, True, rtParams) ' Run the test
        'MsgBox(rtParams.Item("OutParameter1").Value)

        'qtTest.Close ' Close the test
        qtResultsOpt = Nothing     ' Release the Run Results Options object
        qtTest = Nothing     ' Release the Test object
        qtApp = Nothing     ' Release the Application object
        qtTest.quit()

    End Sub

     以上几个部分虽然不是很多,然因为刚刚开始接触QTP,所以花了我近一天时间。主要是改成手动处理后
对象的取得和逻辑判断的问题比较多,花了不少时间。希望对大家有用。


 


鲜花

握手

雷人

路过

鸡蛋

扫一扫关注最新动态

毒镜头:老镜头、摄影器材资料库、老镜头样片、摄影
爱评测 aipingce.com  
返回顶部