CN102968371A - 测试java api单元组件的方法及装置 - Google Patents
测试java api单元组件的方法及装置 Download PDFInfo
- Publication number
- CN102968371A CN102968371A CN2012104893336A CN201210489333A CN102968371A CN 102968371 A CN102968371 A CN 102968371A CN 2012104893336 A CN2012104893336 A CN 2012104893336A CN 201210489333 A CN201210489333 A CN 201210489333A CN 102968371 A CN102968371 A CN 102968371A
- Authority
- CN
- China
- Prior art keywords
- test
- api
- privately owned
- owned instruction
- testing
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种测试JAVA API单元组件的方法及装置,涉及JAVA系统测试领域,该方法包括以下步骤:根据待测的JAVA API单元组件,创建API测试库,所述API测试库包括待测的JAVA API单元组件、待测的JAVA API单元组件变量信息、测试API私有指令、测试API私有指令返回结果;使用本地化编译工具编译API测试库,生成测试用的应用Applet;根据测试项,调用应用Applet,通过本地测试工具生成测试脚本;执行测试脚本;测试完毕,删除测试应用Applet,恢复测试环境。本发明能够降低测试人员的工作强度,且不要求测试人员具备很专业的脚本编程知识,减少测试过程中的开发和维护成本。
Description
技术领域
本发明涉及JAVA系统测试领域,特别是涉及一种测试JAVA API单元组件的方法及装置。
背景技术
随着JAVA技术的不断推广和完善,JAVA应用的使用也越来越广泛,为了满足不同行业的不同需求,需要通过技术手段来满足不同的功能。API(Application Programming Interface,应用编程接口)作为JAVA系统的重要组成部分,也是JAVA系统测试过程中必不可少的一个环节。在实际的开发过程中,开发人员通过创建API来实现各个组件的功能,以此来满足不同行业的不同需求。
API测试用于验证组成软件的单个方法是否正确。API测试又称为单元测试、模块测试、组件测试或者元件测试,在JAVA系统测试过程中,首先必须确定JAVA系统中每个单独的模块工作正常,否则,这个JAVA系统整体不可能是正确的,API测试对于任何重要的软件系统来说都是必不可少的。在产品发布前,相关的测试工作是确保产品质量的重要因素,测试人员需要面对各种复杂的测试环境,以满足不同的用户需求。
在现有的测试过程当中,不仅有符合GP(Globle Platform,全球化平台)规范的标准API,还有一种应用开发人员为实现指定功能而实现的自定义API,这两种API都需要根据API说明来展开测试,如果API的功能有修改或增加时,即对应的单元组件有更新时,需要重 新开发相应的测试平台,这无疑增加了测试人员的工作强度,并且要求测试人员需要具备专业的脚本编程知识,开发和维护成本较高。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种测试JAVA API单元组件的方法及装置,能够降低测试人员的工作强度,且不要求测试人员具备很专业的脚本编程知识,减少测试过程中的开发和维护成本。
本发明提供的测试JAVA API单元组件的方法及装置,包括以下步骤:
S1、根据待测的JAVA API单元组件,创建API测试库,所述API测试库包括待测的JAVA API单元组件、待测的JAVA API单元组件变量信息、测试API私有指令、测试API私有指令返回结果;
S2、使用本地化编译工具编译API测试库,生成测试用的应用Applet;
S3、根据测试项,调用应用Applet,通过本地测试工具生成测试脚本;
S4、执行所述测试脚本;
S5、测试完毕,删除测试应用Applet,恢复测试环境。
在上述技术方案中,步骤S1中创建API测试库以后还包括以下步骤:所述API的测试项有更新时,对应更新测试API私有指令。
在上述技术方案中,步骤S2中所述应用Applet符合GP2.2.1的规范所定义的范围。
在上述技术方案中,步骤S4中测试API私有指令响应的数据必须满足测试案例中的预期结果。
在上述技术方案中,所述待测的JAVA API单元组件为系统时间 设置函数时,检测所述系统时间设置函数的输入/输出参数是否正确、功能是否满足要求、异常情况是否被正确处理,具体包括以下步骤:
步骤101、将所述系统时间设置函数的开发代码包拷贝到编译工具中对应的目录下,供后续编写应用Applet调用,创建API测试库,包括以下信息:
(1)一个用于存放系统时间的数组;
(2)测试案例个数;
(3)调用所述系统时间设置函数、读取数组中存放的系统时间的第一私有指令、第二私有指令、第三私有指令,其中:
所述第一私有指令,用于:提示输入时间,并通过本地化测试工具显示出来;
所述第二私有指令,用于:验证获取的当前系统时间是否满足要求;
所述第三私有指令,用于:检查当第一私有指令输入的时间格式异常时,系统有没有对该异常正确处理;
步骤102、使用本地化编译工具对创建的API测试库进行编译,并生成测试用的应用Applet;
步骤103、调用应用Applet:根据测试案例,调用应用Applet中的第一私有指令、第二私有指令、第三私有指令,并通过本地测试工具生成测试脚本;
步骤104、执行测试脚本:接受私有指令输出,并对各私有指令返回的实际结果同预期结果进行对比,依次判断所述系统时间设置函数的功能是否满足要求;
步骤105、测试完毕,删除测试应用Applet,恢复测试环境。
本发明还提供一种测试JAVA API单元组件的装置,包括API测 试库创建单元、API测试库编译单元、测试脚本生成单元、测试脚本执行单元、测试环境恢复单元,其中:
所述API测试库创建单元,用于:根据待测的JAVA API单元组件,创建API测试库,所述API测试库包括待测的JAVA API单元组件、待测的JAVA API单元组件变量信息、测试API私有指令、测试API私有指令返回结果;
所述API测试库编译单元,用于:使用本地化编译工具编译API测试库,生成测试用的应用Applet;
所述测试脚本生成单元,用于:根据测试项,调用应用Applet,通过本地测试工具生成测试脚本,并将生成的测试脚本发送到测试脚本执行单元;
所述测试脚本执行单元,用于:收到测试脚本生成单元发来的测试脚本后,执行所述测试脚本;
所述测试环境恢复单元,用于:测试完毕后,删除测试应用Applet,恢复测试环境。
在上述技术方案中,还包括判断单元和测试API私有指令更新单元,其中:
所述判断单元,用于:判断API的测试项是否有更新,如果判定API的测试项有更新,则生成测试API私有指令更新触发信号,并将该测试API私有指令更新触发信号发送到测试API私有指令更新单元;
所述测试API私有指令更新单元,用于:收到判断单元发来的测试API私有指令更新触发信号时,对应更新测试API私有指令。
在上述技术方案中,所述API测试库编译单元生成的应用Applet必须符合GP2.2.1的规范所定义的范围。
在上述技术方案中,所述测试脚本执行单元执行测试脚本的过程中,测试API私有指令响应的数据必须满足测试案例中的预期结果。
与现有技术相比,本发明的优点如下:
本发明通过创建应用Applet,对测试系统中的JAVA API进行测试,测试人员测试时,根据应用Applet中定义的私有指令编写测试脚本,再由本地测试客户端根据API解析测试脚本,并将解析后的API调用指令发送给测试系统而完成测试脚本的执行工作。在编写测试脚本时,不需要考虑API底层的功能实现,根据测试项的需要,只需要调用应用Applet中对应的私有指令即可,再结合本地测试工具,能够完全实现后期的测试自动化;API的功能有修改或增加时,无需开发相应的测试平台,只需要对应用Applet进行维护,后期的脚本维护量少,降低测试人员的工作强度,且不需要具备很专业的脚本编程知识,减少测试过程中的开发和维护成本。
附图说明
图1是本发明实施例中测试JAVA API单元组件的方法流程图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
为了检测JAVA API单元组件是否可靠,包括检测API的输入/输出参数是否正确、API的功能是否满足要求、API的异常情况是否被正确处理,本发明实施例提供一种测试JAVA API单元组件的方法,参见图1所示,该方法包括以下步骤:
S1、根据待测的JAVA API单元组件,创建API测试库,该API测试库包括待测的JAVA API单元组件、待测的JAVA API单元组件变 量信息、测试API私有指令、测试API私有指令返回结果;该API的测试项有更新时,对应更新测试API私有指令;
S2、使用本地化编译工具编译API测试库,生成测试用的应用Applet,该应用Applet必须符合GP2.2.1的规范所定义的范围;
S3、根据测试项,调用应用Applet,通过本地测试工具生成测试脚本;
S4、执行上述测试脚本,测试API私有指令响应的数据必须满足测试案例中的预期结果;
S5、测试完毕,删除测试应用Applet,恢复测试环境。
本发明实施例还提供一种测试JAVA API单元组件的装置,包括API测试库创建单元、判断单元、测试API私有指令更新单元、API测试库编译单元、测试脚本生成单元、测试脚本执行单元、测试环境恢复单元,其中:
API测试库创建单元,用于:根据待测的JAVA API单元组件,创建API测试库,该API测试库包括待测的JAVA API单元组件、待测的JAVA API单元组件变量信息、测试API私有指令、测试API私有指令返回结果;
判断单元,用于:判断API的测试项是否有更新,如果判定API的测试项有更新,则生成测试API私有指令更新触发信号,并将该测试API私有指令更新触发信号发送到测试API私有指令更新单元;
测试API私有指令更新单元,用于:收到判断单元发来的测试API私有指令更新触发信号时,对应更新测试API私有指令;
API测试库编译单元,用于:使用本地化编译工具编译API测试库,生成测试用的应用Applet,该应用Applet必须符合GP2.2.1的规范所定义的范围;
测试脚本生成单元,用于:根据测试项,调用应用Applet,通过本地测试工具生成测试脚本,并将生成的测试脚本发送到测试脚本执行单元;
测试脚本执行单元,用于:收到测试脚本生成单元发来的测试脚本后,执行该测试脚本,测试API私有指令响应的数据必须满足测试案例中的预期结果;
测试环境恢复单元,用于:测试完毕后,删除测试应用Applet,恢复测试环境。
下面以Time_SetCalendarTime(设置时间)函数为例进行说明。
假设待测的JAVA API单元组件为系统时间设置函数(Time_SetCalendarTime函数),检测该系统时间设置函数的输入/输出参数是否正确、功能是否满足要求、异常情况是否被正确处理,具体包括如下步骤:
步骤101、将该系统时间设置函数的开发代码包拷贝到编译工具中对应的目录下,供后续编写应用Applet调用,创建API测试库,包括以下信息:
(1)一个用于存放系统时间的数组;
(2)测试案例个数;
(3)调用该系统时间设置函数、读取数组中存放的系统时间的第一私有指令、第二私有指令、第三私有指令,其中:
第一私有指令,用于:提示输入时间,并通过本地化测试工具显示出来;
第二私有指令,用于:验证获取的当前系统时间是否满足要求;
第三私有指令,用于:检查当第一私有指令输入的时间格式异常时,系统有没有对该异常正确处理;
步骤102、使用本地化编译工具对创建的API测试库进行编译,并生成测试用的应用Applet;
步骤103、调用应用Applet:根据测试案例,调用应用Applet中的第一私有指令、第二私有指令、第三私有指令,并通过本地测试工具生成可以在本地测试工具中执行的测试脚本;
步骤104、执行测试脚本:接受私有指令输出,并对各私有指令返回的实际结果同预期结果进行对比,依次判断该系统时间设置函数的功能是否满足要求;
步骤105、测试完毕,删除测试应用Applet,恢复测试环境。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明包含这些改动和变型在内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (9)
1.一种测试JAVA API单元组件的方法,其特征在于,包括以下步骤:
S1、根据待测的JAVA API单元组件,创建API测试库,所述API测试库包括待测的JAVA API单元组件、待测的JAVA API单元组件变量信息、测试API私有指令、测试API私有指令返回结果;
S2、使用本地化编译工具编译API测试库,生成测试用的应用Applet;
S3、根据测试项,调用应用Applet,通过本地测试工具生成测试脚本;
S4、执行所述测试脚本;
S5、测试完毕,删除测试应用Applet,恢复测试环境。
2.如权利要求1所述的测试JAVA API单元组件的方法,其特征在于:步骤S1中创建API测试库以后还包括以下步骤:所述API的测试项有更新时,对应更新测试API私有指令。
3.如权利要求1所述的测试JAVA API单元组件的方法,其特征在于:步骤S2中所述应用Applet符合GP2.2.1的规范所定义的范围。
4.如权利要求1所述的测试JAVA API单元组件的方法,其特征在于:步骤S4中测试API私有指令响应的数据必须满足测试案例中的预期结果。
5.如权利要求1至4中任一项所述的测试JAVA API单元组件的方法,其特征在于:所述待测的JAVA API单元组件为系统时间设置函数时,检测所述系统时间设置函数的输入/输出参数是否正确、功能是否满足要求、异常情况是否被正确处理,具体包括以下步骤:
步骤101、将所述系统时间设置函数的开发代码包拷贝到编译工具中对应的目录下,供后续编写应用Applet调用,创建API测试库,包括以下信息:
(1)一个用于存放系统时间的数组;
(2)测试案例个数;
(3)调用所述系统时间设置函数、读取数组中存放的系统时间的第一私有指令、第二私有指令、第三私有指令,其中:
所述第一私有指令,用于:提示输入时间,并通过本地化测试工具显示出来;
所述第二私有指令,用于:验证获取的当前系统时间是否满足要求;
所述第三私有指令,用于:检查当第一私有指令输入的时间格式异常时,系统有没有对该异常正确处理;
步骤102、使用本地化编译工具对创建的API测试库进行编译,并生成测试用的应用Applet;
步骤103、调用应用Applet:根据测试案例,调用应用Applet中的第一私有指令、第二私有指令、第三私有指令,并通过本地测试工具生成测试脚本;
步骤104、执行测试脚本:接受私有指令输出,并对各私有指令返回的实际结果同预期结果进行对比,依次判断所述系统时间设置函数的功能是否满足要求;
步骤105、测试完毕,删除测试应用Applet,恢复测试环境。
6.一种测试JAVA API单元组件的装置,其特征在于:包括API测试库创建单元、API测试库编译单元、测试脚本生成单元、测试脚本执行单元、测试环境恢复单元,其中:
所述API测试库创建单元,用于:根据待测的JAVA API单元组件,创建API测试库,所述API测试库包括待测的JAVA API单元组件、待测的JAVA API单元组件变量信息、测试API私有指令、测试API私有指令返回结果;
所述API测试库编译单元,用于:使用本地化编译工具编译API测试库,生成测试用的应用Applet;
所述测试脚本生成单元,用于:根据测试项,调用应用Applet,通过本地测试工具生成测试脚本,并将生成的测试脚本发送到测试脚本执行单元;
所述测试脚本执行单元,用于:收到测试脚本生成单元发来的测试脚本后,执行所述测试脚本;
所述测试环境恢复单元,用于:测试完毕后,删除测试应用Applet,恢复测试环境。
7.如权利要求6所述的测试JAVA API单元组件的装置,其特征在于:还包括判断单元和测试API私有指令更新单元,其中:
所述判断单元,用于:判断API的测试项是否有更新,如果判定API的测试项有更新,则生成测试API私有指令更新触发信号,并将该测试API私有指令更新触发信号发送到测试API私有指令更新单元;
所述测试API私有指令更新单元,用于:收到判断单元发来的测试API私有指令更新触发信号时,对应更新测试API私有指令。
8.如权利要求6所述的测试JAVA API单元组件的装置,其特征在于:所述API测试库编译单元生成的应用Applet必须符合GP2.2.1的规范所定义的范围。
9.如权利要求6至8中任一项所述的测试JAVA API单元组件的装置,其特征在于:所述测试脚本执行单元执行测试脚本的过程中,测试API私有指令响应的数据必须满足测试案例中的预期结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489333.6A CN102968371B (zh) | 2012-11-26 | 2012-11-26 | 测试java api单元组件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210489333.6A CN102968371B (zh) | 2012-11-26 | 2012-11-26 | 测试java api单元组件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102968371A true CN102968371A (zh) | 2013-03-13 |
CN102968371B CN102968371B (zh) | 2015-09-23 |
Family
ID=47798523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210489333.6A Active CN102968371B (zh) | 2012-11-26 | 2012-11-26 | 测试java api单元组件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102968371B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550113A (zh) * | 2015-12-18 | 2016-05-04 | 网易(杭州)网络有限公司 | Web测试方法与测试机 |
CN106126428A (zh) * | 2016-08-11 | 2016-11-16 | 浪潮电子信息产业股份有限公司 | 一种基于软件系统测试优化的设计方法 |
CN106201864A (zh) * | 2016-06-27 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种应用程序编程接口api测试方法、装置及移动设备 |
CN106326111A (zh) * | 2016-08-11 | 2017-01-11 | 浪潮电子信息产业股份有限公司 | 一种基于Fitnesse的网页页面和接口自动化测试框架 |
CN107357729A (zh) * | 2017-07-07 | 2017-11-17 | 广东中星电子有限公司 | 测试软件的方法和电子设备 |
WO2019223070A1 (zh) * | 2018-05-25 | 2019-11-28 | 平安科技(深圳)有限公司 | 应用测试方法、装置、设备及可读存储介质 |
CN110554932A (zh) * | 2019-08-02 | 2019-12-10 | 恒鸿达科技有限公司 | 一种api模块异常检测方法 |
US11050850B1 (en) | 2019-01-07 | 2021-06-29 | Allstate Insurance Company | System and methods for application programming interface validation and testing |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1641601A (zh) * | 2004-01-04 | 2005-07-20 | 华为技术有限公司 | 一种软件的单元测试方法 |
US20060230320A1 (en) * | 2005-04-07 | 2006-10-12 | Salvador Roman S | System and method for unit test generation |
CN101227345A (zh) * | 2008-02-05 | 2008-07-23 | 中兴通讯股份有限公司 | 基于应用程序接口的自动测试方法 |
-
2012
- 2012-11-26 CN CN201210489333.6A patent/CN102968371B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1641601A (zh) * | 2004-01-04 | 2005-07-20 | 华为技术有限公司 | 一种软件的单元测试方法 |
US20060230320A1 (en) * | 2005-04-07 | 2006-10-12 | Salvador Roman S | System and method for unit test generation |
CN101227345A (zh) * | 2008-02-05 | 2008-07-23 | 中兴通讯股份有限公司 | 基于应用程序接口的自动测试方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550113A (zh) * | 2015-12-18 | 2016-05-04 | 网易(杭州)网络有限公司 | Web测试方法与测试机 |
CN105550113B (zh) * | 2015-12-18 | 2019-01-22 | 网易(杭州)网络有限公司 | Web测试方法与测试机 |
CN106201864A (zh) * | 2016-06-27 | 2016-12-07 | 乐视控股(北京)有限公司 | 一种应用程序编程接口api测试方法、装置及移动设备 |
CN106126428A (zh) * | 2016-08-11 | 2016-11-16 | 浪潮电子信息产业股份有限公司 | 一种基于软件系统测试优化的设计方法 |
CN106326111A (zh) * | 2016-08-11 | 2017-01-11 | 浪潮电子信息产业股份有限公司 | 一种基于Fitnesse的网页页面和接口自动化测试框架 |
CN107357729A (zh) * | 2017-07-07 | 2017-11-17 | 广东中星电子有限公司 | 测试软件的方法和电子设备 |
WO2019223070A1 (zh) * | 2018-05-25 | 2019-11-28 | 平安科技(深圳)有限公司 | 应用测试方法、装置、设备及可读存储介质 |
US11050850B1 (en) | 2019-01-07 | 2021-06-29 | Allstate Insurance Company | System and methods for application programming interface validation and testing |
US11418624B1 (en) | 2019-01-07 | 2022-08-16 | Allstate Insurance Company | System and methods for application programming interface validation and testing |
US12010182B2 (en) | 2019-01-07 | 2024-06-11 | Allstate Insurance Company | System and methods for application programming interface validation and testing |
CN110554932A (zh) * | 2019-08-02 | 2019-12-10 | 恒鸿达科技有限公司 | 一种api模块异常检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102968371B (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968371B (zh) | 测试java api单元组件的方法及装置 | |
KR101132560B1 (ko) | 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 | |
CN108845940B (zh) | 一种企业级信息系统自动化功能测试方法和系统 | |
CN103793326A (zh) | 组件测试方法及装置 | |
CN105159833A (zh) | 自动化测试装置及方法 | |
CN109933521A (zh) | 基于bdd的自动化测试方法、装置、计算机设备及存储介质 | |
CN103377120A (zh) | 一种应用程序测试方法及装置 | |
CN108111364B (zh) | 一种业务系统的测试方法及装置 | |
CN103984626A (zh) | 一种生成测试用例脚本的方法及装置 | |
US11816479B2 (en) | System and method for implementing a code audit tool | |
CN104899132A (zh) | 应用软件测试方法、装置及系统 | |
CN111897727A (zh) | 软件测试方法、装置、计算机设备及存储介质 | |
CN112131116A (zh) | 一种嵌入式软件自动化回归测试方法 | |
CN111679977B (zh) | 一种基于Jest的React项目单元测试方法、设备及存储介质 | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
CN114168471A (zh) | 测试方法、装置、电子设备及存储介质 | |
US9612944B2 (en) | Method and system for verifying scenario based test selection, execution and reporting | |
CN102722438A (zh) | 一种内核调试的方法和设备 | |
CN102144221A (zh) | 用于自动化测试的紧凑架构 | |
CN115809076A (zh) | Ecu软件自动化集成方法及系统 | |
CN115629815A (zh) | 可验证emmc用户接口的fpga原型验证平台 | |
Saadatmand | Towards automating integration testing of. NET applications using Roslyn | |
KR20120051933A (ko) | 시뮬레이터 기반의 로봇 소프트웨어 컴포넌트 성능평가시스템 및 성능평가방법 | |
Frechette et al. | Regression Test Reduction for Object‐Oriented Software: A Control Call Graph Based Technique and Associated Tool | |
US9612870B2 (en) | Inversion of control for executable extensions in a run-time environment |
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 |