基于xml封装关键字的gui自动测试方法及自动测试平台的制作方法

文档序号:6575303阅读:214来源:国知局
专利名称:基于xml封装关键字的gui自动测试方法及自动测试平台的制作方法
技术领域
本发明涉及一种计算机软件测试技术,特别涉及一种Web应用程序GUI自动测试 方法和自动测试平台。
背景技术
随着计算机软件技术和互联网的发展,Web应用程序得到了越来越多的应用。传统 的Web应用GUI自动测试方法,人们需要编写测试脚本,利用脚本语言编程实现测试逻辑, 驱动被测应用⑶I元素,实现自动测试的目的。许多商业测试工具如HP公司WinRurmer、 QTP,开源测试工具WatiiNSelenium等都是这样的原理。商业工具通常提供录制的功能,可 以记录测试人员的操作,产生测试脚本。这样的方法的弊端在于采用录制的方法,产生的脚本是硬编码的,非结构化的, 很难维护。如果用编程的方法,对测试人员的编程能力要求较高。通常,自动测试开发人员 并不了解测试设计方法和业务知识,测试人员则不熟悉编程语言。为了弥补这些缺陷,传统 方法较好的工作模式是测试人员设计测试用例,形成测试用例文档,自动测试开发人员实 现测试脚本,实际上是将测试用例翻译成脚本语言,调试运行并维护脚本。这样的工作模式 带来的问题是对于测试用例的详细程度和准确性要求极高,需要更多的测试人员和更多 的时间编写测试用例,不同人员之间的交互可能造成理解歧义和不能同步。增加了人力资 源的需求和沟通成本。普通的软件公司不可能提供大量的人员成本和时间,迫切需要一种 轻量级的、使用更方便、更利于维护、更省时省力的方法应用于GUI自动测试。实际上,传统的脚本化自动测试方法更多的将测试驱动、测试逻辑、测试数据混杂 在一起,脚本化意味着可读性较差,测试脚本无法直接用于测试用例评审,必须同时维护一 份测试用例和一份测试脚本。鉴于上述缺陷,本发明创作者经过长时间的研究和实践终于获得了本创作。

发明内容
本发明的目的在于,解决现有脚本化自动测试方法中将测试驱动、测试逻辑、测试 数据混杂在一起,测试脚本无法直接用于测试用例评审,必须同时维护一份测试用例和一 份测试脚本的技术问题。为达到上述目的,本发明提供一种基于XML封装关键字的⑶I自动测试方法,包 括步骤a,测试架构设计人员建立XML架构文件,用以描述测试关键字,所述关键字 包括⑶I元素;步骤b,测试用例设计人员按照所述关键字编写XML文件,形成测试用例,所述测 试用例包括测试用例逻辑、测试数据和预期结果;步骤c,测试平台开发人员开发自动测试引擎,解析所述测试用例中的XML文件, 解释所述测试关键字,定位所述GUI元素,执行测试并验证结果。
本发明还提供一种自动化测试平台,包括关键字描述模块、测试用例模块和自动 测试引擎;所述关键字描述模块中储存一 XML架构文件,用以描述测试关键字,所述关键字 包括⑶I元素;所述测试用例模块中存储多个测试用例,所述测试用例为XML文件,包括测试逻 辑、测试数据和预期结果;所述自动测试引擎解析所述XML文件,解释所述关键字,导航测试执行,定位所述 GUI元素,执行测试并验证结果。进一步,所述自动测试引擎包括项目管理模块、解析模块、导航模块、GUI元素定位 模块、消息处理模块和验证模块;所述项目管理模块建立测试项目,包含测试用例集、设置测试运行时参数,配置选 项;所述解析模块解析测试用例XML文件,保存所述各个关键字对象;所述导航模块解释所述关键字,按照测试对象的不同层次执行各测试用例集、测 试用例、递归执行引用的测试用例;所述GUI元素定位模块读取测试用例中的关键字描述,找到相应的GUI元素;所述消息处理模块在元素对象上触发各种消息,以模拟各种输入;所述验证模块读取所述测试用例中的关键字描述执行测试验证。本发明的有益效果在于,设计一种可运行的测试用例,将测试逻辑和测试数据从 测试脚本中抽取出来,分别由自动测试开发人员和测试人员构建,充分发挥二者各自优势, 二者之间不需要交互。同时提高测试逻辑的可读性,约定一批有意义的关键字用以表达测 试逻辑,使其可直接用于测试用例评审,不需要另行编写复杂详细的测试用例文档。


