CN104360920B - 一种接口自动化测试方法及装置 - Google Patents
一种接口自动化测试方法及装置 Download PDFInfo
- Publication number
- CN104360920B CN104360920B CN201410724763.0A CN201410724763A CN104360920B CN 104360920 B CN104360920 B CN 104360920B CN 201410724763 A CN201410724763 A CN 201410724763A CN 104360920 B CN104360920 B CN 104360920B
- Authority
- CN
- China
- Prior art keywords
- interface
- daily record
- code segment
- return value
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种接口自动化测试方法及装置,该方法测试设备在待测接口的程序中,确定不影响接口的返回值的代码段,并针对该代码段生成测试脚本,然后,执行该测试脚本,以获取待测接口的返回值和与该代码段对应的日志,再判断获取的返回值和日志是否符合预设结果,若是,则确定待测接口工作正常,否则,确定待测接口工作不正常。通过上述方法,由于测试设备除了校验返回值是否正确之外,还通过日志校验了待测接口的程序中,不影响该接口的返回值的代码段是否工作正常,因此,测试设备可以准确地测试待测接口。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种接口自动化测试方法及装置。
背景技术
目前,随着自动化测试技术在测试领域中的广泛应用,测试工程师可以将很多机械重复的手工测试工作交给自动化测试平台完成,节省了人力,也提高了测试效率。
在测试领域中,接口测试主要用于校验待测系统与外部系统之间、以及待测系统内部的各个子系统之间的接口是否能够正常工作,具体的,要校验接口两侧数据的交换、传递和控制管理过程,以及系统间相互的逻辑依赖关系是否与符合设计预期。由于接口相对于其他的业务逻辑,待测试数据量大,且测试需求稳定,变更较少,因此,自动化测试技术很适用于接口测试。
在现有技术中,基于自动化测试平台,对接口的测试主要包括以下三个方面:
1、对输入参数的完整性校验,即输入参数是否包含了所有必要参数;
2、对输入参数的功能性校验,即针对所有的有效输入参数,校验接口的功能是否符合设计预期;
3、接口的容错能力,即针对无效的或错误的输入参数,接口是否能够正常返回结果,并给出有意义的错误消息,以帮助调用方定位问题。
以上的测试,都以接口的返回值是否符合设计预期作为评判标准。但是,在接口的程序中,可能会存在不影响该接口的返回值的代码段,也即,无论该代码段是否工作正常,都不会改变该接口的返回值(可能都会返回正确的返回值)。因此,在这种情况下,基于返回值无法判断该代码段是否工作正常,从而,也无法准确地测试该接口。
例如,假定某接口预期的功能是在接收一个有效的输入参数后,返回该输入参数的阶乘值,并将该阶乘值写入数据库(写库)。当负责计算阶乘值的代码段工作正常时,该接口能正确返回输入参数的阶乘值,而此时负责写库的代码段可能工作不正常,会写入错误的阶乘值或写库失败。则在现有的接口自动化测试方法下,根据返回的阶乘值,会判断该接口工作正常,而实际上该接口工作不正常,也即,无法准确地测试该接口。
发明内容
本申请实施例提供一种接口自动化测试方法及装置,用以解决现有技术中当接口的程序中存在不影响该接口的返回值的代码段时,基于返回值无法正确地测试该接口的问题。
本申请实施例提供的一种接口自动化测试方法,包括:
在待测接口的程序中,确定需进行日志校验的代码段;
针对所述代码段生成测试脚本;
执行所述测试脚本,以获取所述待测接口的返回值和与所述代码段对应的日志;
判断获取的返回值和日志是否符合预设结果;
若是,则确定所述待测接口工作正常;
否则,确定所述待测接口工作不正常。
本申请实施例提供的一种接口自动化测试装置,包括:
确定模块,用于在待测接口的程序中,确定需进行日志校验的代码段;
第一生成模块,用于针对所述代码段生成测试脚本;
获取模块,用于执行所述测试脚本,以获取所述待测接口的返回值和与所述代码段对应的日志;
判断模块,用于判断获取的返回值和日志是否符合预设结果,若是,则确定所述待测接口工作正常,否则,确定所述待测接口工作不正常。
本申请实施例提供一种接口自动化测试方法及装置,该方法测试设备在待测接口的程序中,确定不影响待测接口的返回值的代码段,并针对该代码段生成测试脚本,然后,执行该测试脚本,以获取待测接口的返回值和与该代码段对应的日志,再判断获取的返回值和日志是否符合预设结果,若是,则确定待测接口工作正常,否则,确定待测接口工作不正常。通过上述方法,由于测试设备除了校验返回值是否正确之外,还通过日志校验了待测接口的程序中,不影响该接口的返回值的代码段是否工作正常,因此,测试设备可以准确地测试待测接口。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的接口自动化测试过程;
图2为本申请实施例提供的接口自动化测试详细过程;
图3为基于本申请实施例提供的接口自动化测试方法,可实现的测试工具中类的调用关系图;
图4为基于本申请实施例提供的接口自动化测试方法,可实现的测试工具中的核心架构图;
图5为本申请实施例提供的接口自动化测试装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的接口自动化测试过程,具体包括以下步骤:
S101:测试设备在待测接口的程序中,确定需进行日志校验的代码段。
在本申请实施例中,所述的测试设备可以是基于自动化测试平台的测试设备,所述的待测接口可以是待测软件接口(以下待测接口也可简称为接口),可由测试设备对接口的功能和性能进行自动化测试。
一般的,对于一个接口自动化测试工程,首先,用户可制定测试策略,测试策略描述了该测试过程的总体方法和目标,包括测试过程中所使用的自动化测试平台、测试技术和测试工具,以及在测试过程各个阶段的测试任务等。然后,在对接口进行测试之前,需配置接口,并由用户根据接口设计文档,预先针对接口设计相应的测试用例和执行该测试用例的预期结果(测试用例的预期结果,以下称为:预设结果),并制定测试计划,测试计划描述了本次测试过程中执行哪些测试用例、执行的时间点、执行的次数等,其中,测试用例和测试计划都可包含在所使用测试工具的配置文件中。进而,测试设备可通过该测试工具对接口进行自动化测试,具体的,测试设备可按照用户制定的测试计划,自动地执行相应的测试用例,并判断接口的返回值是否符合预设结果,若是,则确定接口工作正常,否则,确定接口工作不正常。
但是,在接口的程序中,可包含两类代码段,一类是能够影响接口的返回值的代码段(以下称为返回值逻辑),另一类是不影响接口的返回值的代码段,对于不影响接口的返回值的代码段,若这种代码段工作不正常,则即使接口的返回值符合预设结果,接口也是处于工作不正常的状态。例如,假定在接口A的程序中,除了包含返回值逻辑,还包含了内部调用另一个接口B的附加代码段,且该附加代码段的执行,并不能影响返回值逻辑执行后所生成的接口A的返回值,则当返回值逻辑工作正常,而该附加代码段工作不正常时,虽然该返回值可能符合预设结果,但是,接口A也是处于工作不正常的状态。
因此,根据上述说明,在未确定不影响接口的返回值的代码段是否工作正常的情况下,仅基于接口的返回值对接口进行测试的方法是不可靠的。
在本申请实施例中,可以通过日志校验的方式,判断上述的代码段是否工作正常,则在对接口进行测试之前,测试设备可在接口的程序中,确定出需进行日志校验的代码段,也即,在接口的程序的各代码段中,确定不影响接口的返回值的代码段,作为需进行日志校验的代码段。
另外,在接口测试中,也存在这样的情况,即:返回值逻辑在工作不正常时,对于一些特定输入参数值,仍可以生成正确的返回值,假定测试该接口时所使用的输入参数值均包含在这些特定输入参数值中,则测试设备也无法正确地测试返回值逻辑,因此,在这种情况下,测试设备除了对不影响接口的返回值的代码段进行日志校验之外,还可对返回值逻辑也进行日志校验,从而可提高测试结果的可靠性。
S102:针对该代码段生成测试脚本。
在本申请实施例中,由于后续需要确定不影响接口的返回值的代码段是否工作正常,因此,在确定出该代码段后,用户可针对该代码段制定相应的测试策略并配置接口,再进一步的针对该代码段设计相关的测试用例,以及制定相应的测试计划。其中,所述的配置接口具体包括:配置接口传递数据采用的方法,如GET方法(不隐藏用户标识和用户密码)、POST方法(隐藏用户标识和用户密码);配置接口传递数据采用的模式,如同步模式、异步模式。
此后,测试设备可根据测试计划,通过执行与该代码段相关的测试用例,对该代码段进行测试。其中,执行测试用例,具体可包括:测试设备对测试用例进行解析,将测试用例中包含的针对接口的输入参数值、测试逻辑等信息转换为用脚本语言表示的代码(也即,生成测试脚本),以及后续执行该测试脚本。其中,测试设备生成测试脚本时中所使用的脚本语言包括但不限于:工具命令语言(Tool Command Language,TCL)、实用报表提取语言(Practical Extraction and Report Language,PERL)、超文本预处理器(HypertextPreprocessor,PHP)、PYTHON、RUBY等脚本语言。
S103:执行该测试脚本,以获取待测接口的返回值和与该代码段对应的日志。
在本申请实施例中,测试设备在执行该测试脚本的过程中,会通过该测试脚本调用该代码段,或直接执行该代码段,并将与该代码段相关的调用或执行过程记录为日志,即为所述的该代码段对应的日志。其中,该日志中可包含调用或执行该代码段时所涉及的各参数的取值状态和变化过程,从而,可为后续校验该代码段是否工作正常提供依据。当然,测试设备也可记录测试脚本的完整的执行日志,显然,该执行日志中包含有与该代码段对应的日志。
S104:判断获取的返回值和日志是否符合预设结果,若是,则执行步骤S105,否则,执行步骤S106。
在本申请实施例中,接口的返回值是由接口的返回值逻辑根据测试脚本中包含的输入参数值生成的,因此,测试设备在执行完该测试脚本,获取到接口的返回值和该代码段对应的日志后,可根据预设结果,对该返回值进行校验,以判断返回值逻辑是否工作正常,且测试设备同时还可根据预设结果,对获取的与该代码段对应的日志进行校验,以判断该代码段是否工作正常。
S105:确定待测接口工作正常。
S106:确定待测接口工作不正常。
通过上述方法,由于测试设备在对接口进行自动化测试时,除了通过返回值校验了接口的返回值逻辑是否工作正常之外,还通过日志校验了接口的程序中,不影响该接口的返回值的代码段是否工作正常,因此,测试设备可以准确地测试接口。
在本申请实施例中,对于上述步骤S101,测试设备在接口的程序中,确定需进行日志校验的代码段,具体包括:测试设备在接口的程序的各代码段中,确定不影响接口的返回值的代码段,作为需进行日志校验的代码段。在实际应用中,测试设备或用户可使用代码工具(例如Understand代码工具)对接口的程序进行审计,生成代码逻辑关系依赖图,以分析确定出接口的程序中存在的不影响接口的返回值的代码段。
进一步的,在对接口进行测试前,测试设备还可对使用的测试工具进行相应的配置,如接口所在主机的互联网协议(Internet Protocol,IP)地址、端口号、对应的数据库连接统一资源定位器(Uniform Resource Locator,URL)、用户账号、用户密码等等。其中,在实际应用中,可在所述的测试工具上实现本申请实施例中所述的方法,则测试设备在测试接口时,可通过使用该测试工具执行所述的方法。
接下来,测试设备可开始对接口进行测试,也即,测试设备可根据测试计划,执行与该代码段相关的测试用例,对于上述步骤S102,针对所述代码段生成测试脚本,具体包括:根据预设的与所述代码段相关的测试用例,生成测试脚本。当然,若接口的测试场景较少时,用户也可不设计测试用例,而是手动编写测试脚本并上载至测试设备上,则测试设备可直接执行用户编写的测试脚本。
更进一步的,由于在执行测试脚本的过程中需记录相关的日志,而接口的程序中一般不会包含记录日志的程序,因此,若要记录日志,可由测试设备在执行测试脚本之前,加载日志程序,其中,所述的日志程序可以由测试设备上的自动化测试平台提供,也可由用户提供给测试设备使用。在本申请实施例中,对其中的一种加载日志程序的方法进行说明:
测试设备在执行测试脚本之前,可向接口的程序中加入日志程序,相应的,在上述步骤S103中,执行该测试脚本,以获取与该代码段对应的日志,具体包括:执行该测试脚本,并通过该日志程序获取与该代码段对应的日志。
例如,对于某接口A,假定接口A内部调用了另一个接口B,且即使该调用过程执行失败也不会影响接口A生成正确的返回值,则可对接口A内部调用接口B的代码段进行日志校验,测试设备在对接口A进行测试之前,可在接口的程序中加入日志程序,具体的,可在接口A内部调用接口B的代码段下加入以下代码:
这段代码的功能是:记录接口A内部调用接口B的过程的日志,并在指定目录输出记录的日志,该日志中可包含接口A调用接口B的详细参数。则测试设备在执行测试脚本时,在调用接口A后,加入的该段代码会在指定目录输出该日志。
在本申请实施例中,测试设备在执行测试脚本后,可获取到接口的返回值和日志,并对其进行校验,判断该返回值和该日志是否符合预设结果。具体的,测试设备在对该日志进行校验之前,还可生成与该日志对应的校验程序,然后,通过该校验程序判断获取的返回值和日志是否符合预设结果。
进一步的,在上述步骤S103中,测试设备判断获取的返回值和日志是否符合预设结果,具体包括:测试设备从预设结果中提取预设返回结果和预设参数值,当获取的返回值与预设返回结果匹配,且获取的日志中包含的既定参数值与预设参数值匹配时,确定获取的返回值和日志符合预设结果,当获取的返回值与预设返回结果不匹配,或获取的日志中包含的既定参数值与预设参数值不匹配时,确定获取的返回值和日志不符合预设结果。
需要说明的是,以上的这种匹配方法比较适用于执行测试脚本过程中,所使用的参数数目较少的场景,而在该参数数目较多的场景下,测试设备也可不将日志中包含的各既定参数值与预设结果中对应的预设参数值逐个进行匹配,而是可根据该日志,使用散列算法生成待校验字符串,并根据预设结果,使用散列算法生成预期字符串,然后,将该待校验字符串与预期字符串进行匹配,则当获取的返回值与所述预设返回结果匹配,且待校验字符串与预期字符串匹配时,确定获取的返回值和日志符合预设结果,当获取的返回值与预设返回结果不匹配,或待校验字符串与预期字符串不匹配时,确定获取的返回值和日志不符合预设结果。继续以上例进行说明,测试设备可以针对从接口A获取的日志,使用如下代码段创建对该日志的日志校验方法:
该段代码可根据日志生成的待校验字符串,与根据预设结果生成的预期字符串(“3_B7D925011723……EC1BCAC”,中间部分省略)进行匹配,以校验日志。假定接口A的返回值与预设返回结果相同,则当待校验字符串(mark[1])与该预期字符串(“3_B7D925011723……EC1BCAC”)相同时,即可确定获取的返回值和日志符合预设结果,当待校验字符串(mark[1])与该预期字符串(“3_B7D925011723……EC1BCAC”)不相同时,即可确定获取的返回值和日志不符合预设结果。
另外,在本申请实施例中,由于在测试工程的不同阶段,对于接口的程序的各部分发生错误或异常的可容忍程度不同,一般的,在测试初期和中期,可只重点对接口的程序中的核心逻辑进行测试,以及解决测出的问题,使得接口的核心功能正常,因此,在这样的情况下,对于上述步骤S101,在接口的程序中,确定出不影响接口的返回值的代码段后,可进一步对确定出的各代码段进行筛选,仅将被判断为核心逻辑的代码段筛选出来,确定为需进行日志校验的代码段,从而,可以提高后续测试设备生成日志和校验日志的效率。其中,不影响接口的返回值的代码段和返回值逻辑都可能为核心逻辑。
以上是针对接口的程序中,不影响接口的返回值的代码段的接口自动化测试方法,显然,在实际应用中,在接口的自动化测试过程中,还包括对返回值逻辑的测试。图2示出了本申请实施例提供的接口自动化测试详细过程,具体包括以下步骤:
S201:对接口的程序进行审计,确定出不影响接口的返回值的代码段。
S202:分别基于该代码段和接口程序的返回值逻辑,设计相应的测试策略。
S203:配置接口。
S204:针对接口的程序设计测试用例,包括与该代码段相关的测试用例和与返回值逻辑相关的测试用例。其中,还针对测试用例设计了预设结果。
S205:制定测试计划,以及对测试设备上的测试工具进行初始化配置。
S206:根据测试计划,载入并解析相应的测试用例,生成测试脚本。
S207:对于与该代码段相关的测试脚本,在执行该测试脚本之前,在接口的程序中加入日志程序。
S208:执行测试脚本,对于与该代码段相关的测试脚本,获取接口的返回值和日志程序生成的日志;对于与返回值逻辑相关的测试脚本,获取接口的返回值。
S209:对于与该代码段相关的测试脚本,生成与获取的日志对应的校验程序。
S210:对于与该代码段相关的测试脚本,从预设结果中提取预设返回结果和预设参数值;对于与返回值逻辑相关的测试脚本,从预设结果中提取预设返回结果。
S211:对于与该代码段相关的测试脚本,判断获取的返回值和日志是否符合预设结果,若是,则确定接口工作正常,否则,确定接口工作不正常;对于与返回值逻辑相关的测试脚本,判断获取的返回值是否符合预设结果,若是,则确定接口工作正常,否则,确定接口工作不正常。
S212:生成测试报告。
根据上述说明,可在测试设备所使用的测试工具上,实现本申请实施例提供的接口自动化测试方法方法。具体的,所述的方法可基于Java和Mysql数据库实现,并可封装生成测试工具,也即,Java归档文件(JavaArchive,JAR)包,以供测试设备使用。其中,用户设计的测试用例和制定的测试计划可在配置文件中进行配置,具体的,可在该JAR包的同目录下创建名为wlapi.properties的配置文件,并定义一些特定字段包括:flag_file(用于确定是否输出日志)、log_folder(指定的日志输出目录)、report_folder(指定的测试报告输出目录)、interface(待测接口)、profile(针对待测接口需执行的测试用例)、host(接口所在的主机,以及主机端口)、url_db(测试中所使用的数据库的链接地址)、user(数据库用户名)、pwd(数据库密码)等等。
使用Understand代码工具可生成该JAR包中类的调用关系图,如图3所示,位于箭头起点的类为调用方,位于箭头终点的类为被调用方,可以看出,WLapi.java类中包含了该jar包的主函数,该主函数通过执行自身的逻辑,以及调用其他的类实现本申请实施例提供的方法,该主函数的主要代码如下(已省略部分细节):
该主函数所调用的类主要包括Userpool.java(用于生成虚拟的接口使用用户的类)、Reporter.java(用于生成测试报告的类)、ConfConv.java(用于维护和调用配置文件的类)、Init.java(用于对测试工具进行初始化配置的类)、Verify.java(用于生成待校验的日志的类)、LogCheck.java(用于校验日志的类)、Invoker.java(用于定义测试动作的类)、WebAct.java(用于联网交互的类)。其中,图3中每个类前的“wlapi\”表示该类位于名为wlapi的文件夹下。
基于本申请实施例提供的方法所能实现的测试工具的核心架构如图4所示,该核心架构主要包括两部分,即测试设计部分和测试执行部分。其中,测试设计部分包含测试用例的设计(包含对应的预设结果的设计)、接口的配置、测试计划的制定和维护(包括与不影响返回值的代码段相关的测试用例,以及与返回值逻辑相关的测试用例),测试执行部分包含解析测试用例以生成测试脚本、对接口进行预处理(加入日志程序)、执行测试脚本、校验测试结果(包括校验日志和校验返回值)、生成测试报告。当然,该核心架构中还可以包含其他部分,如审计代码、设计测试策略等。
以上为本申请实施例提供的接口自动化测试方法,基于同样的思路,本申请实施例还提供相应的接口自动化测试装置,如图5所示。
图5为本申请实施例提供的接口自动化测试装置结构示意图,具体包括:
确定模块501,用于在待测接口的程序中,确定需进行日志校验的代码段;
第一生成模块502,用于针对所述代码段生成测试脚本;
获取模块503,用于执行所述测试脚本,以获取所述待测接口的返回值和与所述代码段对应的日志;
判断模块504,用于判断所述获取模块503获取的返回值和日志是否符合预设结果,若是,则确定所述待测接口工作正常,否则,确定所述待测接口工作不正常。
所述确定模块501具体用于,在待测接口的程序的各代码段中,确定不影响所述待测接口的返回值的代码段,作为需进行日志校验的代码段。
所述第一生成模块502具体用于,根据预设的与所述代码段相关的测试用例,生成测试脚本。
所述装置还包括:
加入模块505,用于在所述获取模块503执行所述测试脚本之前,向所述待测接口的程序中加入日志程序;
所述获取模块503具体用于,执行所述测试脚本,并通过所述日志程序获取与所述代码段对应的日志。
所述装置还包括:
第二生成模块506,用于在所述判断模块504判断获取的返回值和日志是否符合预设结果之前,生成与获取的日志对应的校验程序;
所述判断模块504具体用于,通过所述校验程序判断获取的返回值和日志是否符合预设结果。
所述判断模块504具体用于,从预设结果中提取预设返回结果和预设参数值,当获取的返回值与所述预设返回结果匹配,且获取的日志中包含的既定参数值与所述预设参数值匹配时,确定获取的返回值和日志符合预设结果,当获取的返回值与所述预设返回结果不匹配,或获取的日志中包含的既定参数值与所述预设参数值不匹配时,确定获取的返回值和日志不符合预设结果。
具体的上述如图5所示的装置可以位于测试设备上。
本申请实施例提供一种接口自动化测试方法及装置,该方法测试设备在待测接口的程序中,确定需进行日志校验的代码段,并针对该代码段生成测试脚本,然后,执行该测试脚本,以获取待测接口的返回值和与该代码段对应的日志,再判断获取的返回值和日志是否符合预设结果,若是,则确定待测接口工作正常,否则,确定待测接口工作不正常。通过上述方法,由于测试设备除了校验返回值是否正确之外,还通过日志校验了待测接口的程序中,不影响该接口的返回值的代码段是否工作正常,因此,测试设备可以准确地测试待测接口。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (6)
1.一种接口自动化测试方法,其特征在于,包括:
在待测接口的程序的各代码段中,确定不影响所述待测接口的返回值的代码段,作为需进行日志校验的代码段;
针对所述需进行日志校验的代码段生成测试脚本;
向所述待测接口的程序中加入日志程序;
执行所述测试脚本,以获取所述待测接口的返回值,并通过所述日志程序获取与所述需进行日志校验的代码段对应的日志;
判断获取的返回值和日志是否符合预设结果;
若是,则确定所述待测接口工作正常;
否则,确定所述待测接口工作不正常。
2.如权利要求1所述的方法,其特征在于,针对所述代码段生成测试脚本,具体包括:
根据预设的与所述代码段相关的测试用例,生成测试脚本。
3.如权利要求1所述的方法,其特征在于,判断获取的返回值和日志是否符合预设结果之前,所述方法还包括:
生成与获取的日志对应的校验程序;
判断获取的返回值和日志是否符合预设结果,具体包括:
通过所述校验程序判断获取的返回值和日志是否符合预设结果。
4.如权利要求1所述的方法,其特征在于,判断获取的返回值和日志是否符合预设结果,具体包括:
从预设结果中提取预设返回结果和预设参数值;
当获取的返回值与所述预设返回结果匹配,且获取的日志中包含的既定参数值与所述预设参数值匹配时,确定获取的返回值和日志符合预设结果;
当获取的返回值与所述预设返回结果不匹配,或获取的日志中包含的既定参数值与所述预设参数值不匹配时,确定获取的返回值和日志不符合预设结果。
5.一种接口自动化测试装置,其特征在于,包括:
确定模块,用于在待测接口的程序的各代码段中,确定不影响所述待测接口的返回值的代码段,作为需进行日志校验的代码段;
第一生成模块,用于针对所述需进行日志校验的代码段生成测试脚本;
加入模块,用于在获取模块执行所述测试脚本之前,向所述待测接口的程序中加入日志程序;
获取模块,用于执行所述测试脚本,以获取所述待测接口的返回值,并通过所述日志程序获取与所述需进行日志校验的代码段对应的日志;
判断模块,用于判断所述获取模块获取的返回值和日志是否符合预设结果,若是,则确定所述待测接口工作正常,否则,确定所述待测接口工作不正常。
6.如权利要求5所述的装置,其特征在于,所述第一生成模块具体用于,根据预设的与所述代码段相关的测试用例,生成测试脚本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410724763.0A CN104360920B (zh) | 2014-12-02 | 2014-12-02 | 一种接口自动化测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410724763.0A CN104360920B (zh) | 2014-12-02 | 2014-12-02 | 一种接口自动化测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104360920A CN104360920A (zh) | 2015-02-18 |
CN104360920B true CN104360920B (zh) | 2018-06-26 |
Family
ID=52528184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410724763.0A Active CN104360920B (zh) | 2014-12-02 | 2014-12-02 | 一种接口自动化测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104360920B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106815100A (zh) * | 2015-11-27 | 2017-06-09 | 北京国双科技有限公司 | 接口测试方法及装置 |
CN106776324A (zh) * | 2016-12-19 | 2017-05-31 | 广州酷狗计算机科技有限公司 | 接口测试方法及装置 |
CN106972983B (zh) * | 2017-03-24 | 2020-03-17 | 上海携程国际旅行社有限公司 | 网络接口的自动化测试装置及方法 |
CN107992389A (zh) * | 2017-12-22 | 2018-05-04 | 无线生活(杭州)信息科技有限公司 | 一种测试方法及装置 |
CN109213676A (zh) * | 2018-07-06 | 2019-01-15 | 中国电力科学研究院有限公司 | 一种用于测试脚本的离线调试方法及装置 |
CN110750409A (zh) * | 2018-07-23 | 2020-02-04 | 北京奇虎科技有限公司 | 测试的实现方法、装置和系统 |
CN109299002A (zh) * | 2018-08-24 | 2019-02-01 | 平安科技(深圳)有限公司 | 测试报告的生成方法、计算机可读存储介质及终端设备 |
CN110908888B (zh) * | 2018-09-17 | 2023-06-30 | 百度在线网络技术(北京)有限公司 | 服务器测试方法及装置 |
CN109614310A (zh) * | 2018-10-22 | 2019-04-12 | 中国平安财产保险股份有限公司 | 测试接口的管理方法、装置、计算机设备以及存储介质 |
CN109597729A (zh) * | 2018-10-29 | 2019-04-09 | 深圳壹账通智能科技有限公司 | 一种基于模拟用户测试的监控方法和装置 |
CN110008074B (zh) * | 2019-04-11 | 2020-07-07 | 苏州浪潮智能科技有限公司 | 自动化测试查询硬件信息上层接口的方法、装置及设备 |
CN110109826A (zh) * | 2019-04-12 | 2019-08-09 | 平安普惠企业管理有限公司 | 针对接口的线上预警方法及相关装置 |
CN110032517A (zh) * | 2019-04-17 | 2019-07-19 | 北京网聘咨询有限公司 | 实现接口覆盖率自动化统计的方法和系统 |
CN112306839A (zh) * | 2019-07-24 | 2021-02-02 | 中国移动通信有限公司研究院 | 接口测试方法、装置及服务器 |
CN110737590B (zh) * | 2019-09-16 | 2023-11-03 | 上海御渡半导体科技有限公司 | 一种离线调试方法 |
CN111444096B (zh) * | 2020-03-25 | 2023-05-23 | 北京市信息技术研究所 | 一种接口测试用例生成方法及装置 |
CN111552632B (zh) * | 2020-03-27 | 2024-03-19 | 北京奇艺世纪科技有限公司 | 一种接口测试方法及装置 |
CN112463261B (zh) * | 2020-11-20 | 2024-06-11 | 北京达佳互联信息技术有限公司 | 接口调用方法、装置、电子设备、介质及产品 |
CN113778847A (zh) * | 2020-12-03 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 测试报告生成方法和装置 |
CN112783791B (zh) * | 2021-02-08 | 2024-05-24 | 中国工商银行股份有限公司 | 接口测试案例的生成方法及装置 |
CN113010413B (zh) * | 2021-02-20 | 2023-04-25 | 烽火通信科技股份有限公司 | 一种接口自动化测试方法和装置 |
CN112835810B (zh) * | 2021-03-30 | 2024-03-29 | 中国工商银行股份有限公司 | 一种基于日志分析的接口测试方法及装置 |
CN113672614A (zh) * | 2021-07-20 | 2021-11-19 | 浙江大华技术股份有限公司 | 函数校验方法、计算机设备及存储装置 |
CN116521572B (zh) * | 2023-07-03 | 2023-09-19 | 天津金城银行股份有限公司 | 网页脚本可视化验证方法、系统、终端设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632747A (zh) * | 2003-12-22 | 2005-06-29 | 联想(北京)有限公司 | 软件接口测试方法 |
CN1932776A (zh) * | 2006-09-29 | 2007-03-21 | 上海科泰世纪科技有限公司 | 嵌入式操作系统中接口测试的自动化运行方法 |
CN103077111A (zh) * | 2011-10-26 | 2013-05-01 | 阿里巴巴集团控股有限公司 | 一种持续集成失败用例的定位方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9098632B2 (en) * | 2010-12-03 | 2015-08-04 | Dcs Consultancy Services Limited | Computer program testing |
-
2014
- 2014-12-02 CN CN201410724763.0A patent/CN104360920B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632747A (zh) * | 2003-12-22 | 2005-06-29 | 联想(北京)有限公司 | 软件接口测试方法 |
CN1932776A (zh) * | 2006-09-29 | 2007-03-21 | 上海科泰世纪科技有限公司 | 嵌入式操作系统中接口测试的自动化运行方法 |
CN103077111A (zh) * | 2011-10-26 | 2013-05-01 | 阿里巴巴集团控股有限公司 | 一种持续集成失败用例的定位方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104360920A (zh) | 2015-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104360920B (zh) | 一种接口自动化测试方法及装置 | |
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN109101415A (zh) | 基于数据库比对的接口测试方法、系统、设备和存储介质 | |
CN109960653A (zh) | 回归测试方法、装置、设备和存储介质 | |
CN109614324B (zh) | 一种测试用例生成方法和装置 | |
CN112181804B (zh) | 一种参数校验方法、设备以及存储介质 | |
CN105760292B (zh) | 一种用于单元测试的断言验证方法和装置 | |
CN109871312B (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN112286828B (zh) | 一种区块链智能合约的测试方法和系统 | |
CN111221721B (zh) | 一种单元测试案例自动化录制和执行方法及装置 | |
CN107479823A (zh) | 随机读写文件测试中的数据校验方法和装置 | |
CN107239403A (zh) | 一种问题定位方法和设备 | |
CN111615688A (zh) | 一种断言验证代码绑定方法及装置 | |
CN106547658A (zh) | 一种自动化测试方法及装置 | |
CN109543457A (zh) | 管控智能合约之间调用的方法及装置 | |
CN114090462B (zh) | 软件重复缺陷识别方法、装置、计算机设备及存储介质 | |
CN107357721A (zh) | 测试系统的方法及装置 | |
CN113360300A (zh) | 接口调用链路生成方法、装置、设备及可读存储介质 | |
US20170220449A1 (en) | Infrastructure rule generation | |
CN111444093B (zh) | 项目开发过程质量的确定方法、装置、计算机设备 | |
CN112527573B (zh) | 一种接口测试方法、装置及存储介质 | |
CN109684205B (zh) | 系统测试方法、装置、电子设备及存储介质 | |
CN114996076B (zh) | 一种用于芯片仿真的遍历型用例验证方法、系统及电子设备 | |
CN110362294A (zh) | 开发任务执行方法、装置、电子设备及存储介质 | |
CN115617668A (zh) | 一种兼容性测试方法、装置及设备 |
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 |