老李分享: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. 基于微博数据用 Python 打造一颗“心”

    一年一度的虐狗节刚过去不久,朋友圈各种晒,晒自拍,晒娃,晒美食,秀恩爱的.程序员在晒什么,程序员在加班.但是礼物还是少不了的,送什么好?作为程序员,我准备了一份特别的礼物,用以往发的微博数据打造一颗“ ...

  2. Humble Numbers(丑数) 超详解!

    给定一个素数集合 S = { p[1],p[2],...,p[k] },大于 1 且素因子都属于 S 的数我们成为丑数(Humble Numbers or Ugly Numbers),记第 n 大的丑 ...

  3. 简学Python第四章__装饰器、迭代器、列表生成式

    Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群  群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...

  4. 线上问题debug过程(cat,grep,tr,awk,sort,uniq,comm等工具的综合使用)

    问题:发现线上到货单的数量,小于实际到货的数量. 怀疑一些隐藏的条件,将部分唯一码进行了过滤,导致数量变少. 开展了如下的跟踪流程: 1.找到其中一个明细的唯一码 grep 6180e-4b09f p ...

  5. Python 正则表达式(字符)详解

    Python正则表达式 - 简介 ​    其实正则表达式这种技术,源于一个很简单的问题:  如何通过变成使得计算机具有在文本中检索某种模式的能力? ​     而正则表达式为通过编程实现高级的文本模 ...

  6. 做推送,怎么能不了解推送的 4 种消息形式呢?( Android 篇)

    极光推送是为 App 提供第三方推送服务的平台之一,它提供四种消息形式:通知,自定义消息,富媒体和本地通知. 笔者将基于官方说明与个人理解来谈一下这四种消息.本篇为 Android 篇,iOS 篇入口 ...

  7. js获取浏览器宽高

    IE中: document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.d ...

  8. Selenium 基本元素操作(参考)

    原出处链接:http://www.cnblogs.com/Javame/p/3848258.html 元素操作 查找元素 使用操作如何找到页面元素Webdriver的findElement方法可以用来 ...

  9. 【2-26】string/math/datetime类的定义及其应用

    一string类 (1)字符串.Length    Length作用于求字符串的长度,返回一个int值 (2)字符串.TrimStart();  TrimStart():可删除前空格,返回一个stri ...

  10. 技术分享,学术报告presentation 常用的承接句

    前言 现在即使是搞技术,做科研的,也需要在不同的场合,用ppt来做分享,做汇报,做总结. 如果国际会议,研讨会,或者在外企,国外工作,英文的presentation就更加必不可少.英语的提升需要大家从 ...