图1为关键字结构图;图2为基于XML封装关键字的GUI自动测试方法的工作流程图;图3为基于XML封装关键字的GUI自动测试平台的结构图。附图标记说明1-关键字描述模块;2-测试用例模块;3-测试报告格式模块;4-GUI对象库;5_自 动测试引擎;501-项目管理模块;502-解析模块;503-导航模块;504-GUI元素定位模块; 505-GUI元素处理模块;506-消息处理模块;507-验证模块;508-日志模块;509-通用数据 模块;510-多线程和Win32API模块。
具体实施例方式以下结合附图,对本发明上述的和另外的技术特征和优点作更详细的说明。此处 所描述的具体实施例仅仅用以解释本发明,并不用以限定本发明。首先对本发明中的XML关键字、类型及其结构进行说明。请参阅图1所示,其为本 发明基于XML封装关键字的GUI自动测试方法的关键字结构图,其定义了关键字之间的结 构。
关键字的类型有测试框架类测试用例集、测试用例、测试用例前置条件、测试用例后置条件;弓I用类外部测试用例集、测试数据表;变量类变量、结构体;测试管理支持类对应产品需求、对应测试需求;操作类登录系统、菜单、工具栏、输入域、查询、运行SQL语句、运行程序、暂停执 行;输入域类文字、选择、表格、用户提示、按钮、页签、树、条目;验证类界面元素值、界面元素属性、对话框、数据库、文件;验证逻辑类等于、不等于、包含、不包含、大于、小于、大于等于、小于等于;组合类组合输入域、网页对话框、数据驱动;数据驱动类定步长数据驱动、变步长数据驱动。请参阅图2所示,为基于XML封装关键字的GUI自动测试方法的工作流程图,其包 括的步骤是步骤101,测试架构设计人员通过XML编辑工具建立关键字的XML架构文件(其结 构如图1所示),构成关键字描述模块1,所述关键字包括GUI元素;通过定义一整套XML元素及其类型、属性、约束、数据、枚举值,用以描述测试关键 字;在关键字描述模块1的XML架构文件中,定义组、元素名称、元素类型、属性、约束、数据 类型、缺省值;其中,以枚举方式定义属性的可选值,给测试用例设计提供选项,减少出错 率;在元素值中定义测试数据。通过XML转换工具,可将关键字描述模块1的XML架构文件自动生成各个关键字 类型的定义文件,提供给测试平台开发人员使用。步骤102 测试用例设计人员根据关键字描述模块1的XML架构文件,通过XML编 辑工具编写测试用例,所述测试用例为XML数据文件,其中包括测试用例逻辑、测试数据和 预期结果,并组合成不同的测试用例集,构成测试用例模块2 ;测试用例设计人员可以编写一些公用的测试用例,供其他测试用例设计人员引 用,并组合成不同的测试用例集;测试数据和预期结果值在元素值中定义,可用变量表示,也可以用常数表示,也可 以用引用数据文件表示。所述数据文件为Excel格式。步骤103 测试平台开发人员开发自动测试引擎,自动测试引擎解析测试用例模 块2中的XML文件,解释关键字,导航测试执行,定位GUI元素,将当前的GUI对象缓存到 GUI对象库4,加速下一次测试执行。执行测试并验证结果。执行测试结束后,产生文本测 试日志和XML格式测试报告。相应的,本发明提供一种基于XML封装关键字的GUI自动测试平台,包括关键字描 述模块1、测试用例模块2、测试报告格式模块3、GUI对象库4和自动测试引擎5。其中,关键字描述模块1中储存一 XML架构文件,用以描述测试关键字;测试用例 模块2中存储多个测试用例,所述测试用例为XML文件,包括测试逻辑、测试数据和预期结 果;测试报告格式模块3中存储多个XSL文件,用来定义测试报告格式;GUI对象库4中建 立⑶I元素关键字描述和⑶I元素ID的映射。
自动测试引擎5包括项目管理模块501、解析模块502、导航模块503、⑶I元素定 位模块504、⑶I元素处理模块505、消息处理模块506、验证模块507、日志模块508、通用数 据模块509,以及多线程和Win32API模块510。项目管理模块501可建立测试项目,包含测试用例集、设置测试运行时参数,配置 选项;当开始执行测试后,调用解析模块502逐一解析测试用例集中的测试用例XML文件;解析模块502利用反串行化技术解析测试用例XML文件,保存各个关键字对象;导航模块503按照测试对象的不同层次执行各测试用例集、测试用例、递归执行 引用的测试用例;在执行测试用例时,解释所述关键字,调用GUI元素定位模块504定位 ⑶I元素;GUI元素定位模块504读取测试用例中的关键字描述,找到相应的GUI元素,按照 关键字的描述,调用消息处理模块506 ;GUI元素定位模块504建立GUI元素关键字描述和 ⑶I元素ID的映射,缓存⑶I元素对象至⑶I对象库4,在下一次执行即可通过使用元素ID 定位元素,加速测试执行。以元素ID定位元素后,和元素关键字描述进行比较,确定元素ID 是否过期,如过期则更新GUI对象库4。⑶I元素处理模块505处理各种复杂的Web页面⑶I元素,如表格、翻页、参照等, 按照关键字的描述,调用消息处理模块506,模拟各种输入操作;按照不同产品的实现特征,⑶I元素定位模块504和⑶I元素处理模块505通常 需要实现差异化处理,以适应不同产品特点;消息处理模块506在元素对象上触发各种消息,以模拟各种输入;执行各种输入操作后,验证模块507读取关键字描述执行测试验证,包括界面元 素值、界面元素属性、对话框、数据库字段值、文件等各类验证;测试执行之后,日志模块508记录测试结果,将测试过程中发生错误的调试信息 记录到文本格式的测试日志;所述日志模块508调用所述测试报告格式模块3,将每一步的测试结果、测试统计 信息输出到XML格式测试报告,保存错误界面截图,将图片链接到测试报告相应位置,显示 格式化的测试报告;测试报告的数据和格式分离,测试经理可通过定义测试报告格式模块 3中的XSL样式表定制测试报告的显示方式。通用数据模块509处理各种文件输入输出、数据库操作;多线程和Win32API模块510提供多线程处理和调用Win32API功能。其中,网页 对话框、消息提示对话框等模式对话框的出现会暂停主线程的执行,需要启动多线程加以 处理之后,回到主线程继续执行。本发明通过设计一种可运行的测试用例,将测试逻辑和测试数据从测试脚本中抽 取出来,分别由测试平台开发人员和测试用例设计人员构建,充分发挥二者各自优势,二者 之间不需要交互。同时提高测试用例的可读性,约定一批有意义的关键字用以表达测试逻 辑,使其可直接用于测试用例评审,不需要另行编写复杂详细的测试用例文档。以上所述仅为本发明的较佳实施例,对本发明而言仅仅是说明性的,而非限制性 的。本专业技术人员理解,在本发明权利要求所限定的精神和范围内可对其进行许多改变, 修改,甚至等效,但都将落入本发明的保护范围内。
权利要求
1.一种基于XML封装关键字的GUI自动测试方法,其特征在于,包括步骤a,测试架构设计人员建立XML架构文件,用以描述测试关键字,所述关键字包括 ⑶I元素;步骤b,测试用例设计人员按照所述关键字编写XML文件,形成测试用例,所述测试用 例包括测试用例逻辑、测试数据和预期结果;步骤c,测试平台开发人员开发自动测试引擎,解析所述测试用例中的XML文件,解释 所述测试关键字,定位所述GUI元素,执行测试并验证结果。
2.如权利要求1所述的基于XML封装关键字的GUI自动测试方法,其特征在于,所述步 骤a中的XML架构文件中定义所述关键字的组、元素名称、元素类型、属性、约束、数据类型、 缺省值。
3.如权利要求1所述的基于XML封装关键字的GUI自动测试方法,其特征在于,所述步 骤a中还包括通过XML转换工具将所述XML架构文件自动生成所述各个关键字类型的定义 文件,提供给测试平台开发人员使用。
4.如权利要求1所述的基于XML封装关键字的GUI自动测试方法,其特征在于,所述步 骤b中测试用例设计人员根据所述XML架构文件的提示编写所述测试用例。
5.如权利要求1所述的基于XML封装关键字的GUI自动测试方法,其特征在于,所述步 骤b中的测试数据为用变量表示,或者用常数表示,或者用引用独立的数据文件表示。
6.如权利要求1所述的基于XML封装关键字的GUI自动测试方法,其特征在于,所述步 骤b中,测试用例设计人员将所述测试用例组合成不同的测试用例集。
7.一种基于XML封装关键字的GUI自动测试平台,其特征在于,包括关键字描述模块、 测试用例模块和自动测试引擎;所述关键字描述模块中储存一 XML架构文件,用以描述测试关键字,所述关键字包括 ⑶I元素;所述测试用例模块中存储多个测试用例,所述测试用例为XML文件,包括测试逻辑、测 试数据和预期结果;所述自动测试引擎解析所述XML文件,解释所述关键字,导航测试执行,定位所述GUI 元素,执行测试并验证结果。
8.如权利要求7所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述自 动测试引擎包括项目管理模块、解析模块、导航模块、GUI元素定位模块、消息处理模块和验 证模块;所述项目管理模块建立测试项目,包含测试用例集、设置测试运行时参数,配置选项, 调用所述解析模块逐一解析测试用例集中的测试用例XML文件;所述解析模块解析测试用例XML文件,保存所述各个关键字对象;所述导航模块按照测试对象的不同层次执行各测试用例集、测试用例、递归执行引用 的测试用例,解释所述关键字,调用所述GUI元素定位模块定位GUI元素;所述GUI元素定位模块读取测试用例中的关键字描述,找到相应的GUI元素,按照关键 字的描述,调用所述消息处理模块;所述消息处理模块在元素对象上触发各种消息,以模拟各种输入;执行各种输入操作 之后,调用所述验证模块,验证应用程序的输出;所述验证模块读取所述测试用例中的关键字描述执行测试验证。
9.如权利要求8所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述测 试平台进一步包括GUI对象库,建立所述GUI元素关键字描述和GUI元素ID的映射,下一 次执行则通过使用元素ID定位元素,加速测试执行。
10.如权利要求8所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述 测试平台进一步包括测试报告模块,存储多个XSL文件,用来定义测试报告格式。
11.如权利要求8所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述 自动测试引擎进一步包括GUI元素处理模块,用于处理各种复杂的Web页面GUI元素,按照 关键字的描述,调用所述消息处理模块,模拟各种输入操作。
12.如权利要求8所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述 自动测试引擎进一步包括日志模块,用于记录测试结果,将测试过程中发生错误的调试信 息记录到文本格式的测试日志。
13.如权利要求12所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述 日志模块调用所述测试报告模块定义的格式文件,将每一步的测试结果、测试统计信息输 出到XML格式测试报告,保存错误界面截图,将图片链接到测试报告相应位置,显示格式化 的测试报告。
14.如权利要求8所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述 自动测试引擎进一步包括通用数据模块,用于处理各种文件输入输出、数据库操作。
15.如权利要求8所述的基于XML封装关键字的GUI自动测试平台,其特征在于,所述 自动测试引擎进一步包括多线程和Win32API模块,提供多线程处理和调用Win32API功能。
全文摘要
基于XML封装关键字的GUI自动测试方法与自动测试平台,所述方法包括步骤a,测试架构设计人员建立XML架构文件,用以描述测试关键字,所述关键字包括GUI元素;步骤b,测试用例设计人员按照所述关键字编写XML文件,形成测试用例,所述测试用例包括测试用例逻辑、测试数据和预期结果;步骤c,测试平台开发人员开发自动测试引擎,解析所述测试用例中的XML文件,解释所述测试关键字,定位所述GUI元素,执行测试并验证结果。将测试逻辑和测试数据从测试脚本中抽取出来,分别由自动测试开发人员和测试人员构建,充分发挥二者各自优势,二者之间不需要交互。
文档编号G06F9/44GK101996131SQ20091009052
公开日2011年3月30日 申请日期2009年8月19日 优先权日2009年8月19日
发明者胡骥 申请人:航天信息股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1