首页> 中国专利> 基于脚本的JAVA图形用户界面自动测试方法

基于脚本的JAVA图形用户界面自动测试方法

摘要

本发明涉及计算机技术。本发明解决了现有JAVA应用程序中图形化界面的测试需要大量人工的的问题,提供了一种基于脚本的JAVA图形用户界面自动测试方法,其技术方案可概括为:开发时,对于需要测试的界面组件对象设置对应的组件名称,JAVA应用程序入口主类中为自动化测试工程提供主窗体对象读取函数接口,在自动化测试工程中启动JAVA应用程序,读取JAVA应用程序主窗体对象,再读取所有需要测试的界面组件对象,然后读取并解析预先准备的用户测试脚本,并根据指令及该指令对应的组件名称对界面组件对象进行测试,最后检测执行结果,生成测试报告。本发明的有益效果是:缩短测试时间,适用于JAVA应用程序中图形化界面的测试。

著录项

  • 公开/公告号CN103186459A

    专利类型发明专利

  • 公开/公告日2013-07-03

    原文格式PDF

  • 申请/专利权人 迈普通信技术股份有限公司;

    申请/专利号CN201110455392.7

  • 发明设计人 邓鹏;

    申请日2011-12-30

  • 分类号G06F11/36(20060101);

  • 代理机构成都虹桥专利事务所(普通合伙);

  • 代理人李顺德

  • 地址 610041 四川省成都市高新区九兴大道16号迈普大厦

  • 入库时间 2024-02-19 18:48:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-11

    授权

    授权

  • 2013-07-31

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20111230

    实质审查的生效

  • 2013-07-03

    公开

    公开

说明书

技术领域

本发明涉及计算机技术,特别涉及JAVA应用程序中图形化界面的测试技术。

背景技术

随着信息技术的发展,计算机应用越来越广泛,各种应用系统相继而生,与客户交互过 程是必不可少的,交互方式都是采用界面,早期的字符界面已经在用户那儿被淘汰,目前主 要以图形化界面为主。在JAVA应用程序中,开发GUI(图形用户接口)的图形化界面,是大 部分JAVA应用程序必不可少的功能。

在JAVA开发GUI界面时,对界面测试的要求也比较多,比如:边界测试、正确性测试、 界面操作过程测试、功能测试等等,这些测试过程一直都是繁重的测试任务。特别在修改一 个BUG后以及在提交新的一个版本后等,测试人员为保证软件的正确性需要将所有的功能验 证一遍,而这些工作大部分属于重复劳动。

在一个大型的JAVA应用程序中,用户交互界面很多,每个界面测试的内容也很多,当成 功完成测试后,如果某个模块出现问题或者增加了新的功能,这时如果手工去验证所有的功 能,需要花费比较大的人力和时间,且不一定能完全回归到所有的测试用例。

目前有一种界面录制回放工具,通过该工具对界面进行录制,可以通过回放的方式完成 指定的测试过程,但是对于该工具来说,存在一个很大的问题,若每个界面产生了很小的变 化,这个变化就会使得录制过程重新进行,导致该工具不能广泛应用。

发明内容

本发明的目的就是克服目前JAVA应用程序中图形化界面的测试需要大量人工的缺点, 提供一种基于脚本的JAVA图形用户界面自动测试方法。

本发明解决其技术问题,采用的技术方案是,基于脚本的JAVA图形用户界面自动测试方 法,其特征在于,包括以下步骤:

步骤1.开发JAVA应用程序界面时,对于需要测试的界面组件对象设置对应的组件名称;

步骤2.JAVA应用程序入口主类中为自动化测试工程提供主窗体对象读取函数接口;

步骤3.建立自动化测试工程,在自动化测试工程中启动JAVA应用程序,读取JAVA应用 程序主窗体对象;

步骤4.自动化测试工程通过主窗体对象读取所有需要测试的界面组件对象;

步骤5.自动化测试工程读取并解析预先准备的用户测试脚本,根据用户测试脚本中的指 令及该指令对应的组件名称对需要测试的界面组件对象进行测试;

步骤6.自动化测试工程检测用户测试脚本指令的执行结果,得到测试结果,生成测试 报告。

优选地,步骤3中,所述在自动化测试工程中启动JAVA应用程序的方法为,通过调用 JAVA应用程序的main函数启动JAVA应用程序。

优选地,步骤5中,所述根据用户测试脚本中的指令对需要测试的界面组件对象进行测 试的方法为:自动化测试工程根据用户测试脚本对各用户界面组件对象设置数据或触发相应 事件。

优选地,步骤5中,所述自动化测试工程根据用户测试脚本对各用户界面组件对象设置 数据的方法为,根据用户测试脚本指令中的组件名称以及设置值对对应的界面组件进行设置。

优选地,步骤6中,所述自动化测试工程检测用户测试脚本指令的执行结果的方法为: 对于直接触发事件,等待事件执行结束后进行检测;对于通过线程触发的事件,由该线程进 行检测。

优选地,步骤5中,在根据用户测试脚本中的指令对需要测试的界面组件对象进行测试 之前,对用户测试脚本进行正确性检查。

具体地,在步骤3之前还包括步骤:准备用户测试脚本。

本发明的有益效果是,通过上述基于脚本的JAVA图形化界面自动测试方法,通过一个 自动测试过程,极大的缩短了所需要的测试时间,降低了整个系统成本。

附图说明

图1是本发明基于脚本的JAVA图形化界面自动测试方法流程图。

具体实施方式

下面结合实施例及附图,详细描述本发明的技术方案。

本发明的基于脚本的JAVA图形用户界面自动测试方法中,首先开发JAVA界面时,对于 需要测试的界面组件设置对应的组件名称,然后由JAVA应用程序入口主类中提供主窗体读取 接口,使得自动化测试工程能够获得主窗体的需要测试的界面组件对象。自动化测试工程建 立后,主窗体的需要测试的界面组对象件将传入到自动化测试工程中,在根据预先准备的用 户测试脚本,通过读取并解析用户脚本,对用户脚本进行正确性检查及脚本对象生成,最后 系统根据用户脚本对各需要测试的界面组件对象设置数据或触发相应事件,完成不同事件发 起,检测设置数据后或事件完成后的结果,得到测试结果,生成测试报告。

参见图1,为本发明基于脚本的JAVA图形化界面自动测试方法流程图。包括如下步骤:

步骤100,准备用户测试脚本。在用户脚本中可以定义函数方法和过程调用,以简化用 户脚本。

步骤101,开发JAVA应用程序界面时,对于需要测试的界面组件对象设置对应的组件名 称。

步骤102,JAVA应用程序入口主类中为自动化测试工程提供主窗体对象读取函数接口。

请注意,以上100-102三个步骤为准备工作,没有绝对的先后顺序之分。但必须要在步 骤103中启动JAVA应用程序之前完成。

步骤103,建立自动化测试工程,在自动化测试工程中启动JAVA应用程序,读取JAVA 应用程序主窗体对象。本步骤中,所述在自动化测试工程中启动JAVA应用程序的方法为,通 过调用JAVA应用程序的main函数启动JAVA应用程序。本发明实施例在测试工程中启动JAVA 应用项目,不需要通过进程来启动,本发明的自动化测试工程与JAVA应用程序在同一个进程 中。

步骤104,自动化测试工程通过主窗体对象读取所有需要测试的界面组件对象。

步骤105,自动化测试工程读取并解析预先准备的用户测试脚本,根据用户测试脚本中 的指令及该指令对应的组件名称对需要测试的界面组件对象进行测试。

本步骤中,所述根据用户测试脚本中的指令对需要测试的界面组件对象进行测试的方法 为:自动化测试工程根据用户测试脚本对各用户界面组件对象设置数据或触发相应事件。所 述自动化测试工程根据用户测试脚本对各用户界面组件对象设置数据的方法为,根据用户测 试脚本指令中的组件名称以及设置值对对应的界面组件进行设置。另外,在根据用户测试脚 本中的指令对需要测试的界面组件对象进行测试之前,对用户测试脚本进行正确性检查。

步骤106.自动化测试工程检测用户测试脚本指令的执行结果,得到测试结果,生成测 试报告。本步骤中,所述自动化测试工程检测用户测试脚本指令的执行结果的方法为:对于 直接触发事件,等待事件执行结束后进行检测;对于通过线程触发的事件,由该线程进行检 测。

本步骤的具体检测可以是错误检测,也可以使正确性检测,只要符合定义的业务逻辑就 算正确。比如输入错误数据,点击保存,会弹出错误提示框。所述测试报告包括错误报告和/ 调试报告和/输出测试信息报告。

实施例

本实施例的自动化测试工程,通过JAVA应用程序入口主类中提供的函数接口 getComponent得到有名称为testTextField的需要测试的界面组件JTextField,以及名称为 testButton的需要测试的界面组件JButton。

可以通过查找的方式得到两个界面组件的对象,如果用户测试脚本中定义:

swing.textfield.testTextField.setText(“测试名称”);

swing.button.testButton.click();

在测试时可以如下处理:

testTextField.setText(…);

testButton.doClick()。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号