CN110399299B - 自动化测试框架和测试用例的执行方法 - Google Patents

自动化测试框架和测试用例的执行方法 Download PDF

Info

Publication number
CN110399299B
CN110399299B CN201910649195.5A CN201910649195A CN110399299B CN 110399299 B CN110399299 B CN 110399299B CN 201910649195 A CN201910649195 A CN 201910649195A CN 110399299 B CN110399299 B CN 110399299B
Authority
CN
China
Prior art keywords
control
test
case
layer
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910649195.5A
Other languages
English (en)
Other versions
CN110399299A (zh
Inventor
常相宇
赵静
熊云萍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN STOCK EXCHANGE
Original Assignee
SHENZHEN STOCK EXCHANGE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENZHEN STOCK EXCHANGE filed Critical SHENZHEN STOCK EXCHANGE
Priority to CN201910649195.5A priority Critical patent/CN110399299B/zh
Publication of CN110399299A publication Critical patent/CN110399299A/zh
Application granted granted Critical
Publication of CN110399299B publication Critical patent/CN110399299B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种自动化测试框架,所述自动化测试框架包括:用例控制层,用于解析测试用例;执行控制层,用于确定测试用例的执行顺序以及测试用例的执行规则;驱动适配层,用于提供统一的关键字接口,所述关键字接口用于统一各种类型的测试用例中的关键字;底层驱动层,用于提供若干自动化测试工具,所述自动化测试工具用于执行测试用例。本发明还公开一种测试用例的执行方法。本发明降低了自动化测试实施的难度和成本。

Description

自动化测试框架和测试用例的执行方法
技术领域
本发明涉及自动化测试技术领域,尤其涉及一种自动化测试框架和测试用例的执行方法。
背景技术
在关键字驱动的自动化测试的实施过程中,需要将测试用例转化为脚本,并通过自动化工具执行。
目前业界主流的自动化测试工具有Selemium、Qtp、Appium等,分别侧重于不同类型系统(如Web应用、移动端App、Windows客户端)的自动化测试的执行。由于产品线系统类型不同,自动化测试工具不同,导致关键字实现差异和维护困难,增加了自动化测试实施的难度和成本;
发明内容
本发明的主要目的在于提供一种自动化测试框架和测试用例的执行方法,旨在解决测试用例的自动化测试实施的难度和成本较高的问题。
为实现上述目的,本发明提供一种自动化测试框架,所述自动化测试框架包括:
用例控制层,用于解析测试用例;
执行控制层,用于确定测试用例的执行顺序以及测试用例的执行规则;
驱动适配层,用于提供统一的关键字接口,所述关键字接口用于统一各种类型的测试用例中的关键字;
底层驱动层,用于提供若干自动化测试工具,所述自动化测试工具用于执行测试用例。
在一实施例中,所述驱动适配层包括控件识别模块、控件操作模块、控件驱动模块以及公共组件。
在一实施例中,所述自动化测试工具包括B/S测试工具、C/S测试工具、APP测试工具以及Windows测试工具中的至少二种。
为实现上述目的,本发明还提供一种测试用例的执行方法,所述测试用例的执行方法应用于如上所述的自动化测试框架,所述测试用例的执行方法包括以下步骤:
在获取测试用例后,控制用例控制层解析所述测试用例生成测试任务;
获取自动化测试框架中的已有关键字,并根据所述已有关键字注册关键字;
在执行控制层中获取所述测试用例的执行规则以确定测试用例的执行顺序以及实行方式,并根据所述执行顺序以及所述实行方式对所述测试任务进行初始化;
控制驱动适配层调用底层驱动层中封装的自动化测试工具执行所述测试用例中的关键字,以完成初始化的测试任务,其中,所述测试步骤中的关键字与注册的关键字一致。
在一实施例中,所述获取UI自动化测试框架中的已有关键字的步骤包括:
确定所述测试用例中的测试步骤对应的测试方法;
根据所述测试方法扫描所述自动化测试框架中的已有关键字。
在一实施例中,所述测试用例的执行方法,还包括:
控制所述用例控制层解析所述测试用例得到所述测试用例的用例结构,其中,所述用例结构包括测试步骤、控件名称、控件定位、控件操作以及控件参数;
输出所述用例结构以供测试人员修改所述测试用例。
在一实施例中,所述控制驱动适配层调用底层驱动层中封装的自动化测试工具执行所述测试用例中的关键字的步骤之后,还包括:
在完成初始化的测试任务后,生成并输出测试报告。
在一实施例中,所述获取测试用例的步骤包括:
获取待测试界面;
解析所述待测试界面,以获取所述待测试界面中的控件;
根据各个所述控件生成多个控件对象,并根据各个所述控件对象生成控件对象库,以在对所述待测试界面测试时,调用所述控件对象库中的所述控件对象生成测试用例。
在一实施例中,所述根据各个所述控件生成多个控件对象的步骤包括:
确定所述控件的解析顺序,以根据各个所述控件的解析顺序生成树形结构;
在所述树形结构上的各个节点对应的控件中确定预设控件,其中,所述预设控件为可用控件或者预设类型的控件;
确定所述预设控件对应的控件信息,并将所述预设控件以及所述预设控件对应的控件信息关联存储,以生成各个所述预设控件对应的控件对象。
本发明提供的自动化测试框架和测试用例的执行方法,自动化测试框架包括最上层的用于解析测试用例的用例控制层、中层的用于确定测试用例的执行顺序以及测试用例的执行规则的执行控制层、位于用例控制层下层的能够提供关键字的统一接口的驱动适配层、以及底层的封装有若干执行测试用例的自动化测试工具的底层驱动层;由于驱动适配层能够提供统一的关键字接口以统一各种类型的测试用例的关键字,且底层驱动层封装有多种自动化测试工具,为关键字的开发实现提供了统一的应用程序编辑接口,降低的关键字实现差异和维护的难度,且使得自动化测试框架能够执行多产品线以及多类型业务的测试用例,进而降低了测试用例的自动化测试实施的难度和成本。
附图说明
图1为本发明涉及的UI自动化测试框架的构架示意图;
图2为本发明测试用例的用例结构的示意图
图3为本发明测试用例的执行方法的第一实施例的流程示意图;
图4为图3中测试用例执行时对应的简易流程图;
图5为本发明测试用例的执行方法的第二实施例的流程示意图;
图6为图3中步骤S10中获取测试用例的细化流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
作为一种实现方案,自动化测试框架可以如图1所示。
自动化测试框架包括上层的用例控制层、中层的执行控制层、位于执行控制层下层的驱动适配层、以及底层的底层驱动层。
用例控制层可用于解析测试用例,也即将测试人员的测试用例进行解析和转换,得到测试用例的控件参数以及可用于关键字解析执行的统一数据模板,统一数据模板即为测试用例的用例结构,用例结构可参照图2,用例结构包括测试步骤、控制名称、控件定位、控件操作以及控件参数。在用例控制层解析得到用例结构后,可显示用例结构,测试人员可基于用例结构对测试步骤、控制名称、控件定位、控件操作以及控件参数进行修改,以重新生成测试用例。此外,用例控制层在解析测试用例时,还可构建测试任务,并在当自动化测试框架完成测试任务后,生成测试报告,并输出测试报告。
执行控制层可用于设置不同层级、不同维度的测试用例的执行顺序,可设置并发以及合并执行规则,还支持针对不同系统的任务级、测试集级、用例级以及步骤级的定制化扩展,也即测试人员可通过执行控制层设置测试用例的执行顺序,测试用例的执行规则以及针对不同系统的任务级、测试集级、用例级以及步骤级的定制化扩展。
驱动适配层屏蔽了底层驱动实现,提供了统一的关键字接口,该关键字接口可为对外接口,该接口还可定义为关键字和方法的统一接口,其中,接口为方法的声明,例如一个接口称之为点击,具体实现的步骤可为web点击或者app点击。此外,驱动适配层还包括控件识别模块、控件操作模块、控件驱动模块以及公共组件,控件识别模块用于基础控件的识别,控件操作模块用于基础控件的操作,控件驱动模块则可根据用户类型动态实例化底层驱动,而公共组件提供文件操作、数据库操作、截图以及远程调用等功能。
底层驱动层封装有若干自动化测试工具,自动化测试工具包括B/S测试工具(如Selenium、QTP)、C/S测试工具(如AssertJ)、APP测试工具(如Appium)、Windows测试工具(如AutoIt)。在图1中,将各种自动化测试工具均封装在底层驱动层中,但测试人员可根据系统实际需求将B/S测试工具、C/S测试工具、APP测试工具以及Windows测试工具中的一种或者多种进行动态调用。在自动化测试框架执行测试用例时,自动化测试工具由驱动适配层调用执行。由于自动化测试框架封装了多种自动化执行工具,并统一了各底层驱动之间的差异,为关键字的开发实现提供统一的api(应用程序编程接口)。在此基础上,自动化测试框架设计并实现了支持自动化测试实施的多种组件模块,形成了一套功能完备的自动化测试框架。
自动化测试框架可用于UI(User Interface,用户界面)界面的测试。本实施例提供的自动化测试框架易于扩展,且能够兼容多种类型测试的实施,也即具有支持定制开发易于扩展的特点。进一步的,框架能够将测试用例与执行测试用例的工具进行解耦,提升了测试用例的独立性、兼容性以及通用性。此外,框架可支持动态调用多种执行工具(执行工具即为自动化测试工具),完善了自动化支持范围,如用户在网页上提流程单,并在APP中进行审批操作,以及扩大了框架的支持能力,如在Selenium执行中调用AutoIt解决Selenium对上传、证书选择等支持不足的问题。
在本实施例提供的技术方案中,自动化测试框架包括最上层的用于解析测试用例的用例控制层、中层的用于确定测试用例的执行顺序以及测试用例的执行规则的执行控制层、位于用例控制层下层的能够提供关键字的统一接口的驱动适配层、以及底层的封装有若干执行测试用例的自动化测试工具的底层驱动层;由于驱动适配层能够提供统一的关键字接口以统一各种类型的测试用例的关键字,且底层驱动层封装有多种自动化测试工具,为关键字的开发实现提供了统一的应用程序编辑接口,降低的关键字实现差异和维护的难度,且使得自动化测试框架能够执行多产品线以及多类型业务的测试用例,进而降低了测试用例的自动化测试实施的难度和成本。
基于上述自动化测试框架,提出本发明测试用例的执行方法的实施例。
参照图3,图3为本发明测试用例的执行方法的第一实施例,测试用例的执行方法应用于自动化测试框架,所述测试用例的执行方法包括以下步骤:
步骤S10,获取测试用例,并控制用例控制层解析所述测试用例生成测试任务;
在本实施例中,执行主体为自动化测试框架,也可为框架所在的终端。自动化测试框架可设于自动化测试终端内。为了便于表述,以下以框架指代自动化测试框架。框架获取测试用例,测试用例可通过框架中驱动适配层中的接口接收测试用例,也可调用测试人员基于框架设计的控件的测试用例。框架基于用例控制层解析测试用例,生成测试用例的测试任务以及通用用例数据模板,通用用例数据模板即为用例结构。
步骤S20,获取自动化测试框架中的已有关键字,并根据所述已有关键字注册关键字;
框架根据用例结构含有各种参数数据以及查找关键字的方法等,使用关键字的方法存在于测试步骤中,框架根据测试方法,也即查找关键字的方法扫描框架中已有关键字,从而根据已有关键字注册关键字。
步骤S30,在执行控制层中获取所述测试用例的执行规则以确定测试用例的执行顺序以及实行方式,并根据所述执行顺序以及所述实行方式对所述测试任务进行初始化;
框架中驱动适配层中设置测试用例的执行规则,执行规则为测试人员配置的或者是默认的。框架提取执行规则,根据执行规则生成测试用例的执行顺序以及实行方式,进而根据实行方式以及执行顺序对测试任务进行初始化。
步骤S40,控制驱动适配层调用底层驱动层中封装的自动化测试工具执行所述测试用例中的关键字,以完成初始化的测试任务,其中,所述测试步骤中的关键字与注册的关键字一致。
在初始化测试任务后,框架控制驱动适配层动态调用底层驱动层中封装的自动化测试工具执行测试用例的测试步骤中的关键字,测试步骤中的关键字与注册的关键字一致。需要说明的是,在调用自动化测试工具时,框架实例化当前关键字操作接口以完成测试用例的执行,从而完成初始化的测试任务,当前关键字即为测试步骤中的关键字。
在完成测试任务后,框架生成并输出测试报告,并恢复测试环境。
参照图4,图4为自动化测试框架执行测试用例的简易流程图,也即框架在获取得到测试用例后,进行用例解析,在注册关键字,然后初始化测试任务,最后执行关键字以进行初始化的测试任务。
在本实施例中,框架可以执行UI测试界面对应测试用例。
在本实施例提供的技术方案中,在获取测试用例后,解析测试用例生成测试任务,再获取自动化测试框架中的已有关键字进行关键字的注册,然后提取测试用例的执行规则以确定测试用例的执行顺序以及实行方式以对测试任务进行初始化,最后控制驱动适配层调用底层驱动层中的自动化执行工具执行测试用例的测试步骤中的关键字以进行初始化的测试任务;由于自动化测试框架中具有统一的关键字接口以及封装有多种自动化测试工具,使得框架能够执行不同类型的测试用例。
参照图5,图5为本发明测试用例的执行方法的第二实施例,基于第一实施例,所述步骤S40之后,还包括:
步骤S50,控制所述用例控制层解析所述测试用例得到所述测试用例的用例结构,其中,所述用例结构包括测试步骤、控件名称、控件定位、控件操作以及控件参数;
步骤S60,输出所述用例结构以供测试人员修改所述测试用例。
在本实施例中,框架在控制用例控制层解析测试用例构建测试任务时,同时会得到测试用例对应的用例结构,用例结构包括测试步骤、控件名称、控件定位、控件操作以及控件参数。在得到用例结构后,可输出用例结构,也即显示用例结构,使得测试人员基于显示的用例结构对测试步骤、控件名称、控件定位、控件操作进行修改或,从而重新生成控件对应的测试用例。
当然,测试可直接基于用例结构输入测试步骤、控件名称、控件定位、控件操作以及控件参数,然后基于执行控制层对测试用例设置任务级、测试集级、用例级、步骤级的定制化扩展、设置测试用例的执行顺序以及执行规则,从而生成测试用例。
需要说明的是,为了便于描述,本实施例中,步骤S50位于步骤S40之后,但步骤S50可在步骤S10之后进行。
在本实施例中,测试人员通过对用例结构中测试步骤、控件名称、控件定位、控件操作以及控件参数的设计即可生成测试用例,使得测试人员无需关注测试用例的具体实现机制以及实现方法,仅需关注步骤、参数等业务相关的内容,也即框架可以通过测试人员的简洁的描述即可完成测试用例的设计,测试人员可以专注于与业务相关的测试用例的设计,无需了解具体代码或者脚本的实现,降低了UI自动化测试对测试人员的专业要求。
参照图6,图6为图3中步骤S10中获取测试用例的细化流程示意图,也即步骤S10包括:
步骤S11,获取待测试界面;
在本实施例中,在对UI界面进行测试时,装置获取待测试界面。具体的,装置通过输入URL、HTML等文件,获取待测试界面,待测试界面指的是终端的当前用户界面,也即待测试界面为被测终端前端页面。
步骤S12,解析所述待测试界面,以获取所述待测试界面中的控件;
步骤S13,根据各个所述控件生成多个控件对象,并根据各个所述控件对象生成控件对象库,以在对所述待测试界面测试时,调用所述控件对象库中的所述控件对象生成测试用例。
在获取待测试界面后,终端解析待测试界面,终端即可装载有框架的终端,从而得到待测试界面中的各个控件。具体的,待测试界面上的各个控件具有对应的位置信息,终端根据位置信息对各个控件进行解析,也即控件的位置信息决定该控件的解析顺序,终端根据解析顺序解析待测试界面,从而得到待测试界面对应的树形结构,树形结构上的各个节点对应待测试界面上的控件。
终端可确定控件对应的控件信息,从而将控件信息与控件信息对应的控件进行关联存储,从而得到控件对应的控件对象,各个控件对象形成控件对象库。控件信息包括控件类型、定位信息、业务名称以及层级结构。控件信息需要终端对控件进行解析得到。
控件类型用于确定对象类型、生成对象名称、默认参数以及参数赋值;定位信息用于定位当前控件的Xpath属性,以及用于用例执行过程中的调用以及定位元素的位置;业务名称则为测试人员提供直观的控件对象说明;层级结构表征控件对象与其他控件对象之间的位置关系,用于确定控件对象库中控件对象的解析顺序。
以下对各个控件信息的确定进行详细说明。
A、控件类型的确定流程可参照如下步骤:
1a、终端确定当前控件,并解析当前控件得到当前控件对应的页面元素;
2a、获取页面元素的属性,属性可为TagName、Class、Type、Id等属性;
3a、终端根据属性确定当前控件的控件类型,终端对属性进行识别,从而确定当前控件对应的控件类型,需要说明的是,测试人员需对控件类型对应的默认操作以及默认参数的映射关系事先进行配置,映射关系如:Text(类型):输入(操作):{Random}(参数)。
终端可以根据树形结构的根节点作为开始节点进行遍历,从而确定每一个控件的类型。
B、定位信息的确定流程可参照如下步骤:
1b、确定当前控件在树形结构上对应的节点;
2b、以确定的节点为开始节点,按照第一预设遍历方式遍历树形结构得到当前节点对应的定位信息,具体的,第一预设遍历方式指的是按照自底向上的方式入栈,层次遍历树形结构上的开始节点对应的各个层级组先节点,且判断开始节点对应的当前控件的页面元素的属性是否为全局唯一,页面元素的属性可为ID、Class以及Text等属性,直至找到全局唯一的属性或者遍历到树形结构的根节点,结束遍历;在遍历过程中。如果开始节点存在同级兄弟节点,则从开始节点的父节点开始按照广度优先遍历找到开始节点的位置,再将开始节点的位置作为定位信息入栈,以通过入栈数据生成类似//div[@id=”xx”]/a[1]结构的Xpath定位信息。
终端可以根据上述步骤一一确定各个控件对应的定位信息。
C、业务名称的确定流程可参照如下步骤:
1c、确定控件对应的数值,控件的数值可以根据控件的页面元素的属性确定,也即根据页面元素的value、text等内容属性确定;
2c、确定数值对应的业务功能内容,数值具有对应的业务功能说明,该业务功能说明即为业务功能内容;
3c、确定控件的控件类型,将业务功能内容拼接控件类型,得打业务名称,例如,业务名称为提交基金审核(业务功能内容)按钮(控件类型);
需要说明的是,终端需要一一确定各个控件对应的业务名称,而终端是以遍历的形式进行各个控件的业务名称的确定,具体的,终端确定当前控件在树形结构上的节点,以该节点为开始节点,根据当前控件的控件类型的遍历顺序进行非有效的控件,控件类型的遍历顺序可为下拉框DropDown类型顺序,下拉框DropDown类型顺序具体为:前邻近兄弟节点->父节点->当前节点->子节点->后邻近兄弟节点,从而完成各个控件的业务名称的识别以及确定。
D、层级结构的确定流程可参照如下步骤:
1d、确定当前控件在树形结构上的节点;
2d、以确定的节点为开始节点,按照第二预设遍历方式遍历树形结构上的各个节点,从而确定各个节点对应的节点路径,第二预设遍历方式指的是按照深度优先方式递归逐层遍历;
3d、为各个节点路径创建对应的子节点对象列表,从而生成层级结构,层级机构为各个控件在树形结构上对应的节点位置构建而成。需要说明的是,在确定层级结构后,将各个控件对象的控件类型、业务名称以及定位信息按照控件对象对应的层级结构进行顺序存储,进而生成或者更新控件对象库。
在生成控件对象库后,测试人员可设计测试步骤,测试步骤中包括控件操作以及控件参数,测试步骤中还包括测试顺序。而控件对象库中的各个控件对象具有对应的解析顺序,将解析顺序与当前测试步骤中测试顺序相同的控件对象作为目标控件对象,再将目标控件对象以及当前测试步骤中的控件操作以及控件参数进行关联,从而生成测试用例,以对目标控件对象的控件进行测试。此外,在生成测试用例的之前,终端会输出是否需要调整测试步骤或者测试步骤对应的参数,以供测试人员进行测试用例生成的确定。
在本实施例中,通过自动解析算法解析待测试界面得到各个控件,每个控件对象的类型、定位信息、业务名称、层级结构、操作和参数均已定义,并按照页面树形结构顺序排列,可以直接自动生成多个控件对应的对象控件,以用于验证控件可用性用例;进一步的,在生成可用性用例之前,可经人工简单修改参数或者步骤顺序,生成测试人员所需的测试用例。本实施例中,能够自动更新控件对象库,达到用例维护和变更的效果,节省了控件对象库的维护成本。
在生成控件对象库后,可在控件对象库中调取控件对象,并设计控件的测试步骤等参数,根据测试步骤以及控件对象生成测试用例,以供框架自动化执行测试用例。
在本实施例提供的技术方案中,控件对象库的生成终端获取待测试界面,并解析待测界面得到待测试界面中的控件,再根据各个控件生成多个控件对象,从而根据各个控件对象生成控件对象库,以在对待测试界面进行测试时调用控件对象库中的控件对象生成测试用例进行测试;由于控件对象库的生成终端可根据待测试界面中各个控件自动生成控件对象库,无需测试人员手动配置控件对象并录入控件对象,缩短了控件对象库的生成时间,提高了UI测试的效率。
在一实施例中,根据各个所述控件生成多个控件对象具体包括:
确定所述控件的解析顺序,以根据各个所述控件的解析顺序生成树形结构;
在所述树形结构上的各个节点对应的控件中确定预设控件,其中,所述预设控件为可用控件或者预设类型的控件;
确定所述预设控件对应的控件信息,并将所述预设控件以及所述预设控件对应的控件信息关联存储,以生成各个所述预设控件对应的控件对象。
在本实施例中,终端仅生成待测试界面上的预设控件对应的控件对象,也即终端无需生成不预设控件的控件对象。预设控件可为可用控件或者预设类型的控件。终端可提供类型选项框以供测试人员选定待测试的控件的类型,选定的类型即为预设类型的控件。以下以可用控件对本实施例进行说明。
终端在解析待测试界面得到树形结构后,确定树形结构上各个节点对应的控件,并获取各个控件的页面元素以及页面元素的属性,页面元素的属性即为上述的TagName、Class、Type、Id等信息,终端确定页面元素的属性是否为预设属性,若是,则表明该页面元素对应的控件为可用控件。
需要说明的是,在终端仅生成可用控件的控件对象时,可用控件的控件信息的确定也有所不同,也即终端在进行遍历时,若识别的控件为非可用控件时,则跳过,进行下一个控件的识别;若识别的控件为可用控件,则对可用控件的控件信息进行确定。
在预设控件为预设类型的控件时,终端获取控件的控件类型,以根据控件类型确定该控件是否为预设类型的控件,也即终端在进行遍历时,若识别的控件不为预设类型的控件时,则跳过,进行下一个控件的识别;若识别的控件为预设类型的控件,则对控件的控件信息进行确定。
在本实施例提供的技术方案中,控件对象库的生成终端仅生成预设控件的控件对象,而无需生成全部控件的控件对象,在当预设控件为可用控件时,节省了控件对象库的生成时间;而在当预设控件为预设类型的控件,终端生成了符合测试人员本意的控件对象。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种自动化测试终端,所述自动化测试终端中设置有自动化测试框架,其特征在于,所述自动化测试框架包括:
用例控制层,用于解析测试用例以及生成用例结构;
所述用例控制层还用于将测试人员的测试用例进行解析和转换,得到测试用例的控件参数以及用于关键字解析执行的统一数据模板,统一数据模板为测试用例的用例结构;
所述用例结构包括测试步骤、控制名称、控件定位、控件操作以及控件参数,基于用例结构对测试步骤、控制名称、控件定位、控件操作以及控件参数进行修改,以重新生成测试用例;
执行控制层,用于确定测试用例的执行顺序以及测试用例的执行规则;
其中,所述执行控制层还用于针对不同系统的任务级、测试集级、用例级以及步骤级的定制化扩展;
驱动适配层,用于提供统一的关键字接口,所述关键字接口用于统一各种类型的测试用例中的关键字;
其中,所述驱动适配层还用于动态调用一种或多种自动化测试工具,所述驱动适配层包括控件识别模块、控件操作模块、控件驱动模块以及公共组件;
其中,所述控件识别模块用于基础控件的识别,控件操作模块用于基础控件的操作,控件驱动模块用于根据用户类型动态实例化底层驱动,所述公共组件提供文件操作、数据库操作、截图以及远程调用;
底层驱动层,用于提供若干自动化测试工具,所述自动化测试工具用于执行测试用例;
所述底层驱动层还用于封装多种自动化执行工具,统一各底层驱动之间的差异,为关键字的开发提供统一的应用程序编程接口。
2.如权利要求1所述的自动化测试终端,其特征在于,所述自动化测试工具包括B/S测试工具、C/S测试工具、APP测试工具以及Windows测试工具中的至少二种。
3.一种测试用例的执行方法,所述测试用例的执行方法应用于权利要求1-2任一项所述的自动化测试终端,其特征在于,所述测试用例的执行方法包括以下步骤:
在获取测试用例后,控制用例控制层解析所述测试用例生成测试任务以及用例结构;
所述用例控制层还用于将测试人员的测试用例进行解析和转换,得到测试用例的控件参数以及用于关键字解析执行的统一数据模板,统一数据模板为测试用例的用例结构;
所述用例结构包括测试步骤、控制名称、控件定位、控件操作以及控件参数,基于用例结构对测试步骤、控制名称、控件定位、控件操作以及控件参数进行修改,以重新生成测试用例;
获取自动化测试框架中的已有关键字,并根据所述已有关键字注册关键字;
在执行控制层中获取所述测试用例的执行规则以确定测试用例的执行顺序以及实行方式,并根据所述执行顺序以及所述实行方式对所述测试任务进行初始化;
其中,所述执行控制层还用于针对不同系统的任务级、测试集级、用例级以及步骤级的定制化扩展;
控制驱动适配层调用底层驱动层中封装的自动化测试工具执行所述测试用例中的关键字,以完成初始化的测试任务,其中,测试步骤中的关键字与注册的关键字一致,其中,所述驱动适配层还用于动态调用一种或多种自动化测试工具,所述驱动适配层包括控件识别模块、控件操作模块、控件驱动模块以及公共组件;
其中,所述控件识别模块用于基础控件的识别,控件操作模块用于基础控件的操作,控件驱动模块用于根据用户类型动态实例化底层驱动,所述公共组件提供文件操作、数据库操作、截图以及远程调用;
所述底层驱动层还用于封装多种自动化执行工具,统一各底层驱动之间的差异,为关键字的开发提供统一的应用程序编程接口。
4.如权利要求3所述的测试用例的执行方法,其特征在于,所述获取自动化测试框架中的已有关键字的步骤包括:
确定所述测试用例中的测试步骤对应的测试方法;
根据所述测试方法扫描所述自动化测试框架中的已有关键字。
5.如权利要求4所述的测试用例的执行方法,其特征在于,所述测试用例的执行方法,还包括:
控制所述用例控制层解析所述测试用例得到所述测试用例的用例结构,其中,所述用例结构包括测试步骤、控件名称、控件定位、控件操作以及控件参数;
输出所述用例结构以供测试人员修改所述测试用例。
6.如权利要求3-5任一项所述的测试用例的执行方法,其特征在于,所述控制驱动适配层调用底层驱动层中封装的自动化测试工具执行所述测试用例中的关键字的步骤之后,还包括:
在完成初始化的测试任务后,生成并输出测试报告。
7.如权利要求3-5任一项所述的测试用例的执行方法,其特征在于,所述获取测试用例的步骤包括:
获取待测试界面;
解析所述待测试界面,以获取所述待测试界面中的控件;
根据各个所述控件生成多个控件对象,并根据各个所述控件对象生成控件对象库,以在对所述待测试界面测试时,调用所述控件对象库中的所述控件对象生成测试用例。
8.如权利要求7所述的测试用例的执行方法,其特征在于,所述根据各个所述控件生成多个控件对象的步骤包括:
确定所述控件的解析顺序,以根据各个所述控件的解析顺序生成树形结构;
在所述树形结构上的各个节点对应的控件中确定预设控件,其中,所述预设控件为可用控件或者预设类型的控件;
确定所述预设控件对应的控件信息,并将所述预设控件以及所述预设控件对应的控件信息关联存储,以生成各个所述预设控件对应的控件对象。
CN201910649195.5A 2019-07-17 2019-07-17 自动化测试框架和测试用例的执行方法 Active CN110399299B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910649195.5A CN110399299B (zh) 2019-07-17 2019-07-17 自动化测试框架和测试用例的执行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910649195.5A CN110399299B (zh) 2019-07-17 2019-07-17 自动化测试框架和测试用例的执行方法

Publications (2)

Publication Number Publication Date
CN110399299A CN110399299A (zh) 2019-11-01
CN110399299B true CN110399299B (zh) 2023-09-26

Family

ID=68324542

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910649195.5A Active CN110399299B (zh) 2019-07-17 2019-07-17 自动化测试框架和测试用例的执行方法

Country Status (1)

Country Link
CN (1) CN110399299B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111130927B (zh) * 2019-12-04 2021-12-17 中国电子科技集团公司第三十研究所 一种网络层通信终端设备业务测试自动化实现方法
CN112363948B (zh) * 2020-11-30 2024-04-09 深圳市六度人和科技有限公司 接口测试方法、装置、电子设备及存储介质
CN112988585B (zh) * 2021-03-23 2024-05-17 京东科技信息技术有限公司 一种PaaS平台测试方法、装置、设备及介质
CN113609015A (zh) * 2021-08-05 2021-11-05 先进操作系统创新中心(天津)有限公司 一种基于Bash Shell的自动化测试框架
CN114297081A (zh) * 2021-12-30 2022-04-08 深圳市捷顺科技实业股份有限公司 一种自动化测试方法以及相关设备
CN117480497A (zh) * 2022-05-30 2024-01-30 北京小米移动软件有限公司 一种跨系统测试方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778124A (zh) * 2015-04-13 2015-07-15 上海新炬网络信息技术有限公司 一种软件应用自动化测试方法
CN105786690A (zh) * 2014-12-24 2016-07-20 博雅网络游戏开发(深圳)有限公司 利用生成的测试用例步骤进行测试的方法和系统
CN106095678A (zh) * 2016-06-08 2016-11-09 上海爱数信息技术股份有限公司 用于Windows平台下数据库业务操作的自动化结果检查方法
CN107133177A (zh) * 2017-05-12 2017-09-05 郑州云海信息技术有限公司 一种自动化测试框架
CN107807878A (zh) * 2016-09-09 2018-03-16 北京航空航天大学 基于关键字的自动化测试引擎
CN107831757A (zh) * 2017-11-29 2018-03-23 合肥巨动力系统有限公司 基于dSPACE的电机控制硬件在环自动化测试系统及方法
CN109783346A (zh) * 2018-12-05 2019-05-21 深圳怡化电脑股份有限公司 基于关键字驱动的自动化测试方法、装置及终端设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958495B2 (en) * 2007-03-08 2011-06-07 Systemware, Inc. Program test system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786690A (zh) * 2014-12-24 2016-07-20 博雅网络游戏开发(深圳)有限公司 利用生成的测试用例步骤进行测试的方法和系统
CN104778124A (zh) * 2015-04-13 2015-07-15 上海新炬网络信息技术有限公司 一种软件应用自动化测试方法
CN106095678A (zh) * 2016-06-08 2016-11-09 上海爱数信息技术股份有限公司 用于Windows平台下数据库业务操作的自动化结果检查方法
CN107807878A (zh) * 2016-09-09 2018-03-16 北京航空航天大学 基于关键字的自动化测试引擎
CN107133177A (zh) * 2017-05-12 2017-09-05 郑州云海信息技术有限公司 一种自动化测试框架
CN107831757A (zh) * 2017-11-29 2018-03-23 合肥巨动力系统有限公司 基于dSPACE的电机控制硬件在环自动化测试系统及方法
CN109783346A (zh) * 2018-12-05 2019-05-21 深圳怡化电脑股份有限公司 基于关键字驱动的自动化测试方法、装置及终端设备

Also Published As

Publication number Publication date
CN110399299A (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
CN110399299B (zh) 自动化测试框架和测试用例的执行方法
US8881105B2 (en) Test case manager
US20190188119A1 (en) System and a method for providing automated performance detection of application programming interfaces
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
US20040143819A1 (en) Generic software testing system and mechanism
US8839107B2 (en) Context based script generation
CN108345532A (zh) 一种自动化测试用例生成方法和装置
JP2004213677A (ja) Guiを有するコンピュータシステムでタスクを実行する方法
US11074162B2 (en) System and a method for automated script generation for application testing
CN108710571B (zh) 一种生成自动化测试代码的方法和装置
US11714625B2 (en) Generating applications for versatile platform deployment
CN110674083A (zh) 工作流迁移方法、装置、设备及计算机可读存储介质
CN111309317A (zh) 一种实现数据可视化的代码自动化方法和装置
CN111026670B (zh) 测试用例的生成方法、测试用例的生成装置及存储介质
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN112799718A (zh) 一种枚举文档的生成方法、装置、电子设备及存储介质
US20190212990A1 (en) Framework for generating adapters in an integrated development environment
CN110413518B (zh) 控件对象库的生成方法及生成装置和计算机可读存储介质
CN114201144A (zh) 基于领域驱动设计的微服务系统构建方法、设备及介质
US20240036829A1 (en) Providing resolution suggestions in a program development tool
CN110928760A (zh) 一种嵌入式系统中的单元测试方法与装置
CN117234529A (zh) 一种基于dsl解析资源生成api的方法
CN111966575A (zh) 一种航空机载显示软件的图形自动化测试方法
CN110321138B (zh) 一种程序更新、迁移方法和装置
CN114356783A (zh) 单元测试代码自动生成方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant