好记性不如烂笔头,日志中记录了本人学习时遇到的知识点,方便自己回顾所学,也给有需要的童孩提供参考。欢迎大家阅读,并提出宝贵意见。

QTP:灵活测试查询功能

上一篇 / 下一篇  2013-03-20 15:59:54 / 个人分类:QTP技术

  QTP测试查询功能,本人推荐两种方法:1、通过屏幕截图;2、通过数据库查询。
  1、通过屏幕截图
   屏幕截图是最快捷的方法,但是脚本运行完之后要一张张图分析查询结果,比较麻烦。
   屏幕截图函数:
Desktop.CaptureBitmap “D:\截图\1.jpg”, true

   屏幕截图使用起来时需要使用随机数做为图片名称,在此也把随机函数贴出来
'=============================================
'名称:QTP_GetUniqueNumber
'作用:通过年月日秒,获取唯一值
'=============================================
Function QTP_GetUniqueNumber() 
        Dim yy,mm,dd,ss
        Dim nowtime
        nowDate = date
        nowTimer = cstr(int(timer))
        yy = CStr(Mid(Year(nowDate),3,2))
        mm = CStr(String(2 - Len(Month(nowDate)) , "0") & Month(nowDate))
        dd = CStr(String(2 - Len(Day(nowDate)) , "0") & Day(nowDate))
        ss = CStr(String(5 - Len(nowTimer) , "0") & nowTimer)
        QTP_GetUniqueNumber = yy & mm & dd & ss
    End Function

2、通过数据库查询
  查询功能很多时候查询出的是一个webTable,这时我们可以获取表格里的某个唯一值并通过与数据库中查询的内容作对比来验证查询出的内容是否正确。
  使用该方法时,同学们需要会写SQL,范例:
Browser("管理系统").Page("客户工单查询").WebButton("高级查询").Click
Browser("管理系统").Page("客户工单高级查询").Sync
Browser("管理系统").Page("客户工单高级查询").WebEdit("站点名称").Set""
Browser("管理系统").Page("客户工单高级查询").WebEdit("外协单位").Set"广州"
Browser("管理系统").Page("客户工单高级查询").WebButton("开始查询").Click
Browser("管理系统").Page("客户工单查询").Sync
order_no= Browser("管理系统").Page("客户工单查询").WebTable("name:=wr_c1").GetCellData(1,2)'获取第一行的工单编号
sql=" SELECT PATINDEX('%广州%', (select name from dbo.assist where id=(select aid from dbo.workorder_assist where wid =(select id from dbo.workorder where order_no='"&order_no&"'))))as 'ReData'"
QTP_CheckSearch "客户工单查询_外协单位_广州",sql,"ReData"

QTP_CheckSearch函数:
'=============================================
'名称:QTP_CheckSearch
'作用:验证查询结果是否正确,并在报告中输出验证结果
'参数:searchFor:查询的内容;sql:sql查询语句  columnName:查询出的列名
'==============================================
Public Function QTP_CheckSearch(SearchFor,sql,columnName)
     Re=QTP_SQLselect(sql,columnName)
       If Re=0 Then
            Reporter.ReportEvent micFail,SearchFor,"不通过,返回值为:"&Re
          else
             Reporter.ReportEvent micPass,SearchFor,"通过"
       End If
End Function

QTP_SQLselect函数:
========================================
'名     称:QTP_SQLselect
'作     用:查询数据库并返回值
'参     数:sql:SQL语句,columnName:列名
'返回值:返回查询出的值
'调用:
'sqlselect="select id from acct_user where name like '李浩%'"
'QTP_SQLselect(sqlselect,id)
'========================================
Public Function QTP_SQLselect(sql,columnName)
    '以下是数据库操作
    Dim rs,sq,pkey
    set conn=createobject("adodb.connection")
    set rs=createobject("adodb.recordset")
    '下面数据库驱动语句,可以通过新建.udl文件连接数据库后获得
    conn.open="Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=HXOMS;Data Source=192.168.0.232"
    rs.open sql,conn
    i=1
    do while not rs.eof
    values1=rs(columnName)
    i=i+1
    rs.movenext
    Loop
    rs.close
    set rs=nothing
    conn.close
    set conn=nothing
    QTP_SQLselect=values1
End Function


学习及使用QTP时,陈达龙给了本人很多帮助,在此给出大师博客地址:www.cydtest.com
对QTP有兴趣的童鞋可以上去查询大师的日志,里面有相当多实用的内容。












TAG: QTP

 

评分:0

我来说两句

Open Toolbar