zoukankan      html  css  js  c++  java
  • 老李分享:qtp自动化测试框架赏析-关键字自动化测试框架

    老李分享: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

      

  • 相关阅读:
    java三大特性或java对象的三大特性?
    数据结构与算法第10周作业——二叉树的创建和遍历算法
    JDBC的应用
    数据结构与算法--第5周作业(线性表合并算法)
    数据结构与算法--第4周作业(单链表)
    WEB(JSP)下的JDBC操作实验
    application下的JDBC操作
    思考题:JSP的指令inclue和动作include的区别
    css3动画小试
    JS => 函数
  • 原文地址:https://www.cnblogs.com/poptest/p/4972147.html
Copyright © 2011-2022 走看看