CN105487982B - Api测试方法及系统 - Google Patents
Api测试方法及系统 Download PDFInfo
- Publication number
- CN105487982B CN105487982B CN201510975134.XA CN201510975134A CN105487982B CN 105487982 B CN105487982 B CN 105487982B CN 201510975134 A CN201510975134 A CN 201510975134A CN 105487982 B CN105487982 B CN 105487982B
- Authority
- CN
- China
- Prior art keywords
- case
- function
- numbering
- module
- 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.)
- Active
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/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3692—Test management for test results analysis
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
本发明公开了一种API测试方法及系统,涉及API测试领域。该方法:制作测试案例表单并存储;捕获需要测试的指令,如果指令是测试目标函数指令,则从所述案例表单中调取与目标函数对应的所有案例,从已被标记的案例开始按照所有案例的编号依次运行的代码进行测试,得到每个案例的实际运行结果,进入结果对比和显示;如果指令是测试案例的指令,从案例表单中调取所述案例的案例编号及与案例相关的函数,调取函数的运行代码,将案例加载到所述运行代码中运行并获得实际运行结果,进入结果对比和显示。本发明大大增加测试效率和测试的准确度,有效记录测试结果,通过查看测试表格可直接查看API存在的问题及缺陷,提高应用开发的效率。
Description
技术领域
本发明涉及API测试领域,尤其涉及一种API测试方法及系统。
背景技术
对商品与媒体交易提供数据服务和管理功能并进行非现金结算的POS机在市场交易中应用越来越广,依次带动POS机的快速发展,但在POS机开发中会遇到以下问题:API(为应用程序编写接口Application Programming Interface的缩写)函数的返回值不对、带入错误的参数导致程序崩溃、API功能没有支持。
而,现有API测试方法不能全面的测试所有案例,也不能对API进行全面系统化的测试,且现有API测试方法多为单一的、不能自动化的API测试,导致API测试效率低。
发明内容
本发明的目的在于提供一种API测试方法及系统,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明所述API测试方法,该方法包括:
S1,制作测试案例表单并存储;
S2,捕获需要测试的指令;
如果所述指令是测试目标函数指令,则从所述案例表单中调取与所述目标函数对应的所有案例,进入S3;
如果所述指令是测试案例的指令,从所述案例表单中调取所述案例的案例编号及与所述案例相关的函数,调取所述函数的运行代码,将所述案例加载到所述运行代码中运行并获得实际运行结果,进入S4;
S3,从已被标记的案例开始按照所有案例的编号依次运行的代码进行测试,得到每个案例的实际运行结果;
S4,将所述实际运行结果与预先存储的预测结果进行对比,显示对比后的结果。
优选地,步骤S1具体按照下述步骤实现:
S11,获取需要测试的程序的所有模块及每个模块中涉及到的所有函数;
S12,对所有模块进行依次编号,得到模块编号;在模块编号的基础上,对每个模块中涉及的所有函数进行顺序编号,得到函数编号;
S13,获取每个函数的测试案例,在每个函数的函数编号基础上,对每个函数的测试案例进行编号,得到案例编号;
S14,将每个案例运行的预期结果与所述案例编号一一对应设置,存储,完成测试案例表单的制作。
优选地,步骤S2,具体按照下述步骤实现:
捕获需要被测试的目标函数指令,从数据库中调取运行所述目标函数的代码;
捕获目标函数的编号,从测试案例表单中查找出案例编号与所述目标函数编号相关的所有案例;所述目标函数的编号是与其相关案例的案例编号的一部分;
根据查找到的案例编号顺序排队,得到案例编号队列;
将案例编号队列中的第一个案例编号标记为可自动测试的案例编号A,将所述案例编号A和案例编号队列发送给运行所述目标函数的代码程序。
更优选地,步骤S3,按照下述步骤实现:
运行所述目标函数的代码程序接收到所述案例编号A后,将所述案例编号A对应的案例加载到所述代码程序进行运行计算,得到案例编号A的案例的实际运行结果,完成案例编号A的案例的运行;然后自动运行下一个案例编号所对应的案例,直至案例编号队列中所有案例编号对应的案例全部获得实际运行结果为止。
更优选地,在完成一个案例的运行后,实时将所述案例的实际运行结果写入测试案例表单中。
更优选地,步骤S4,自动对比或人为对比测试案例表单中与所述目标函数相关的每个案例的实际运行结果与预测结果,记录两个结果不同的案例的案例编号及其实际运行结果和预测结果,然后从数据库中调取所述案例,显示所述案例。
一种实现所述API测试方法的系统,该系统包括:
测试案例表单生成存储模块:获取需要被测试程序的功能模块及每个功能模块中涉及的函数,获取测试每个函数的测试案例,并对功能模块、函数、测试案例进行编号,并存储;
函数代码存储模块:存储需要被测试程序涉及到的每个函数的运行代码;
判断模块:判断收到的指令是测试目标函数指令还是测试案例的指令;
测试案例执行模块:案例表单中调取被测试案例的案例编号及与所述被测试案例相关的函数,调取所述函数的运行代码,将所述被测试案例加载到所述运行代码中运行并获得实际运行结果;
测试目标函数执行模块:从所述案例表单中调取与所述目标函数对应的所有案例,对案例排序后进行标记,从已被标记的案例开始按照所有案例的排序依次运行的代码进行测试,得到每个案例的实际运行结果;
对比显示模块:将获得的将所述实际运行结果与预先存储的预测结果进行对比,显示对比后的结果。
优选地,所述测试案例表单生成存储模块包括:
模块编码单元:获取需要测试的程序的所有模块,并给每个模块编写唯一的模块编号;
函数编码单元:在模块编号的基础上,对所述模块涉及的所有函数依次进行编号,函数编号,所述函数编号中包括模块编号;
案例编号单元:在函数编号的基础上,对每个函数的测试案例进行编号,得到案例编号。
优选地,所述测试目标函数执行模块包括:
代码获取单元:捕获需要被测试的目标函数指令,从数据库中调取运行所述目标函数的代码;
查找单元:根据目标函数的编号,从测试案例表单中查找出案例编号与所述目标函数编号相关的所有案例;所述目标函数的编号是与其相关案例的案例编号的一部分;
排序单元:根据查找到的案例编号顺序排队,得到案例编号队列;
自动检测标记单元:将案例编号队列中的第一个案例编号标记为可自动测试的案例编号A;
执行单元:从所述案例编号A开始依次执行案例编号队列中的每个案例编号所对应的案例,得到每个案例的实际运行结果。
本发明的有益效果是:
本发明所述API测试方法,大大增加测试效率和测试的准确度,有效记录测试结果,通过查看测试表格可直接查看API存在的问题及缺陷,提高应用开发的效率。
附图说明
图1是所述API测试方法的流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例
参照图1,本实施例所述API测试方法,该方法包括:
S1,制作测试案例表单并存储;
S2,捕获需要测试的指令;
如果所述指令是测试目标函数指令,则从所述案例表单中调取与所述目标函数对应的所有案例,进入S3;
如果所述指令是测试案例的指令,从所述案例表单中调取所述案例的案例编号及与所述案例相关的函数,调取所述函数的运行代码,将所述案例加载到所述运行代码中运行并获得实际运行结果,进入S4;
S3,从已被标记的案例开始按照所有案例的编号依次运行的代码进行测试,得到每个案例的实际运行结果;
S4,将所述实际运行结果与预先存储的预测结果进行对比,显示对比后的结果。
更详细的解释说明:
(一)步骤S1具体按照下述步骤实现:
S11,获取需要测试的程序的所有模块及每个模块中涉及到的所有函数;
S12,对所有模块进行依次编号,得到模块编号;在模块编号的基础上,对每个模块中涉及的所有函数进行顺序编号,得到函数编号;
S13,获取每个函数的测试案例,在每个函数的函数编号基础上,对每个函数的测试案例进行编号,得到案例编号;
S14,将每个案例运行的预期结果与所述案例编号一一对应设置,存储,完成测试案例表单的制作。
(二)步骤S2,具体按照下述步骤实现:
捕获需要被测试的目标函数指令,从数据库中调取运行所述目标函数的代码;
捕获目标函数的编号,从测试案例表单中查找出案例编号与所述目标函数编号相关的所有案例;所述目标函数的编号是与其相关案例的案例编号的一部分;
根据查找到的案例编号顺序排队,得到案例编号队列;
将案例编号队列中的第一个案例编号标记为可自动测试的案例编号A,将所述案例编号A和案例编号队列发送给运行所述目标函数的代码程序。
(三)步骤S3,按照下述步骤实现:
运行所述目标函数的代码程序接收到所述案例编号A后,将所述案例编号A对应的案例加载到所述代码程序进行运行计算,得到案例编号A的案例的实际运行结果,完成案例编号A的案例的运行;然后自动运行下一个案例编号所对应的案例,直至案例编号队列中所有案例编号对应的案例全部获得实际运行结果为止。
在完成一个案例的运行后,实时将所述案例的实际运行结果写入测试案例表单中。
(四)步骤S4,自动对比或人为对比测试案例表单中与所述目标函数相关的每个案例的实际运行结果与预测结果,记录两个结果不同的案例的案例编号及其实际运行结果和预测结果,然后从数据库中调取所述案例,显示所述案例。
一种实现所述API测试方法的系统,该系统包括:
测试案例表单生成存储模块:获取需要被测试程序的功能模块及每个功能模块中涉及的函数,获取测试每个函数的测试案例,并对功能模块、函数、测试案例进行编号,并存储;
函数代码存储模块:存储需要被测试程序涉及到的每个函数的运行代码;
判断模块:判断收到的指令是测试目标函数指令还是测试案例的指令;
测试案例执行模块:案例表单中调取被测试案例的案例编号及与所述被测试案例相关的函数,调取所述函数的运行代码,将所述被测试案例加载到所述运行代码中运行并获得实际运行结果;
测试目标函数执行模块:从所述案例表单中调取与所述目标函数对应的所有案例,对案例排序后进行标记,从已被标记的案例开始按照所有案例的排序依次运行的代码进行测试,得到每个案例的实际运行结果;
对比显示模块:将获得的将所述实际运行结果与预先存储的预测结果进行对比,显示对比后的结果。更详细的解释说明:
①、所述测试案例表单生成存储模块包括:
模块编码单元:获取需要测试的程序的所有模块,并给每个模块编写唯一的模块编号;
函数编码单元:在模块编号的基础上,对所述模块涉及的所有函数依次进行编号,函数编号,所述函数编号中包括模块编号;
案例编号单元:在函数编号的基础上,对每个函数的测试案例进行编号,得到案例编号。
②,所述测试目标函数执行模块包括:
代码获取单元:捕获需要被测试的目标函数指令,从数据库中调取运行所述目标函数的代码;
查找单元:根据目标函数的编号,从测试案例表单中查找出案例编号与所述目标函数编号相关的所有案例;所述目标函数的编号是与其相关案例的案例编号的一部分;
排序单元:根据查找到的案例编号顺序排队,得到案例编号队列;
自动检测标记单元:将案例编号队列中的第一个案例编号标记为可自动测试的案例编号A;
执行单元:从所述案例编号A开始依次执行案例编号队列中的每个案例编号所对应的案例,得到每个案例的实际运行结果。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:本发明所述API测试方法,大大增加测试效率和测试的准确度,有效记录测试结果,通过查看测试表格可直接查看API存在的问题及缺陷,提高应用开发的效率。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (8)
1.一种API测试方法,其特征在于,该方法包括:
S1,制作测试案例表单并存储;
S2,捕获需要测试的指令;
如果所述指令是测试目标函数指令,则从所述案例表单中调取与所述目标函数对应的所有案例,进入S3;
如果所述指令是测试案例的指令,从所述案例表单中调取所述案例的案例编号及与所述案例相关的函数,调取所述函数的运行代码,将所述案例加载到所述运行代码中运行并获得实际运行结果,进入S4;
S3,从已被标记的案例开始按照所有案例的编号依次运行的代码进行测试,得到每个案例的实际运行结果;
S4,将所述实际运行结果与预先存储的预测结果进行对比,显示对比后的结果;
步骤S2,具体按照下述步骤实现:
捕获需要被测试的目标函数指令,从数据库中调取运行所述目标函数的代码;
捕获目标函数的编号,从测试案例表单中查找出案例编号与所述目标函数编号相关的所有案例;所述目标函数的编号是与其相关案例的案例编号的一部分;
根据查找到的案例编号顺序排队,得到案例编号队列;
将案例编号队列中的第一个案例编号标记为可自动测试的案例编号A,将所述案例编号A和案例编号队列发送给运行所述目标函数的代码程序。
2.根据权利要求1所述API测试方法,其特征在于,步骤S1具体按照下述步骤实现:
S11,获取需要测试的程序的所有模块及每个模块中涉及到的所有函数;
S12,对所有模块进行依次编号,得到模块编号;在模块编号的基础上,对每个模块中涉及的所有函数进行顺序编号,得到函数编号;
S13,获取每个函数的测试案例,在每个函数的函数编号基础上,对每个函数的测试案例进行编号,得到案例编号;
S14,将每个案例运行的预期结果与所述案例编号一一对应设置,存储,完成测试案例表单的制作。
3.根据权利要求1所述API测试方法,其特征在于,步骤S3,按照下述步骤实现:
运行所述目标函数的代码程序接收到所述案例编号A后,将所述案例编号A对应的案例加载到所述代码程序进行运行计算,得到案例编号A的案例的实际运行结果,完成案例编号A的案例的运行;然后自动运行下一个案例编号所对应的案例,直至案例编号队列中所有案例编号对应的案例全部获得实际运行结果为止。
4.根据权利要求3所述API测试方法,其特征在于,在完成一个案例的运行后,实时将所述案例的实际运行结果写入测试案例表单中。
5.根据权利要求3所述API测试方法,其特征在于,步骤S4,自动对比或人为对比测试案例表单中与所述目标函数相关的每个案例的实际运行结果与预测结果,记录两个结果不同的案例的案例编号及其实际运行结果和预测结果,然后从数据库中调取所述案例,显示所述案例。
6.一种实现API测试方法的系统,其特征在于,该系统包括:
测试案例表单生成存储模块:获取需要被测试程序的功能模块及每个功能模块中涉及的函数,获取测试每个函数的测试案例,并对功能模块、函数、测试案例进行编号,并存储;
函数代码存储模块:存储需要被测试程序涉及到的每个函数的运行代码;
判断模块:判断收到的指令是测试目标函数指令还是测试案例的指令;
测试案例执行模块:案例表单中调取被测试案例的案例编号及与所述被测试案例相关的函数,调取所述函数的运行代码,将所述被测试案例加载到所述运行代码中运行并获得实际运行结果;
测试目标函数执行模块:从所述案例表单中调取与所述目标函数对应的所有案例,对案例排序后进行标记,从已被标记的案例开始按照所有案例的排序依次运行的代码进行测试,得到每个案例的实际运行结果;
对比显示模块:将获得的将所述实际运行结果与预先存储的预测结果进行对比,显示对比后的结果。
7.根据权利要求6所述系统,其特征在于,所述测试案例表单生成存储模块包括:
模块编码单元:获取需要测试的程序的所有模块,并给每个模块编写唯一的模块编号;
函数编码单元:在模块编号的基础上,对所述模块涉及的所有函数依次进行编号,函数编号,所述函数编号中包括模块编号;
案例编号单元:在函数编号的基础上,对每个函数的测试案例进行编号,得到案例编号。
8.根据权利要求6所述系统,其特征在于,所述测试目标函数执行模块包括:
代码获取单元:捕获需要被测试的目标函数指令,从数据库中调取运行所述目标函数的代码;
查找单元:根据目标函数的编号,从测试案例表单中查找出案例编号与所述目标函数编号相关的所有案例;所述目标函数的编号是与其相关案例的案例编号的一部分;
排序单元:根据查找到的案例编号顺序排队,得到案例编号队列;
自动检测标记单元:将案例编号队列中的第一个案例编号标记为可自动测试的案例编号A;
执行单元:从所述案例编号A开始依次执行案例编号队列中的每个案例编号所对应的案例,得到每个案例的实际运行结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510975134.XA CN105487982B (zh) | 2015-12-22 | 2015-12-22 | Api测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510975134.XA CN105487982B (zh) | 2015-12-22 | 2015-12-22 | Api测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105487982A CN105487982A (zh) | 2016-04-13 |
CN105487982B true CN105487982B (zh) | 2018-01-16 |
Family
ID=55674974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510975134.XA Active CN105487982B (zh) | 2015-12-22 | 2015-12-22 | Api测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105487982B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021090A (zh) * | 2016-05-04 | 2016-10-12 | 上海瀚银信息技术有限公司 | 一种软件接口测试系统及方法 |
CN107064703A (zh) * | 2016-12-23 | 2017-08-18 | 惠州市亿能电子有限公司 | 一种高压箱自动检测方法及其系统 |
US11726897B2 (en) | 2020-04-13 | 2023-08-15 | The Toronto-Dominion Bank | System and method for testing applications |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100451988C (zh) * | 2006-11-14 | 2009-01-14 | 无敌科技(西安)有限公司 | 一种实现单元测试的方法及系统 |
CN101847117B (zh) * | 2009-03-23 | 2014-09-10 | 中兴通讯股份有限公司 | 一种单元测试方法和装置 |
CN103514069A (zh) * | 2012-11-22 | 2014-01-15 | Tcl集团股份有限公司 | 测试Android系统HAL层API的方法及系统 |
KR101410099B1 (ko) * | 2012-12-05 | 2014-06-25 | 경북대학교 산학협력단 | 단위 테스트 케이스 재사용 기반의 함수 테스트 장치 및 그 함수 테스트 방법 |
KR20140088963A (ko) * | 2012-12-31 | 2014-07-14 | 부산가톨릭대학교 산학협력단 | 애플리케이션 개발을 위한 런타임 에러 테스팅 시스템 및 방법 |
CN103186468B (zh) * | 2013-04-10 | 2016-03-30 | 华为技术有限公司 | 一种验证软件升级准确性的方法和装置 |
CN103559114B (zh) * | 2013-11-12 | 2015-08-19 | 福建联迪商用设备有限公司 | 嵌入式模块驱动功能测试系统及方法 |
-
2015
- 2015-12-22 CN CN201510975134.XA patent/CN105487982B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105487982A (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528424B (zh) | 基于后台系统服务或接口的测试方法和测试平台 | |
CN105446868B (zh) | 系统兼容性测试方法、测试用例管理方法及相关装置 | |
CN109614324B (zh) | 一种测试用例生成方法和装置 | |
CN105487982B (zh) | Api测试方法及系统 | |
US20090089636A1 (en) | Method and Apparatus for Logic Built In Self Test (LBIST) Fault Detection in Multi-Core Processors | |
US20090210750A1 (en) | Systems And Methods For Identifying Memory Leaks In A Computer System | |
CN103810105B (zh) | 应用程序版本检测方法和装置 | |
CN109783351A (zh) | 界面测试方法、装置及计算机可读存储介质 | |
CN106021014A (zh) | 一种内存管理方法及装置 | |
CN111198809A (zh) | 接口自动化测试方法和装置 | |
CN109684150A (zh) | 存储颗粒控制器的性能测试系统、测试方法及仿真平台 | |
CN110363112A (zh) | 一种配线电缆接线位置核对方法及系统 | |
CN108664388A (zh) | 动态字段数据返回接口的测试系统、方法、电子设备和可读存储介质 | |
CN107820608A (zh) | 用于产生、捕获、存储和加载失败的测试脚本的调试信息的方法和装置 | |
CN110221933A (zh) | 代码缺陷辅助修复方法及系统 | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
CN110008119A (zh) | 报表测试方法、装置、计算机设备和存储介质 | |
CN111159167B (zh) | 标注质量检测装置和方法 | |
CN107480056A (zh) | 一种软件测试方法和装置 | |
CN106874306A (zh) | 人口信息人像比对系统关键性能指标评测方法 | |
CN106055471A (zh) | 一种测试方法及终端 | |
CN116932360A (zh) | 一种页面测试方法、装置、计算机设备和存储介质 | |
CN106803202B (zh) | 一种待测试交易记录的提取方法和装置 | |
CN109388564A (zh) | 一种测试方法、装置及电子设备 | |
CN109947466A (zh) | 一种逆向获取ue4全局对象表的方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |