网站首页 | 发表文章 | 访客留言 | 社区论坛 | 博客 | 测试视频 | 3ATesting培训
>首页 -> 功能测试 -> QTP

TOP

qtp一个比较综合的使用
[ 录入者:无名 | 时间:2007-07-30 00:16:44 | 作者:不详 | 来源:chinaitlab | 浏览:1772次 ]
欢迎光临!

功能]

欢迎光临!rZc3atestingsfwtrgOp
    1.启动一个VB的windows application。设置好Excel文件和QTP的安装路径。
欢迎光临!rZc3atestingsfwtrgOp
    2.启动脚本进行测试,测试代码是QTP自带的订票系统。

[脚本的参数设定]

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

欢迎光临!rZc3atestingsfwtrgOp

欢迎光临!rZc3atestingsfwtrgOp
2.设置测试参数
欢迎光临!rZc3atestingsfwtrgOp
    Test->Test Settings->Parameters.设置2个入参。如下图所示:
欢迎光临!rZc3atestingsfwtrgOp

欢迎光临!rZc3atestingsfwtrgOp

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

欢迎光临!rZc3atestingsfwtrgOp

欢迎光临!rZc3atestingsfwtrgOp

欢迎光临!rZc3atestingsfwtrgOp

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

'  Excelファイルのデータを読み込む

欢迎光临!rZc3atestingsfwtrgOp
rst.Open "select  *   from [sheet1$] " ,conn,1,1

' table WHCT0717のデータをセットする

欢迎光临!rZc3atestingsfwtrgOp
 While Not rst.EOF 
欢迎光临!rZc3atestingsfwtrgOp
   systemutil.run  QtpPath&"\samples\flight\app\flight4a.exe",""
欢迎光临!rZc3atestingsfwtrgOp
    user = rst.fields("user")
欢迎光临!rZc3atestingsfwtrgOp
 passwd = rst.fields("password")
欢迎光临!rZc3atestingsfwtrgOp
 Dialog("ログイン").WinEdit("代理店名:").Set  (user)
欢迎光临!rZc3atestingsfwtrgOp
   ' Dialog("ログイン").WinEdit("代理店名:").Type  micTab
欢迎光临!rZc3atestingsfwtrgOp
 Dialog("ログイン").WinEdit("パスワード:").set(passwd)
欢迎光临!rZc3atestingsfwtrgOp
 Dialog("ログイン").WinButton("OK").Click
欢迎光临!rZc3atestingsfwtrgOp
 reporter.filter=0
欢迎光临!rZc3atestingsfwtrgOp
 If ( Dialog("ログイン").Dialog("フライト予約").WinButton("OK").Exist(2) )  Then
欢迎光临!rZc3atestingsfwtrgOp
    text = Dialog("ログイン").Dialog("フライト予約").GetVisibleText
欢迎光临!rZc3atestingsfwtrgOp
 reporter.ReportEvent micFail ,"Load Error",text
欢迎光临!rZc3atestingsfwtrgOp
  Dialog("ログイン").Dialog("フライト予約").WinButton("OK").Click
欢迎光临!rZc3atestingsfwtrgOp
  Dialog("ログイン").WinButton("キャンセル").Click
欢迎光临!rZc3atestingsfwtrgOp
 else
欢迎光临!rZc3atestingsfwtrgOp
   Window("フライト予約").close
欢迎光临!rZc3atestingsfwtrgOp
 end if
欢迎光临!rZc3atestingsfwtrgOp
     rst.MoveNext
欢迎光临!rZc3atestingsfwtrgOp
   Wend
欢迎光临!rZc3atestingsfwtrgOp
 rst.close
欢迎光临!rZc3atestingsfwtrgOp

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

[VB application]

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


欢迎光临!rZc3atestingsfwtrgOp
        ' 设置运行属性
欢迎光临!rZc3atestingsfwtrgOp
        QtpTestPath = QtpPath.Text & "\Tests\Test3" '设置脚本路径
欢迎光临!rZc3atestingsfwtrgOp
        qtApp.Options.Run.RunMode = "Fast"
欢迎光临!rZc3atestingsfwtrgOp
        qtApp.Open(QtpTestPath, True) ' Open the test in read-only mode

        ' set run settings for the test

欢迎光临!rZc3atestingsfwtrgOp
        qtTest = qtApp.Test
欢迎光临!rZc3atestingsfwtrgOp
        qtTest.Settings.Run.OnError = "NextStep" 
欢迎光临!rZc3atestingsfwtrgOp
        qtResultsOpt = CreateObject("QuickTest.RunResultsOptions") 
欢迎光临!rZc3atestingsfwtrgOp
        qtResultsOpt.ResultsLocation = "D:\program files\Mercury Interactive\QuickTest Professional\Tests\Test3" ' 设置放结果的地方

        pDefColl = qtApp.Test.ParameterDefinitions

欢迎光临!rZc3atestingsfwtrgOp
        Dim cnt = pDefColl.Count
欢迎光临!rZc3atestingsfwtrgOp
        Dim Indx = 1
欢迎光临!rZc3atestingsfwtrgOp
        While Indx <= cnt
欢迎光临!rZc3atestingsfwtrgOp
            pDef = pDefColl.Item(Indx)
欢迎光临!rZc3atestingsfwtrgOp
            Indx = Indx + 1
欢迎光临!rZc3atestingsfwtrgOp
        End While
欢迎光临!rZc3atestingsfwtrgOp
        rtParams = pDefColl.GetParameters()
欢迎光临!rZc3atestingsfwtrgOp
        rtParam1 = rtParams.Item("InParameter1")
欢迎光临!rZc3atestingsfwtrgOp
        rtParam1.Value = DataFileName.Text
欢迎光临!rZc3atestingsfwtrgOp
        ' MsgBox(TextBox1.Text)
欢迎光临!rZc3atestingsfwtrgOp
        rtParam2 = rtParams.Item("InParameter2")
欢迎光临!rZc3atestingsfwtrgOp
        rtParam2.Value = QtpPath.Text

        qtTest.Run(, True, rtParams) ' Run the test

欢迎光临!rZc3atestingsfwtrgOp
        'MsgBox(rtParams.Item("OutParameter1").Value)

        'qtTest.Close ' Close the test

欢迎光临!rZc3atestingsfwtrgOp
        qtResultsOpt = Nothing     ' Release the Run Results Options object
欢迎光临!rZc3atestingsfwtrgOp
        qtTest = Nothing     ' Release the Test object
欢迎光临!rZc3atestingsfwtrgOp
        qtApp = Nothing     ' Release the Application object
欢迎光临!rZc3atestingsfwtrgOp
        qtTest.quit()

    End Sub

欢迎光临!rZc3atestingsfwtrgOp

     以上几个部分虽然不是很多,然因为刚刚开始接触QTP,所以花了我近一天时间。主要是改成手动处理后

欢迎光临!rZc3atestingsfwtrgOp
对象的取得和逻辑判断的问题比较多,花了不少时间。希望对大家有用。

欢迎光临!
[上一篇]数据驱动在QTP的运用 [下一篇]QTP识别和操作对象的原理

评-论

称  呼:
验 证 码:
内  容:

相关栏目

最新文章

热门文章

推荐文章

广告位