老李分享:qtp自动化测试框架赏析-关键字自动化测试框架

 

QTP从2005年继winrunner,robot逐渐退出历史舞台之后,占领主流自动化测试工具市场已经10年之久。当初为了提高在自动化测试工具市场的竞争力,通过vbs脚本语言讨好自动化测试(专指脚本开发人员)工程师,通过关键字视图讨好业务(这里主要是指对自业务很熟,能找出问题的人员)测试人员。

自动化测试工具选型:这是重要的两个评估维度,工具所用的脚本能完成自动化测试,如ajax技术出现后,qtp在某些环境需要调用js脚本才能完成自动化测试,qtp脚本的扩展要求对qtp自动化测试工程师提出了更高的要求。关键字视图只能完成机械的对象选择,我们有的时候对象可能是一套脚本,这样qtp本身提供的关键字视图的框架功能就无法完成。

在这里我提供一个简单的关键字自动化测试框架的模型,核心引擎我实现了,如果你感兴趣,可以根据公司的情况,进一步扩展。

一.首先设计的表驱动的数据形式

二.实现对象映射引擎

Option Explicit
Public WebBrowserDesc
public WebPageDesc
public WebEditDesc,
public WebButtonDesc
public WebObjDesc ' ...............................

Dim arrObjProperty
Dim arrObjValue
Dim strObjProperty
Dim strObjValue

Public Function fnApplicationMap(strBrowser,strObjName)
  Set WebBrowserDesc=Description.Create
  WebBrowserDesc("application version").Value="internet explorer6"
  If strBrowser<>"" Then
    WebBrowserDesc("name").value=strBrowser
  End If
  Set WebPageDesc=Description.Create
  WebPageDesc("title").Value=strBrowser

  Select Case strObject
    Case "WebEdit"
      Set WebEditDesc=Description.Create
      WebEditDesc ("html tag").Value="INPUT"
      WebEditDesc("name").Value=strObjName
    Case "WebButton"
      Set WebButtonDesc=Description.Create
      WebButtonDesc ("html tag").Value="INPUT"
      WebButtonDesc("name").Value=strObjName
    Case "WebElement"
      Set WebObjDesc=Description.Create
      arrObjProperty=Split(strObjName,",")
      For each strObjProperty in arrObjProperty
        arrObjValue=Split(strObjProperty,"=")
        strObjValue=trim(arrObjValue(0))
        WebObjDesc(strObjValue).Value=trim(arrObjValue(1))

      Next
   End Select

End Function

三.实现函数生成引擎

Public Function fnBrowser(WebBrowserDesc,WebPageDesc,strParam,strExpected,strCkPt)
  Select Case strAction
  Case "Invoke"
    If Browser(WebBrowserDesc).Exist Then
      Browser(WebBrowserDesc).Close
    End If
    Systemutil.Run "ie",strParam
  End Select
End Function

Public Function fnWebEdit(WebBrowserDesc,WebPageDesc,WebEditDesc,strParam,strExpected,strCkPt)
   Select Case strAction
   Case "Set"
      Browser(WebBrowserDesc).Page(WebPageDesc).WebEdit(WebEditDesc).Set strParam
   ‘case "任意方法"

’执行任意方法

End Select

End Function

Public Function fnWebButton(WebBrowserDesc,WebPageDesc,WebButtonDesc,strParam,strExpected,strCkPt)
  Select Case strAction
  Case "Click"
    Browser(WebBrowserDesc).Page(WebPageDesc).WebButton(WebEditDesc).Click 
    Browser(WebBrowserDesc).Page(WebPageDesc).Sync

‘case "任意方法"

’执行任意方法

  End Select

End Function

Public Function fnWebElement(WebBrowserDesc,WebPageDesc,WebObjDesc,strParam,strExpected,strCkPt)
  Select Case strAction
  Case "VerifyMinorError"
    strActual=Browser(WebBrowserDesc).Page(WebPageDesc).WebElement(WebObjDesc).GetROProperty(strParam)
    Call fnVerfyMinorErro(strExpected,strActual,strCkPt)
  Case "VerifyProperty"
    strActual=Browser(WebBrowserDesc).Page(WebPageDesc).WebElement(WebObjDesc).GetROProperty(strParam)
    Call fnVerify(strExpected,strActual,strCkPt)
  ‘case "任意方法"

’执行任意方法

End Select

End Function

四.读取表格,实现数据表格引擎

这部分可以通过excel com实现,简单点可以通过qtp自身带的datatable对象完成处理数据表格

五. 技术实现框架其他部分

上层的处理功能,基本用到对象识别技术,qtp的aom接口技术等等

原先qtp的课程最早的时候是两天的课程完成自动化测试框架,因为技术的发展,现在需要4天完成一个项目的自动化测试框架设计以及实现的课程目标。

现在很多培训机构和个人讲师在讲工具只是讲技术点,而是否能设计并实现自动化测试框架是一个测试开发工程师(高级自动化测试工程师)的基本要求,技术点是基石,架构设计是艺术,课程高下在于课程本身内容的优劣,学习的目标。为什么很多人自学工具不行,为什么参加了付费培训也不会,这是因为自学一般都是在网络上学习,网络上学习的知识都是碎片化的,本身就缺乏知识体系,加上零散的知识点,学习起来必然又费力又收效小,参加付费培训也没有提高多少(少部分基础好的人觉得达成了培训目标,老师的只言片语对学生起到了提笔点睛的作用,自己通过快速总结突破了个人瓶颈,大部分的人感觉是学到了东西,但是根本就无法胜任工作,还沉醉在自责中), 也好还是网络上流传的文章技术技巧也好,都是以工具为主,而所有的工具和技术的采用都是为了完成测试目标,所以课程的设计也是以自动化测试框架的完成为目标。选择培训要看课程高度,技术点在什么情况下去讲,应该有应用场景,是围绕主线的应用场景,很多时候培训讲师是随意设计应用场景,对于自动化测试工具培训应该是围绕主线的自动化测试框架,自动化测试平台的设计,所有知识点应该是在这个框架里得到具体应用。我们有自动化测试框架设计的专项训练课程,希望可以和大家分享。

我们已经把qtp的自动化测试以及自动化测试框架课程已经免费,免费课程报名qq群:450192312

老李分享:qtp自动化测试框架赏析-关键字自动化测试框架的更多相关文章

  1. 老李分享:android app自动化测试工具合集

    老李分享:android app自动化测试工具合集   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

  2. 老李分享:大数据框架Hadoop和Spark的异同 1

    老李分享:大数据框架Hadoop和Spark的异同   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

  3. 老李分享:QTP的录制原理以及实现

    老李分享:QTP的录制原理以及实现   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:9088 ...

  4. python自动化测试(3)- 自动化框架及工具

    python自动化测试(3) 自动化框架及工具 1   概述 手续的关于测试的方法论,都是建立在之前的文章里面提到的观点: 功能测试不建议做自动化 接口测试性价比最高 接口测试可以做自动化 后面所谈到 ...

  5. RobotFramework自动化测试框架-移动手机自动化测试AppiumLibrary介绍

    在使用AppiumLibrary库时,需要预先安装好Appium自动化工具,Appium官网地址为:http://appium.io/ Appium的GitHub地址为:https://github. ...

  6. 接口自动化测试框架 (一) :APIAutoTest框架

    前言 随着测试技术的发展,接口自动化测试逐渐成为各大公司投入产出比最高的测试技术.介入时间早,执行效率高,稳定性高的优点,让越来越多的公司引入接口自动化测试. 框架简介 APIAutoTest是处理A ...

  7. 老李分享:接口测试之jmeter

    老李分享:接口测试之jmeter   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.移动端自动化测试很多人把他仅仅理解成appu ...

  8. 老李分享:导出xml报告到手机

    老李分享:导出xml报告到手机   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821 ...

  9. 老李分享:接电话扩展之uiautomator 1

    老李分享:接电话扩展之uiautomator   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq ...

随机推荐

  1. [Kafka] - Kafka Java Consumer实现(一)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  2. react搭配amazeui环境搭建

    1.安装node https://nodejs.org/en/download/ 查看node   npm版本 2.安装react 创建新的react单页面应用 npm install  -g cre ...

  3. php 手动搭建环境

    php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败. 我搭建的组合是: php5.6+MySQL5.6+Apache2.4的组合. 一.PHP语言包下载 首先从官网上下载php5.6 htt ...

  4. 每天一个Linux命令(12)--more命令

    more命令,功能类似cat,  cat 命令是这个文件的内容从上到下显示在屏幕上,more会以一页一页的显示方便使用者主页阅读,而最基本的指令就是按空格键就往下一页显示,按B键就会往回一页显示,而且 ...

  5. Spark集群搭建_YARN

    2017年3月1日, 星期三 Spark集群搭建_YARN 前提:参考Spark集群搭建_Standalone   1.修改spark中conf中的spark-env.sh   2.Spark on ...

  6. 禁止linux被ping

    cho "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf sysctl -p 生效 开启ping功能: 删除/ ...

  7. jQuery测验题

    1.在div元素中,包含了一个<span>元素,通过has选择器获取<div>元素中的<span>元素的语法是? 提示使用has() $("div:has ...

  8. Web平台安装及检测程序

    软件名称:microsoft web platform installer 上图: 可以看做是一个App Store, 你再也不用东奔西跑去找什么开发软件,CMS等等了,直接打开这个,勾选上就安装吧, ...

  9. Svm相关

    Svm相关: 1)  SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题. ...

  10. 485. Max Consecutive Ones

    题目 Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: ...