zoukankan      html  css  js  c++  java
  • QTP功能点笔记

    1、QTP启动应用程序的几种方法

    1)用SystemUtil.Run

     1 SystemUtil.Run "C:Program Files (x86)HPQuickTest Professionalsamplesflightappflight3a.exe" 

    2)用InvokeApplication

     1 InvokeApplication "C:Program Files (x86)HPQuickTest Professionalsamplesflightappflight3a.exe" 

    3)用相对路径

     1 SystemUtil.Run environment.Value("ProductDir")&"samplesflightappflight3a.exe" '使用环境变量 

    4)用WSH对象

    1 Set myobj =Createobject("Wscript.shell")
    2 myobj.exec "C:Program Files (x86)HPQuickTest Professionalsamplesflightappflight3a.exe"
    3 Set myobj=nothing

    5)用批处理文件

    1 Set myobj =Createobject("Wscript.shell")
    2 myobj.Run "D:yzhbat.bat"
    3 Set myobj=nothing

    批处理文件yzhbat.bat内容:

     1 start "" "C:Program Files (x86)HPQuickTest Professionalsamplesflightappflight3a.exe" 

    2、输出值(手动添加,将结果写到日志文件中)

    SystemUtil.Run "C:WINDOWSsystem32calc.exe","","C:WINDOWSsystem32","open"
    Window("计算器").WinButton("1").Click
    Window("计算器").WinButton("+").Click
    Window("计算器").WinButton("2").Click
    Window("计算器").WinButton("=").Click
    
    '录制状态下Insert-->Output Value-->Standard output Value-->...
    Window("计算器").WinEdit("Edit").Output CheckPoint("Rusult1") 
    If datatable("Rusult1",dtglobalsheet)="3. " Then
    '    print "计算加法成功"
    '    msgbox "计算加法成功"
    reporter.ReportEvent micPass,"计算成功","计算1+2,结果正确"
    Writelog "计算1+2,结果正确"
    else
    '    print "计算加法失败"
    '    msgbox "计算加法成功"
    reporter.ReportEvent micFail,"计算失败","计算1+2,结果错误"
    Writelog "计算1+2,结果错误"
    End If
    
    Window("计算器").Close
    
    Function Writelog(str)
    Const ForReading=1,ForWriting=2,ForAppending=8
    Dim fso,fil,msg
    ' 创建一个文件系统对象(File System Object)
    Set fso = CreateObject("Scripting.FileSystemObject")
    ' 创建一个文件对象,通过fso对象来打开指定的文件
    Set fil = fso.OpenTextFile("C:log.txt",ForAppending)
    fil.WriteLine now &" "& str
    ' 关闭这个文件
    fil.Close
    ' 释放这个文件对象
    Set fil = Nothing
    ' 释放这个文件系统对象
    Set fso = Nothing
    End Function

    3、属性检查点(自动添加,F7)

    SystemUtil.Run "C:WINDOWSsystem32calc.exe","","C:WINDOWSsystem32","open"
    Window("计算器").WinButton("1").Click
    Window("计算器").WinButton("+").Click
    Window("计算器").WinButton("2").Click
    Window("计算器").WinButton("=").Click
    
    '非录制或录制状态下Insert-->Step Generator-->...(检查属性,在步骤生成器中)
    Window("计算器").WinEdit("Edit").CheckProperty "text", 3., 0 
    Window("计算器").Close

    4、检查Tab键焦点顺序

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    '检查初始焦点是否正确
    Dialog("Login").WinEdit("Agent Name:").CheckProperty "focused", "True" 
    Dialog("Login").WinEdit("Agent Name:").Set "mercury"
    Dialog("Login").WinEdit("Agent Name:").Type micTab
    '检查password焦点是否正确
    Dialog("Login").WinEdit("Password:").CheckProperty "focused", "True"
    Dialog("Login").WinEdit("Password:").SetSecure "4c3a898e3c0b42e6cf2be4fa6670bd8f54459890"
    Dialog("Login").WinEdit("Password:").Type micTab
    '检查OK焦点是否正确
    Dialog("Login").WinButton("OK").CheckProperty "focused", "True"
    Dialog("Login").WinButton("OK").Type micTab
    '检查Cancel焦点是否正确
    Dialog("Login").WinButton("Cancel").CheckProperty "focused", "True"
    Dialog("Login").WinButton("Cancel").Type micTab
    '检查Help焦点是否正确
    Dialog("Login").WinButton("Help").CheckProperty "focused", "True"
    Dialog("Login").WinButton("Help").Type micTab
    Dialog("Login").WinEdit("Agent Name:").Type micTab
    Dialog("Login").WinEdit("Password:").Type micTab
    Dialog("Login").WinButton("OK").Type micReturn 
    Window("Flight Reservation").Close

    5、插入订单后检查插入后的Order No与传真信息中的Order No是否一致

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set "yezhaohui"
    Dialog("Login").WinEdit("Agent Name:").Type micTab 
    Dialog("Login").WinEdit("Password:").SetSecure "4c3ab6c5b987d8082648b4c7a377b5ac00bf30dc"
    Dialog("Login").WinEdit("Password:").Type micReturn 
    Window("Flight Reservation").ActiveX("MaskEdBox").Type "11111111"
    Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
    Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Set "51test"
    Window("Flight Reservation").WinRadioButton("Business").Set
    Window("Flight Reservation").WinButton("Insert Order").Click
    '步骤同步点
    Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000
    Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")
    Window("Flight Reservation").WinMenu("Menu").Select "File;Fax Order..."
    Window("Flight Reservation").Dialog("Fax Order No.").WinEdit("Order:").Check CheckPoint("Order:_2")
    Window("Flight Reservation").Dialog("Fax Order No.").ActiveX("MaskEdBox").Type "111111111111"
    Window("Flight Reservation").Dialog("Fax Order No.").WinButton("Preview Fax").Click
    Window("Flight Reservation").Dialog("Fax Order No.").Dialog("Fax Preview").Check CheckPoint("Fax Preview_2")
    Window("Flight Reservation").Dialog("Fax Order No.").Dialog("Fax Preview").WinButton("Cancel").Click
    Window("Flight Reservation").Dialog("Fax Order No.").WinButton("Cancel").Click
    Window("Flight Reservation").Close


    6、检查订单号逐个加1
    方法一:使用DataTable

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set "yezhaohui"
    Dialog("Login").WinEdit("Agent Name:").Type micTab 
    Dialog("Login").WinEdit("Password:").SetSecure "4c3ac0c99f0d6cd69a0e8680e411e95f405990e5"
    Dialog("Login").WinEdit("Password:").Type micReturn 
    Window("Flight Reservation").ActiveX("MaskEdBox").Type "111111111"
    Window("Flight Reservation").WinComboBox("Fly From:").Select "Denver"
    Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Set "51testing"
    Window("Flight Reservation").WinRadioButton("Business").Set
    '获得数据库中的值到DataTable中
    DbTable("DbTable").Output CheckPoint("DbTable")
    '改变DataTable中的值
    DataTable("Db_qiwang_order",dtglobalsheet) = DataTable("Db_qiwang_order",dtglobalsheet) +1
    Window("Flight Reservation").WinButton("Insert Order").Click
    '步骤同步点
    Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000
    '检查界面上的数据,标准检查点
    Window("Flight Reservation").WinEdit("Order No:").Check CheckPoint("Order No:")
    '检查数据库中的数据,数据库检查点
    DbTable("DbTable_2").Check CheckPoint("DbTable_2")
    Window("Flight Reservation").Close

    方法二:使用环境变量

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set "yezhaohui"
    Dialog("Login").WinEdit("Agent Name:").Type micTab 
    Dialog("Login").WinEdit("Password:").SetSecure "4c3d5bf18b8c162cfb5ba3de4ca8840bdf75f89a"
    Dialog("Login").WinEdit("Password:").Type micReturn 
    Window("Flight Reservation").ActiveX("MaskEdBox").Type "111111"
    Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
    Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "13540 FRA 10:24 AM LON 11:09 AM SR $167.10"
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Set "51testing"
    Window("Flight Reservation").WinRadioButton("Business").Set
    ''获得数据库中的值到Env..d环境变量中
    DbTable("DbTable").Output CheckPoint("DbTable")
    '改变这个环境变量的值
    environment.Value("Env_Data") = environment.Value("Env_Data") + 1
    Window("Flight Reservation").WinButton("Insert Order").Click
    '步骤同步点
    Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000
    '检查界面上的数据,标准检查点
    Window("Flight Reservation").WinEdit("Order No:").Check CheckPoint("Order No:")
    '检查数据库中的数据,数据库检查点
    DbTable("DbTable_2").Output CheckPoint("DbTable_2")
    Window("Flight Reservation").Close

    7、对象名称参数化

    'SystemUtil.Run "C:WINDOWSsystem32calc.exe","","C:WINDOWSsystem32","open"
    Window("计算器").WinButton(datatable("nu1",dtglobalsheet)).Click
    Window("计算器").WinButton("+").Click
    Window("计算器").WinButton(datatable("nu2",dtglobalsheet)).Click
    Window("计算器").WinButton("=").Click
    Window("计算器").WinEdit("Edit").Check CheckPoint("Edit")
    'Window("计算器").Close

    8、属性参数化

    SystemUtil.Run "C:WINDOWSsystem32calc.exe","","C:WINDOWSsystem32","open"
    Window("计算器").WinButton("one").Click
    Window("计算器").WinButton("+").Click
    Window("计算器").WinButton("two").Click
    Window("计算器").WinButton("=").Click
    Window("计算器").WinEdit("Edit").Check CheckPoint("Edit")
    Window("计算器").Close

    9、对对象的数据参数化

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set datatable("name",dtglobalsheet)
    Dialog("Login").WinEdit("Agent Name:").Type micTab 
    Dialog("Login").WinEdit("Password:").Set datatable("secure",dtglobalsheet)
    Dialog("Login").WinEdit("Password:").Type micReturn 
    Window("Flight Reservation").Close

    10、对登录页面进行GUI自动化测试页面

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set DataTable("UserName", dtGlobalSheet)
    Dialog("Login").WinEdit("Agent Name:").Type micTab
    Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet)
    Dialog("Login").WinEdit("Password:").Type micReturn
    '检查界面是否存在的语句通过录制激活界面来实现
    If Dialog("Login").Dialog("Flight Reservations").Exist Then
    
    Dialog("Login").Dialog("Flight Reservations").Static("Tipcontent").Check CheckPoint("CheckTipContent")
    Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
    Dialog("Login").WinButton("Cancel").Click
    '检查界面是否存在的语句通过F7生成
    elseif Window("Flight Reservation").Exist then
    If datatable("ExpectResult")="登录成功" Then
    reporter.ReportEvent micPass,"测试登录功能","登录功能正确"
    else
    reporter.ReportEvent micFail,"测试登录功能","登录功能错误"
    End If
    
    Window("Flight Reservation").Activate
    Window("Flight Reservation").Close
    else
    reporter.ReportEvent micWarning,"测试登录功能","未知路径"
    '关闭系统进程
    systemutil.CloseProcessByName "flight4a.exe"
    End If


    11、参数化

    SystemUtil.Run "C:WINDOWSsystem32calc.exe","","C:WINDOWSsystem32","open"
    ButtonClick(datatable("num1",dtglobalsheet))
    ButtonClick(datatable("operate",dtglobalsheet))
    ButtonClick(datatable("num2",dtglobalsheet))
    Window("计算器").WinButton("=").Click
    Window("计算器").WinEdit("Edit").Check CheckPoint("Edit_3")
    Window("计算器").Close
    
    Function ButtonClick(ButtonNum)
    Dim ilen
    ilen = len(ButtonNum)
    'print ilen
    For i=1 to ilen
    str = mid(ButtonNum,i,1)
    Window("计算器").WinButton(str).Click
    Next
    End Function

    12、取得Insert Order所用时间

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set "yezhaohui"
    Dialog("Login").WinEdit("Agent Name:").Type micTab 
    Dialog("Login").WinEdit("Password:").SetSecure "4c3d2fa62695127f452a2b119abce9c48ade1c9b"
    Dialog("Login").WinEdit("Password:").Type micReturn 
    Window("Flight Reservation").ActiveX("MaskEdBox").Type "1111111"
    Window("Flight Reservation").WinComboBox("Fly From:").Select "Denver"
    Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "20260 DEN 08:12 AM LON 03:23 PM AA $112.20"
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Type "51testing"
    '开始事务
    Services.StartTransaction "Insertorder"
    Window("Flight Reservation").WinButton("Insert Order").Click
    Do
    '获得插入进度条上的值
    yn_jieshu = Window("Flight Reservation").ActiveX("Threed Panel Control").GetVisibleText()
    Loop until yn_jieshu="Insert Done..."
    '结束事务
    Services.EndTransaction "Insertorder"
    
    Window("Flight Reservation").Close

    13、验证删除订单功能

    SystemUtil.Run "D:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","D:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set "yezhaohui"
    Dialog("Login").WinEdit("Agent Name:").Type micTab 
    Dialog("Login").WinEdit("Password:").SetSecure "4c3d62b0651a6971f298b22525cb0e2fe375bc75"
    Dialog("Login").WinEdit("Password:").Type micReturn 
    Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."
    Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
    Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set datatable("ordernum",dtglobalsheet)
    Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
    '获得数据库总记录数到环境变量中
    DbTable("DbTable").Output CheckPoint("DbTable")
    print environment.Value("Count1")
    '删除操作
    Window("Flight Reservation").WinButton("Delete Order").Click
    Window("Flight Reservation").Dialog("Flight Reservations").WinButton("是(Y)").Click
    '改变环境变量的值
    environment.Value("Count1") = Cint(environment.Value("Count1")) - 1
    '检查数据库中记录条数是否少了一条
    DbTable("DbTable_2").Check CheckPoint("DbTable_2")
    '另一种检查方法精确验证,使用TO的SetTOProperty方法使SQL语句中的订单号也跟着变
    DbTable("DbTable_3").SetTOProperty "source","select count(*) from Orders where order_number =" & datatable("ordernum",dtglobalsheet)
    DbTable("DbTable_3").Check CheckPoint("DbTable_3")
    
    Window("Flight Reservation").Close


    14、验证更新功能

    DbTable("DbTable").SetTOProperty "source","select class from Orders where order_number="&datatable("ordernum",dtglobalsheet)
    DbTable("DbTable").Output CheckPoint("DbTable")
    If datatable("classnum",dtglobalsheet)<>environment.Value("befordata") Then
    SystemUtil.Run "C:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe"
    Dialog("Login").WinEdit("Agent Name:").Set "yezhaohui"
    Dialog("Login").WinEdit("Agent Name:").Type micTab 
    Dialog("Login").WinEdit("Password:").SetSecure "4c3d726c4f68c03a68cd0d2ce7c8052acbab14c3"
    Dialog("Login").WinEdit("Password:").Type micReturn 
    Window("Flight Reservation").WinMenu("Menu").Select "File;Open Order..."
    Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
    Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit_2").Set datatable("ordernum",dtglobalsheet)
    Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit_2").Type micReturn 
    Select case datatable("classnum",dtglobalsheet)
    Case "1"
    Window("Flight Reservation").WinRadioButton("First").Set
    Case "2" 
    Window("Flight Reservation").WinRadioButton("Business").Set
    Case "3" 
    Window("Flight Reservation").WinRadioButton("Economy").Set
    Case Else
    reporter.ReportEvent micWarning,"订单class的有效性","无效!"
    
    End Select
    Window("Flight Reservation").WinButton("Update Order").Click
    Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Update Done...", 10000
    '检查数据库中是否更新了
    DbTable("DbTable_2").SetTOProperty "source","select class from Orders where order_number="&datatable("ordernum",dtglobalsheet)
    DbTable("DbTable_2").Check CheckPoint("DbTable_2")
    Window("Flight Reservation").Close
    else
    reporter.ReportEvent micWarning,"数据是否有变化","数据没变无需更新!"
    End If

    添加固定注释

    1. 新建一TXT文档,将要添加的注释写在文档中
    2. 将文档名改为:ActionTemplate.mst
    3. 将文件放到QTP安装目录的dat文件夹中
    4. 设置好后,在QTP中每次新建一个测试就会自动添加固定的注释

          

    调用外部vbs文件方法

       1.将通用函数写在一个vbs文件中,以供其他脚本调用

       2.调用外部VBS文件中的通用函数的方法(二选一即可),设置完后在QTP中直接使用函数名进行调用:

       1)通过在QTP中设置:file-->settings-->Resource-->“添加VBS文件的路径“

       

        2)在脚本中使用Executefile语句:Executefile "VBS文件路径"

          

  • 相关阅读:
    Python读写Excel文件和正则表达式
    R Language Learn Notes
    Electron小记
    Unity商店下载的文件保存路径?
    Unity LineRenderer制作画版
    unity图形圆形展开
    [转]资深CTO:关于技术团队打造与管理的10问10答
    unity游戏在ios11上不显示泰语解决办法
    jQuery火箭图标返回顶部代码
    jQuery火箭图标返回顶部代码
  • 原文地址:https://www.cnblogs.com/yezhaohui/p/3868480.html
Copyright © 2011-2022 走看看