CN103186459B - 基于脚本的java图形用户界面自动测试方法 - Google Patents
基于脚本的java图形用户界面自动测试方法 Download PDFInfo
- Publication number
- CN103186459B CN103186459B CN201110455392.7A CN201110455392A CN103186459B CN 103186459 B CN103186459 B CN 103186459B CN 201110455392 A CN201110455392 A CN 201110455392A CN 103186459 B CN103186459 B CN 103186459B
- Authority
- CN
- China
- Prior art keywords
- test
- script
- automatic test
- java
- user interface
- 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
Links
Abstract
本发明涉及计算机技术。本发明解决了现有JAVA应用程序中图形化界面的测试需要大量人工的问题,提供了一种基于脚本的JAVA图形用户界面自动测试方法,其技术方案可概括为:开发时,对于需要测试的界面组件对象设置对应的组件名称,JAVA应用程序入口主类中为自动化测试工程提供主窗体对象读取函数接口,在自动化测试工程中启动JAVA应用程序,读取JAVA应用程序主窗体对象,再读取所有需要测试的界面组件对象,然后读取并解析预先准备的用户测试脚本,并根据指令及该指令对应的组件名称对界面组件对象进行测试,最后检测执行结果,生成测试报告。本发明的有益效果是:缩短测试时间,适用于JAVA应用程序中图形化界面的测试。
Description
技术领域
本发明涉及计算机技术,特别涉及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()。
Claims (15)
1.基于脚本的JAVA图形用户界面自动测试方法,其特征在于,包括以下步骤:
步骤1.开发JAVA应用程序界面时,对于需要测试的界面组件对象设置对应的组件名称;
步骤2.JAVA应用程序入口主类中为自动化测试工程提供主窗体对象读取函数接口;
步骤3.建立自动化测试工程,在自动化测试工程中启动JAVA应用程序,读取JAVA应用程序主窗体对象;
步骤4.自动化测试工程通过主窗体对象读取所有需要测试的界面组件对象;
步骤5.自动化测试工程读取并解析预先准备的用户测试脚本,根据用户测试脚本中的指令及该指令对应的组件名称对需要测试的界面组件对象进行测试;
步骤6.自动化测试工程检测用户测试脚本指令的执行结果,得到测试结果,生成测试报告。
2.如权利要求1所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤3中,所述在自动化测试工程中启动JAVA应用程序的方法为,通过调用JAVA应用程序的main函数启动JAVA应用程序。
3.如权利要求1或2所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤5中,所述根据用户测试脚本中的指令对需要测试的界面组件对象进行测试的方法为:自动化测试工程根据用户测试脚本对各用户界面组件对象设置数据或触发相应事件。
4.如权利要求3所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤6中,所述自动化测试工程检测用户测试脚本指令的执行结果的方法为:对于直接触发事件,等待事件执行结束后进行检测;对于通过线程触发的事件,由该线程进行检测。
5.如权利要求3所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,所述自动化测试工程根据用户测试脚本对各用户界面组件对象设置数据的方法为,根据用户测试脚本指令中的组件名称以及设置值对对应的界面组件进行设置。
6.如权利要求1所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤5中,在根据用户测试脚本中的指令对需要测试的界面组件对象进行测试之前,对用户测试脚本进行正确性检查。
7.如权利要求1所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,所述自动化测试工程与JAVA应用程序在同一个进程中。
8.如权利要求1-2、6-7任一项所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,在步骤3之前还包括步骤:准备用户测试脚本。
9.如权利要求1-2、6-7任一项所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤6中,所述测试报告包括错误报告和/或调试报告和/或输出测试信息报告。
10.如权利要求3所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,在步骤3之前还包括步骤:准备用户测试脚本。
11.如权利要求3所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤6中,所述测试报告包括错误报告和/或调试报告和/或输出测试信息报告。
12.如权利要求4所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,在步骤3之前还包括步骤:准备用户测试脚本。
13.如权利要求4所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤6中,所述测试报告包括错误报告和/或调试报告和/或输出测试信息报告。
14.如权利要求5所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,在步骤3之前还包括步骤:准备用户测试脚本。
15.如权利要求5所述的基于脚本的JAVA图形用户界面自动测试方法,其特征在于,步骤6中,所述测试报告包括错误报告和/或调试报告和/或输出测试信息报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110455392.7A CN103186459B (zh) | 2011-12-30 | 2011-12-30 | 基于脚本的java图形用户界面自动测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110455392.7A CN103186459B (zh) | 2011-12-30 | 2011-12-30 | 基于脚本的java图形用户界面自动测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103186459A CN103186459A (zh) | 2013-07-03 |
CN103186459B true CN103186459B (zh) | 2016-05-11 |
Family
ID=48677635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110455392.7A Active CN103186459B (zh) | 2011-12-30 | 2011-12-30 | 基于脚本的java图形用户界面自动测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103186459B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778121B (zh) * | 2015-03-25 | 2018-09-18 | 网易(杭州)网络有限公司 | 游戏程序的测试方法、装置及系统 |
CN106155902A (zh) * | 2015-04-28 | 2016-11-23 | 中兴通讯股份有限公司 | 一种js调试页面方法和装置 |
CN105718353B (zh) * | 2016-01-18 | 2019-01-29 | 深圳市紫光同创电子有限公司 | 一种用于图形界面应用的测试方法、装置及系统 |
CN105930262B (zh) * | 2016-03-02 | 2018-04-20 | 平安科技(深圳)有限公司 | 应用程序用户界面自动化测试方法及电子设备 |
CN108121650B (zh) * | 2016-11-29 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种对于页面用户界面的测试方法及装置 |
CN109003602B (zh) * | 2018-09-10 | 2020-03-24 | 百度在线网络技术(北京)有限公司 | 语音产品的测试方法、装置、设备及计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851667A (zh) * | 2006-02-15 | 2006-10-25 | 华为技术有限公司 | 一种图形用户界面的测试方法和系统 |
CN101082877A (zh) * | 2006-05-30 | 2007-12-05 | 上海科泰世纪科技有限公司 | 图形用户界面程序的自动测试接口及其自动测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7055137B2 (en) * | 2001-11-29 | 2006-05-30 | I2 Technologies Us, Inc. | Distributed automated software graphical user interface (GUI) testing |
-
2011
- 2011-12-30 CN CN201110455392.7A patent/CN103186459B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851667A (zh) * | 2006-02-15 | 2006-10-25 | 华为技术有限公司 | 一种图形用户界面的测试方法和系统 |
CN101082877A (zh) * | 2006-05-30 | 2007-12-05 | 上海科泰世纪科技有限公司 | 图形用户界面程序的自动测试接口及其自动测试方法 |
Non-Patent Citations (1)
Title |
---|
面向图形用户界面的自动化测试技术研究;潘丽丽;《中国优秀硕士学位论文全文数据库信息科技辑》;20100115(第1期);第42-54页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103186459A (zh) | 2013-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704392B (zh) | 一种测试用例的处理方法及服务器 | |
US10606731B2 (en) | Code component debugging in an application program | |
CN103186459B (zh) | 基于脚本的java图形用户界面自动测试方法 | |
US10853232B2 (en) | Adaptive system for mobile device testing | |
US9519571B2 (en) | Method for analyzing transaction traces to enable process testing | |
US20150058826A1 (en) | Systems and methods for efficiently and effectively detecting mobile app bugs | |
CN103377120B (zh) | 一种应用程序测试方法及装置 | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
US20170168916A1 (en) | Object monitoring in code debugging | |
US10049031B2 (en) | Correlation of violating change sets in regression testing of computer software | |
Grechanik et al. | Creating GUI testing tools using accessibility technologies | |
CN103399814B (zh) | 自动化测试的方法及装置 | |
CN105511977A (zh) | 一种车载导航系统测试方法与装置 | |
Liu et al. | Guided bug crush: Assist manual gui testing of android apps via hint moves | |
CN108920382B (zh) | 测试用例生成方法、装置、存储介质及服务器 | |
CN113778898A (zh) | 用户界面自动化测试方法、装置、电子设备及存储介质 | |
Anjum et al. | A comparative analysis of quality assurance of mobile applications using automated testing tools | |
Tierno et al. | Open issues for the automotive software testing | |
Bierig et al. | Essentials of Software Testing | |
CN110286882B (zh) | 一种基于模型检测的前台系统设计与验证方法 | |
us Saqib et al. | Functionality, performance, and compatibility testing: A model based approach | |
Xu et al. | Compsuite: A Dataset of Java Library Upgrade Incompatibility Issues | |
CN114936148A (zh) | 页面测试方法、装置、电子设备及可读存储介质 | |
Хадеева | Functional software testing: principles, objectives and methods of implementation | |
Cardenas | On Supporting Android Software Developers and Testers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |