CN106294185A - 基于五层框架的自动化测试框架及方法 - Google Patents
基于五层框架的自动化测试框架及方法 Download PDFInfo
- Publication number
- CN106294185A CN106294185A CN201610764756.2A CN201610764756A CN106294185A CN 106294185 A CN106294185 A CN 106294185A CN 201610764756 A CN201610764756 A CN 201610764756A CN 106294185 A CN106294185 A CN 106294185A
- Authority
- CN
- China
- Prior art keywords
- function
- script
- module
- case
- test
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
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
技术领域
本发明涉及应用于Quick Test Professional测试工具的软件测试框架技术领域,特别涉及一种基于五层框架的自动化测试框架及方法。
背景技术
目前,大部分软件公司不敢于执行自动化测试,首先自动化测试需要录入庞大的测试用例,工作量大造成人手不足;单一的功能录入比较容易实现,但大量的功能一层一层递归组合,会使测试用例几何级增长的同时,复杂度也不断提高。再加上软件功能的修改,会使原来录入的自动化测试脚本失效,造成不可预知的风险。没有一套成熟的自动化测试框架,付出的测试成本高,达到目标的成功率非常低。
针对现实中一个完整的测试系统,测试用例到底应该如何组织呢?在Quick TestProfessional中建立多个Case,每个Case对应实际功能组,在每个Case中,通过Action组织测试用例。例如一个软件的Edit菜单下面有Find功能,Find功能下面又有Find Next功能和Count All功能,对于Find Next功能的每一种情况,各个CheckBox选中或者不选中,又分别进行测试。如果将Find Next归类为一个Action,Count All归类为一个Action,然后都放到同一个Case里面,这样会绑得太死,其它功能就不能共享调用。如果将Find Next归类为一个Action,Count All归类为一个Action,然后放到不同Case里面,虽然解决前面的问题,但这样功能下面的CheckBox就没法细化执行。如果将每一个CheckBox归类为一个Action,这样测试脚本又太多,而且会出现很多重复的脚本。如果仅仅是对单个功能的录制,不考虑大型的软件系统,录制脚本是一个简单的事情。当考虑整个软件系统的大量功能组合,与穷尽的测试用例,这样一个测试设计思想与及组织管理方案就变得相当重要了。
发明内容
本发明要解决的技术问题在于,提供一种基于五层框架的自动化测试框架及方法,使自动化测试框架减低了测试的工作量、降低测试的复杂度以及提高测试的成功率。
为解决上述技术问题,本发明提供如下技术方案:一种基于五层框架的自动化测试框架,包括:函数库模块、逻辑控制脚本模块、功能控制脚本模块、对象库模块以及数据库模块;其中
所述函数库模块应用于所述逻辑控制脚本模块和功能控制脚本模块,所述对象库模块、数据库模块引用功能控制脚本模块,所述逻辑控制脚本模块调用功能控制脚本模块,形成五层框架而层层关联;
所述函数库将重复代码封装成函数,减少代码的工作量;
所述逻辑控制脚本模块利用VBScript语言编写的外部脚本,将Quick TestProfessional中录制的脚本整合成一个程序;
所述功能控制脚本为Quick Test Professional录制的脚本;
所述对象库模块是处理Quick Test Professional录制过程中无法识别的对象以及重复使用的对象,在不同的Case中重复使用;
所述数据库模块是用Excel表动态传送参数,减少因代码造成的重新录制脚本的重复工作。
进一步地,所述函数库模块封装有数据库表,获取所述数据库表的功能脚本通过调用函数库模块的通用函数去获取数据库表的数据。
本发明另一目的是提供一种基于五层框架的自动化测试方法,包括以下步骤:
(1)创建通用函数GetData,作为所有Case共享调用;
(2)使用Quick Test Professional自动化测试工具,新建Case,在Case中新建空白Action,用空白Action录制功能控制脚本;
(3)在录制功能控制脚本过程中,若出现不能识别的控件,则利用对象库进行识别;将识别并生成的对象导出到指定的工作目录,提供给其它Case使用;
(4)功能控制脚本录制完成后,获取数据库表格中的存放测试用例,调用通用函数GetData,获取数据库表格中的数据;
(5)每个Case对应一个功能,将多个Case利用树型组织结构,合并成一个大的功能;编写逻辑控制脚本获取Case的所在的目录路径,把多个大功能,合并成一个程序。
进一步地,所述步骤(3),使用Quick Test Professional工具object repository点击Add Objectto Local进行对象添加并调入Action中调整脚本,启动Action运行验证脚本是否通过,若通过则表示为识别并生成的对象。
进一步地,所述步骤(4)中,利用Excel数据表格避免每个测试用例录制一个脚本的情况,所述Excel数据表格的每一行数据对应一个测试用例。
采用上述技术方案后,本发明至少具有如下有益效果:
1、本发明对象库中的对象,只要在其中一个Action录入一次,所有Action都可以共用。
2、本发明的函数库,设计一个通用的获取数据函数GetData,所有Action都可以调用这个函数,不用重复编写获取数据的脚本代码。
3、本发明的数据库,以录入用户张三、李四作为不同的用户登录系统为例,即使增加其他更多的用户,也不用修改测试脚本。
4、本发明的功能控制脚本,大部份由Quick Test Professional自动录入,只有很少用到手动录入。
5、本发明的逻辑控制脚本,可以直接点击运行,不用打开和配置Quick TestProfessional。
附图说明
图1为本发明基于五层框架的自动化测试框架的结构图;
图2为本发明实施例自动化测试框架的主界面图;
图3为本发明实施例中组织结构图;
图4为本发明实施例中通用函数GetData脚本代码;
图5为本发明实施例中会议室预订系统Case 1.登录的功能控制脚本及数据库表图;
图6为本发明实施例中会议室预订系统Case 1.1.普通预订的功能控制脚本及数据库表实例图;
图7为本发明实施例中Quick Test Professional对象库识别窗口实例图;
图8为本发明实施例中会议室预订系统逻辑控制脚本实例图;
图9为本发明实施例中通用权限系统应用本方案录制的组织结构实例图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
实施例
在图1中,函数库可以应用于逻辑控制脚本和功能控制脚本,对象库和数据库引用功能控制脚。在组织结构时,逻辑控制脚本又调用功能控制脚本,五层框架,层层关联。
(1)首先创建通用函数,作为所有Case共享调用。
(2)在Quick Test Professional自动化测试工具,新建一个Case,在Case中新建一个Action,然后用这个空白Action录制功能控制脚本。
(3)录制过程中可能会有不能识别的控件,利用对象库进行识别,已识别并生成的对象可以导出到指定的工作目录,以便其它Case使用时进行共享,下次不用重新识别对象。
(4)功能脚本录制完成后,要考虑多个测试用例共用一个测试脚本的情况,为了避免每个测试用例录制一个脚本,就要利用到Excel数据表格,表格的每一行数据对应一个测试用例。在功能脚本中调用刚才在第1步在函数库中已创建好的通用函数GetData,获取数据表格中的数据。因为不同的用例都调用相同的函数,所有对于不同的数据,功能脚本是相同,实现了面向对象编程。
(5)每个Case对应一个功能,将多个Case利用树型组织结构,合并成一个大的功能。编写逻辑控制脚本获取Case的所在的目录路径,把多个大功能,合并成一个程序。
在图2中所示的实施例子中,我们以会议室预订系统作为例子,进一步讲解利用本方案设计自动化测试的实际操作步骤。该软件系统的功能包括:登录、修改密码、普通会议室预订管理、固定会议室预订管理、查询预订详情等。
图3所示的实施例子:
(1)首先创建一个登录的Case,命名为“1.登录”,因为所有的软件功能都要先成功能登录系统才能操作,所以“1.登录”是树型组织结构的根。
(2)成功登录后,我们创建下一个Case,实现会议室普通预订功能,因为该功能是登录功能的一个分支,所以命名为“1.1.普通预订”,1.1为1下面的第一个分支。
(3)成功进行会议室普通预订后,我们创建下一个Case,实现会议室普通预订的修改功能,因为是会议室普通预订功能的一个分支,所以命名为“1.1.1.普通预订修改”,1.1.1为1.1下面的第一个分支。
(4)我们再创建下一个Case,实现会议室普通预订的删除功能,因为是会议室普通预订功能的另一个分支,所以命名为“1.1.2.普通预订删除”,1.1.2为1.1下面的第二个分支。
(5)按上面的步骤,如此类推,生成所有功能。
在图4中所示的实施例子中,我们在函数库中创建一个通用函数GetData,用于获取数据表中的数据。这个函数需输入一个参数名称,函数的功能作用是实现循环整个数据表,然后返回一个对应这个参数名称的数据值。所有的测试Case都可以共享调用这个通用函数。
在图5中所示的实施例子中,功能控制脚本都是通过Quick Test Professional的录制功能去生成的。从图的下面还可以看到,有一个存储数据的Excel数据表格。里面存储了两条测试用例数据,每条测试用例都对应一个登录用户,但执行的都是同一个功能脚本,因为它们都是调用通用函数GetData获取数据。
在图6中所示的实施例子中,从图左边的树可以看到,它直接调用了Case“1.登录”的功能脚本,对于登录部分不用重复编写。其中有一个控件名称叫"四月2015",这是一个图片形的日期控制,因为Quick Test Professional无法识别,所有利用了对象库技术。
在图7中所示的实施例子中,对象库识别窗口可以生成无法识别的对象。生成后还可以进行导出,然后再导进其它Case进行共享。
在图8中所示的实施例子中,当图3中的所有Case功能完成后,可以通过图8中的逻辑控制脚本将所有Case功能组合成一个程序的脚本文件,点击这个脚本文件就可以自动执行整个程序。
在图9中所示的实施例子中,利用本方案实现了通用权限系统的自动化测试。通过实践证明本测试方案都能取得成功。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。
Claims (5)
1.一种基于五层框架的自动化测试框架,其特征在于,包括:函数库模块、逻辑控制脚本模块、功能控制脚本模块、对象库模块以及数据库模块;其中
所述函数库模块应用于所述逻辑控制脚本模块和功能控制脚本模块,所述对象库模块、数据库模块引用功能控制脚本模块,所述逻辑控制脚本模块调用功能控制脚本模块,形成五层框架而层层关联;
所述函数库将重复代码封装成函数,减少代码的工作量;
所述逻辑控制脚本模块利用VBScript语言编写的外部脚本,将Quick TestProfessional中录制的功能控制脚本整合成一个程序;
所述功能控制脚本为Quick Test Professional录制的脚本;
所述对象库模块是处理Quick Test Professional录制过程中无法识别的对象以及重复使用的对象,在不同的Cace中重复使用;
所述数据库模块是用Excel表动态传送参数,减少因代码造成的重新录制脚本的重复工作。
2.根据权利要求1所述的基于五层框架的自动化测试框架,其特征在于,所述函数库模块封装有数据库表,获取所述数据库表的功能脚本通过调用函数库模块的通用函数去获取数据库表的数据。
3.一种基于五层框架的自动化测试方法,其特征在于,包括以下步骤:
(1)创建通用函数GetData,作为所有Case共享调用;
(2)使用Quick Test Professional自动化测试工具,新建Case,在Case中新建空白Action,用空白Action录制功能控制脚本;
(3)在录制功能控制脚本过程中,若出现不能识别的控件,则利用对象库进行识别;将识别并生成的对象导出到指定的工作目录,提供给其它Case使用;
(4)功能控制脚本录制完成后,获取数据库表格中的存放测试用例,调用通用函数GetData,获取数据库表格中的数据;
(5)每个Case对应一个功能,将多个Case利用树型组织结构,合并成一个大的功能;编写逻辑控制脚本获取Case的所在的目录路径,把多个大功能,合并成一个程序。
4.根据权利要求3所述的一种基于五层框架的自动化测试方法,其特征在于,所述步骤(3),使用Quick Test Professional工具object repository点击Add Objectto Local进行对象添加并调入Action中调整脚本,启动Action运行验证脚本是否通过,若通过则表示为识别并生成的对象。
5.根据权利要求3所述的一种基于五层框架的自动化测试方法,其特征在于,所述步骤(4)中,利用Excel数据表格避免每个测试用例录制一个脚本的情况,所述Excel数据表格的每一行数据对应一个测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610764756.2A CN106294185A (zh) | 2016-08-30 | 2016-08-30 | 基于五层框架的自动化测试框架及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610764756.2A CN106294185A (zh) | 2016-08-30 | 2016-08-30 | 基于五层框架的自动化测试框架及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106294185A true CN106294185A (zh) | 2017-01-04 |
Family
ID=57675068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610764756.2A Pending CN106294185A (zh) | 2016-08-30 | 2016-08-30 | 基于五层框架的自动化测试框架及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294185A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423209A (zh) * | 2017-03-08 | 2017-12-01 | 北京数码大方科技股份有限公司 | 软件测试方法和装置 |
CN108469998A (zh) * | 2018-01-18 | 2018-08-31 | 苏州沈苏自动化技术开发有限公司 | 一种通用型软件自动化测试框架系统 |
CN110764990A (zh) * | 2018-07-26 | 2020-02-07 | 优信拍(北京)信息科技有限公司 | 一种ui自动化回归测试方法及装置 |
CN112527465A (zh) * | 2020-12-18 | 2021-03-19 | 上海万向区块链股份公司 | 基于FitNesse框架的数据驱动脚本库的方法、系统及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303664A (zh) * | 2008-06-19 | 2008-11-12 | 腾讯科技(深圳)有限公司 | 一种专业快速测试装置和方法 |
CN202339542U (zh) * | 2011-03-21 | 2012-07-18 | 中国工商银行股份有限公司 | 一种软件产品测试系统 |
CN103186467A (zh) * | 2011-12-31 | 2013-07-03 | 北京新媒传信科技有限公司 | 数据正确性验证方法及装置 |
CN103377122A (zh) * | 2012-04-25 | 2013-10-30 | 镇江华扬信息科技有限公司 | 一种快速测试qtp装置及方法 |
-
2016
- 2016-08-30 CN CN201610764756.2A patent/CN106294185A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303664A (zh) * | 2008-06-19 | 2008-11-12 | 腾讯科技(深圳)有限公司 | 一种专业快速测试装置和方法 |
CN202339542U (zh) * | 2011-03-21 | 2012-07-18 | 中国工商银行股份有限公司 | 一种软件产品测试系统 |
CN103186467A (zh) * | 2011-12-31 | 2013-07-03 | 北京新媒传信科技有限公司 | 数据正确性验证方法及装置 |
CN103377122A (zh) * | 2012-04-25 | 2013-10-30 | 镇江华扬信息科技有限公司 | 一种快速测试qtp装置及方法 |
Non-Patent Citations (3)
Title |
---|
SANMEN2010: "QTP应用模式设计", 《HTTPS://WENKU.BAIDU.COM/VIEW/033E62BA1A37F111F1855B50.HTML》 * |
ZHANGYUNLI1113: "TD QTP实用操作手册-银行付款实例讲解", 《HTTPS://WENKU.BAIDU.COM/VIEW/99416C4C2E3F5727A5E96272.HTML》 * |
尔冬: "[QTP]基本使用", 《HTTP://BLOG.51CTO.COM/HANVISEAS/1341692》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423209A (zh) * | 2017-03-08 | 2017-12-01 | 北京数码大方科技股份有限公司 | 软件测试方法和装置 |
CN108469998A (zh) * | 2018-01-18 | 2018-08-31 | 苏州沈苏自动化技术开发有限公司 | 一种通用型软件自动化测试框架系统 |
CN108469998B (zh) * | 2018-01-18 | 2021-09-17 | 苏州沈苏自动化技术开发有限公司 | 一种通用型软件自动化测试框架系统 |
CN110764990A (zh) * | 2018-07-26 | 2020-02-07 | 优信拍(北京)信息科技有限公司 | 一种ui自动化回归测试方法及装置 |
CN112527465A (zh) * | 2020-12-18 | 2021-03-19 | 上海万向区块链股份公司 | 基于FitNesse框架的数据驱动脚本库的方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647883B (zh) | 一种业务审批方法、装置、设备及介质 | |
CN107948254B (zh) | 混合云平台的大数据处理框架编排系统及方法 | |
US9189772B2 (en) | Control and verification of permissions | |
US20040139176A1 (en) | Systems and methods for improving service delivery | |
CN106294185A (zh) | 基于五层框架的自动化测试框架及方法 | |
CN105893509B (zh) | 一种大数据分析模型的标记与解释系统及方法 | |
CN104123227A (zh) | 一种自动生成测试用例的方法 | |
CN112632135A (zh) | 一种大数据平台 | |
CN102737020A (zh) | 一种初始化多租户数据库的方法和装置 | |
US10084792B2 (en) | Control and verification of permissions | |
CN106055325B (zh) | 一种支撑多系统同时运行的服务构建方法 | |
CN111930354B (zh) | 一种用于软件开发的框架组件系统及其构建方法 | |
CN115309566A (zh) | 一种服务接口的动态管理方法及系统 | |
CN112463143A (zh) | 一种基于dag的动态可重排方法 | |
CN111026660A (zh) | 一种基于专家系统知识库的渗透测试方法 | |
CN108073720A (zh) | 应用于大数据系统的数据质量管理系统及方法 | |
CN113836237A (zh) | 对数据库的数据操作进行审计的方法及装置 | |
CN108268468A (zh) | 一种大数据的分析方法及系统 | |
CN115658658A (zh) | 一种企业数据中台基于批处理的数据共享方法、装置及存储介质 | |
CN113672674A (zh) | 一种自动编排业务流的方法、电子装置和存储介质 | |
CN109063040A (zh) | 客户端程序数据采集方法及系统 | |
CN104216986B (zh) | 以数据更新周期进行预操作提高数据查询效率的装置及方法 | |
CN114911773A (zh) | 一种通用元模型设计方法 | |
Merchant et al. | Tool for performance tuning and regression analyses of HPC systems and applications | |
CN111401020A (zh) | 一种界面加载方法、系统和计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |