老李分享: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. WP8.1应用双击返回键退出程序。

    #region 双击退出程序代码 //双击HardwareButtons.BackPressed: //出现退出提示窗口: //“确定”退出,“取消”返回什么也不做: private async vo ...

  2. jquery序列化form表单

    在开发中有时需要在js中提交form表单数据,就需要将form表单进行序列化. jquery提供的serialize方法能够实现. $("#searchForm").seriali ...

  3. hibernate系列笔记(1)---Hibernate增删改查

    Hibernate增删改查 1.首先我们要知道什么是Hibernate Hibernate是一个轻量级的ORMapping对象.主要用来实现Java和数据库表之间的映射,除此之外还提供数据查询和数据获 ...

  4. SQL SERVER的事务日志

    1 基本介绍 每个数据库都具有事务日志,用于记录所有事物以及每个事物对数据库所作的操作. 日志的记录形式需要根据数据库的恢复模式来确定,数据库恢复模式有三种: 完整模式,完全记录事物日志,需要定期进行 ...

  5. Alamofire源码解读系列(三)之通知处理(Notification)

    本篇讲解swift中通知的用法 前言 通知作为传递事件和数据的载体,在使用中是不受限制的.由于忘记移除某个通知的监听,会造成很多潜在的问题,这些问题在测试中是很难被发现的.但这不是我们这篇文章探讨的主 ...

  6. 解决VS2015 VBCSCompiler.exe 占用CPU100%的问题

    使用VS2015重复编译运行会发现系统运行缓慢甚至卡死,打开windows任务管理器可以发现CPU已经飙到了100%, VBCSCompiler.exe进程出现多个实例并且占用了大量CPU. 解决方案 ...

  7. 对spring web启动时IOC源码研究

    研究IOC首先创建一个简单的web项目,在web.xml中我们都会加上这么一句 <context-param> <param-name>contextConfigLocatio ...

  8. 1708: [Usaco2007 Oct]Money奶牛的硬币

    1708: [Usaco2007 Oct]Money奶牛的硬币 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 544  Solved: 352[Submi ...

  9. ubuntu 虚拟机vm virtualbox 不能打开 win7

    ubuntu某方面总有些不便,下载个虚拟机装个win7 但是第二次打开的时候就出现了安装是的场景: 原因很简单: 是因为安装了之后没有把win7的镜像文件移除,每次打开时会检测cd/dvd文件/(is ...

  10. 一个小时学会jQuery

    前一段时间录了一套关于jQuery的视频分享给大家,可以在下载区下载到,本来想配合文字一起的,后面发现视频+帮助文档也是非常好的学习方法. 一.jQuery简介与第一个jQuery程序 1.1.jQu ...