zoukankan      html  css  js  c++  java
  • QTP描述性编程入门介绍

    引言:

    • QTP的描述性编程能够摆脱测试对象库德限制,编制出更为复杂、适应力更强的测试脚本。
    • 录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是,它带来的问题也是明显的,就是依赖测试对象库,测试脚本中使用的对象都必须是测试对象库中的对象。

    什么时候使用描述性编程

    • 在测试过程中,有些界面元素是动态出现或动态变化的,在录制的时候并没有添加到对象库。

    描述性编程的运行原理

    • 用描述性编程编写的测试脚本在运行时,QTP会使用测试脚本中给出的对象描述来查找对象,查找的位置不是对象库,而是与测试程序运行的QTP为其创建的临时对象版本进行匹配。

    描述性编程的使用方法

    • 一种是直接描述的方法

        TestObject("PropertyName1:=PropertyValue1","...")

    • 另一种是使用Description对象的方法

    源码:

    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("新 闻").Click
    If Browser("百度一下,你就知道").Page("百度新闻搜索——全球最大的中文新闻平台").Exist Then
     reporter.ReportEvent micPass,"新闻链接有效性测试","新闻链接有效"
     else
     reporter.ReportEvent micFail,"新闻链接有效性测试","新闻链接无效"
    End If
    Browser("百度一下,你就知道").Page("百度新闻搜索——全球最大的中文新闻平台").Sync
    Browser("百度一下,你就知道").CloseAllTabs

    用描述性编程方法1编写如下:

    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("text:=新 闻").Click
    If Browser("百度一下,你就知道").Page("百度新闻搜索——全球最大的中文新闻平台").Exist Then
     reporter.ReportEvent micPass,"新闻链接有效性测试","新闻链接有效"
     else
     reporter.ReportEvent micFail,"新闻链接有效性测试","新闻链接无效"
    End If
    Browser("百度一下,你就知道").Page("百度新闻搜索——全球最大的中文新闻平台").Sync
    Browser("百度一下,你就知道").CloseAllTabs

    注意:此时对象库中的“新闻”对象已删除。

    用描述性编程方法2编写如下:

    Set news=Description.Create
    news("text").value="新 闻"
    news("html tag").value="A"
    Browser("百度一下,你就知道").Page("百度一下,你就知道").Link(news).Click
    If Browser("百度一下,你就知道").Page("百度新闻搜索——全球最大的中文新闻平台").Exist Then
     reporter.ReportEvent micPass,"新闻链接有效性测试","新闻链接有效"
     else
     reporter.ReportEvent micFail,"新闻链接有效性测试","新闻链接无效"
    End If
    Browser("百度一下,你就知道").Page("百度新闻搜索——全球最大的中文新闻平台").Sync
    Browser("百度一下,你就知道").CloseAllTabs

    描述性编程的特点

    • 如果在测试对象层次结构的某一点开始使用了描述性编程,则该测试对象层次结构下的后续测试对象都要使用描述性编程的方式来描述对象。(一般称为“后续强迫性”)

    如图:

  • 相关阅读:
    云级Keyvalue数据库大比较
    如何诊断ORA125XX连接问题
    Oracle Internal Event:10235 Heap Checking诊断事件
    Oracle Database 11g R2 在Oracle Linux 6上获得认证
    一张图帮你搞懂oracle UGA User Global Area的概念
    Oracle Buffer Cache Chain图解
    ORA04036: 实例使用的 PGA 内存超出 PGA_AGGREGATE_LIMIT
    如何诊断ASMLIB故障
    Oracle RDBMS Server 11gR2 Preinstall RPM For Oracle Linux 6
    图解Oracle Buffer Cache LRU List
  • 原文地址:https://www.cnblogs.com/hyzhou/p/2244917.html
Copyright © 2011-2022 走看看