qtp一个比较综合的使用

发表于:2007-6-22 15:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:webmaster    来源:本站原创

#
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&"\samples\flight\app\flight4a.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 & "\Tests\Test3" '设置脚本路径
        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 files\Mercury Interactive\QuickTest Professional\Tests\Test3" ' 设置放结果的地方

        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,所以花了我近一天时间。主要是改成手动处理后
对象的取得和逻辑判断的问题比较多,花了不少时间。希望对大家有用。


 

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • higkoo
    2007-7-30 22:39:20

    哈哈
    http://hi.baidu.com/higkoo
    我以前也写过类似的文章

  • killkisu
    2007-7-05 15:41:25

    日语软件还日化的不是很好,真日哦

  • FLY000
    2007-7-04 09:10:59

    先收藏下来

  • candie
    2007-7-03 16:56:17

    不是很看得懂~

  • zhuyuancan
    2007-6-26 14:07:29

    觉得讲的还是不够细啊!!!自己再去钻研去

  • ∮随风而去~
    2007-6-23 17:19:21

    已阅,不过看来你好象是替日本人做事的哦?~
    不敢恭维~

  • jane_li
    2007-6-23 16:44:45

    不是很明白
    不过我马上要学了

  • stjd139
    2007-6-23 11:00:08

    不懂
    不过还是要支持的

  • testxxh
    2007-6-23 10:09:12

    刚刚接触QTP,先存下来看看喽;谢谢楼主

  • sun_yin_ai2004
    2007-6-22 16:40:26

    收下看看

关注51Testing

相关阅读

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号