CN110750433A - 接口测试方法和装置 - Google Patents
接口测试方法和装置 Download PDFInfo
- Publication number
- CN110750433A CN110750433A CN201810811140.5A CN201810811140A CN110750433A CN 110750433 A CN110750433 A CN 110750433A CN 201810811140 A CN201810811140 A CN 201810811140A CN 110750433 A CN110750433 A CN 110750433A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- sample data
- test case
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title description 3
- 238000012360 testing method Methods 0.000 claims abstract description 487
- 238000000034 method Methods 0.000 claims abstract description 55
- 238000012795 verification Methods 0.000 abstract description 19
- 230000000694 effects Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 21
- 230000004044 response Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 206010019233 Headaches Diseases 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 231100000869 headache Toxicity 0.000 description 2
Images
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/3688—Test management for test execution, e.g. scheduling of test suites
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
本发明公开了接口测试方法和装置。所述方法包括:确定测试用例和与测试用例对应的样本数据;根据所述测试用例对目标接口进行测试,获得相应的测试数据;将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。该技术方案相较于传统方法,能够不仅支持对测试数据的格式验证,更是增加了对内容验证、效果验证的支持,极大地拓宽了测试场景,满足了日益更新的测试需求,也提高了测试效率。
Description
技术领域
本发明涉及接口测试领域,具体涉及接口测试方法和装置。
背景技术
传统接口手工测试和接口自动化测试都依赖于人工梳理大量的测试用例,而且对预期结果的判定需要写清明显的断言结果,对于现今以AI推荐算法为基础应用测试带来新的挑战,因为结果可能是不唯一、不固定的。传统的接口测试只能判断数据的多少,某个字段有没有、内容包括、不包含什么,无法满足推荐效果的判定。因此,需要重新设计一种工具场景,支持新功能与旧有功能的对比,观察结果是否满足当前业务需要。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的接口测试方法和装置。
依据本发明的一个方面,提供了一种接口测试方法,包括:
确定测试用例和与测试用例对应的样本数据;
根据所述测试用例对目标接口进行测试,获得相应的测试数据;
将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
可选地,所述确定测试用例和与测试用例对应的样本数据包括:
提取所述目标接口在线上环境中产生的日志;
根据所述日志生成测试用例并确定相应的样本数据。
可选地,所述确定测试用例和与测试用例对应的样本数据包括:
根据提交的测试需求生成测试用例,根据所述测试用例对所述目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
可选地,所述将所述测试数据与样本数据进行比对包括:
将所述测试数据中的第一类字段与所述样本数据中的相同字段进行比对;
和/或,
舍弃所述测试数据中的第二类字段,将所述测试数据中的剩余部分与所述样本数据进行比对。
可选地,所述将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果包括:
若所述测试数据与样本数据无差异,则判定为测试通过;
若所述测试数据与样本数据有差异,则按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过。
可选地,所述根据所述测试用例对目标接口进行测试,获得相应的测试数据包括:
根据所述测试用例对目标接口进行多次测试,获得与各次测试对应的测试数据:
所述按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过包括:
根据各次测试对应的测试数据与所述样本数据分别计算相似度,进一步计算相似度平均值;
若所述相似度平均值达到预设阈值,则判定为测试通过,否则判定为测试不通过。
可选地,所述按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过包括:
若所述差异在测试数据中的相应部分能够按照预设规则转换为该差异在所述样本数据中的相应部分,则判定为测试通过,否则判定为测试不通过。
可选地,所述测试数据包括接口响应时间,所述将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果包括:
若测试数据中的接口响应时间小于或等于样本数据中的接口响应时间,则判定为测试通过,否则判定为测试不通过。
可选地,该方法还包括:
将所述测试结果按照预设的通知方式进行通知,和/或,提供测试结果查看接口,在接收到测试结果查看请求时返回相应的测试结果。
依据本发明的另一方面,提供了一种接口测试装置,包括:
测试用例单元,适于确定测试用例和与测试用例对应的样本数据;
测试单元,适于根据所述测试用例对目标接口进行测试,获得相应的测试数据;
测试结果单元,适于将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
可选地,所述测试用例单元,适于提取所述目标接口在线上环境中产生的日志;根据所述日志生成测试用例并确定相应的样本数据。
可选地,所述测试用例单元,适于根据提交的测试需求生成测试用例,根据所述测试用例对所述目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
可选地,所述测试结果单元,适于将所述测试数据中的第一类字段与所述样本数据中的相同字段进行比对;和/或,舍弃所述测试数据中的第二类字段,将所述测试数据中的剩余部分与所述样本数据进行比对。
可选地,所述测试结果单元,适于若所述测试数据与样本数据无差异,则判定为测试通过;若所述测试数据与样本数据有差异,则按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过。
可选地,所述测试结果单元,适于根据所述测试用例对目标接口进行多次测试,获得与各次测试对应的测试数据:所述按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过包括:根据各次测试对应的测试数据与所述样本数据分别计算相似度,进一步计算相似度平均值;若所述相似度平均值达到预设阈值,则判定为测试通过,否则判定为测试不通过。
可选地,所述测试结果单元,适于若所述差异在测试数据中的相应部分能够按照预设规则转换为该差异在所述样本数据中的相应部分,则判定为测试通过,否则判定为测试不通过。
可选地,所述测试数据包括接口响应时间;
所述测试结果单元,适于若测试数据中的接口响应时间小于或等于样本数据中的接口响应时间,则判定为测试通过,否则判定为测试不通过。
可选地,所述测试结果单元,还适于将所述测试结果按照预设的通知方式进行通知,和/或,提供测试结果查看接口,在接收到测试结果查看请求时返回相应的测试结果。
依据本发明的又一方面,提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如上述任一所述的方法。
依据本发明的再一方面,提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如上述任一所述的方法。
由上述可知,本发明的技术方案,通过确定测试用例和与测试用例对应的样本数据,在根据所述测试用例对目标接口进行测试,获得相应的测试数据后,将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。该技术方案相较于传统方法,能够不仅支持对测试数据的格式验证,更是增加了对内容验证、效果验证的支持,极大地拓宽了测试场景,满足了日益更新的测试需求,也提高了测试效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种接口测试方法的流程示意图;
图2示出了根据本发明一个实施例的一种接口测试装置的结构示意图;
图3示出了根据本发明一个实施例的电子设备的结构示意图;
图4示出了根据本发明一个实施例的计算机可读存储介质的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种接口测试方法的流程示意图。如图1所示,该方法包括:
步骤S110,确定测试用例和与测试用例对应的样本数据。
步骤S120,根据测试用例对目标接口进行测试,获得相应的测试数据。
步骤S130,将测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
现有技术中一般都是直接设置校验规则对测试数据进行校验,而不是再结合样本数据进行校验,这样的方式就很单一,例如,校验测试数据是不是11位的手机号,是否是一个用户名,这样可以依靠数据格式来确定是否是满足相应的数据类型和数据长度,但是,就无法确定返回给用户的广告是否是一个想要的广告。举例来说,用户搜索了手机,则可以为用户推荐手机相关的产品作为广告,那么推荐厨房用品作为广告则可能就不是一个好的选择。显然传统方法是不支持在这样的测试的,但是,在本实施例中,可以通过预设相应的样本数据的方式来实现。
可见,图1所示的方法,通过确定测试用例和与测试用例对应的样本数据,在根据所述测试用例对目标接口进行测试,获得相应的测试数据后,将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。该技术方案相较于传统方法,能够不仅支持对测试数据的格式验证,更是增加了对内容验证、效果验证的支持,极大地拓宽了测试场景,满足了日益更新的测试需求,也提高了测试效率。
在本发明的一个实施例中,上述方法中,确定测试用例和与测试用例对应的样本数据包括:提取目标接口在线上环境中产生的日志;根据日志生成测试用例并确定相应的样本数据。
目前很多产品都会设置打点,通过这种方式获取产品在使用过程中的用户行为、功能实现的具体情况等等。这些都会记录在日志当中,也成为了测试人员在构造测试用例时,入参的一项重要参考。但是通常忽略了一点,线上环境中不仅可以获取到日志,还可以根据日志还原相应的场景,而这一场景虽然不是测试场景,却是现实中真实发生的场景,对应于相应的功能,可能就涉及了想要测试的接口。
举例而言,测试人员需要对开发人员更新后的一个接口进行测试,那么希望该接口能够发挥出与原接口大部分相同的性能。对于新增的性能可以采取其他方式测试实现,而还需要保证的是不干扰原接口能够实现的功能。对于这部分功能,可以通过测试获得相应的测试数据;再将测试数据与通过原接口实现得到的数据进行对比,如果一致,就说明该接口的更新并不影响原功能的实现。例如,对于广告系统,暴露在外的接口数量有限,比如引擎和算法,会根据用户的画像推送一些广告,这类接口对外通常只暴露一个相对稳定的URI(Uniform Resource Identifie,统一资源标志符),参数根据业务需要会调整。接口升级时,这类接口通常对字段的调整只增不减,既要保持原有的字段(输入/输出),又有新增的字段返回,而且不能影响原有字段。
那么利用日志数据生成的测试用例对新接口进行测试,如果得到的测试数据的原有字段与根据日志数据确定的样本数据中的相应字段相同,那么就说明没有影响原有功能,反之就可能是存在问题。
这样还能够解决测试用例生成的难题,传统的接口自动化能够也一定程度上能够保证接口的正确性,但是测试用例的准备一直是个头疼的问题,尤其是预期结果的校验通常需要设计一个正则匹配或是符合一个逻辑规则,对内容本身的动态一致性校验是比较差的。而本发明的实施例可以对该问题进行有效的解决。
这种方式不仅可以用于新版本与旧版本之间的测试,还可以进行A/B测试,比较不同版本的性能。在本发明的一个实施例中,上述方法中,确定测试用例和与测试用例对应的样本数据包括:根据提交的测试需求生成测试用例,根据测试用例对目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
这样对于同一个测试用例,对于开发的多个不同版本、但目标是实现同一功能的接口进行测试,将各自得到侧测试数据进行横向比较,效果显著。例如,对于某些代码快速迭代的广告业务,该类业务比较频繁的进行A/B测试,提升CPM(Cost Per MilesImpressions,千人印象成本)、CTR(Click through rate点击通过率)等指标,需要集中精力在新功能上,就适合本实施例的实施。
通过上述实施例可以看出,实际上我们是对同一接口(这里是指要实现的主要功能相同)不同版本或是不同环境下的表现进行测试。具体来说可以有如下的几个方向上的不同:通信协议不同,例如http/https/web service/Dubbo等;请求方式不同,例如获取数据get、上传数据post;接口的数量及环境不同,例如涉及测试环境、预发布环境、线上环境;接口返回的格式不同,例如采用JSON、XML、Protobuf等。
在本发明的一个实施例中,上述方法中,将测试数据与样本数据进行比对包括:将测试数据中的第一类字段与样本数据中的相同字段进行比对;和/或,舍弃测试数据中的第二类字段,将测试数据中的剩余部分与样本数据进行比对。
例如,字段中包括时间戳,时间戳是变化的,对比值的意义可能不大,也会影响对比的结果,可以对其进行舍弃,又例如新增了一个字段,那显然样本数据中不包含该字段,则也可以对其进行舍弃。或者,仅针对测试数据和样本数据中都存在的字段进行比对,可以提取出相应的字段来实现。也就是一种方式是排除,一种方式是挑选。
在本发明的一个实施例中,上述方法中,将测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果包括:若测试数据与样本数据无差异,则判定为测试通过;若测试数据与样本数据有差异,则按照预设规则对差异进行分析,根据分析结果判断测试是否通过。
这里支持对一些相对固定的返回结果进行比对以及对一些可能动态变化的返回结果进行比对。例如,针对同一请求返回的结果应该是新接口和旧接口是相同的,则需要保证测试数据与样本数据无差异才可以;如果是动态变化的,例如广告虽然推荐的不同,但是都是手机类型的,则就需要按照一些规则来实现分析。下面还给出了一些示例。
在本发明的一个实施例中,上述方法中,根据测试用例对目标接口进行测试,获得相应的测试数据包括:根据测试用例对目标接口进行多次测试,获得与各次测试对应的测试数据:按照预设规则对差异进行分析,根据分析结果判断测试是否通过包括:根据各次测试对应的测试数据与样本数据分别计算相似度,进一步计算相似度平均值;若相似度平均值达到预设阈值,则判定为测试通过,否则判定为测试不通过。
这样能够支持公司内业务的并发需要和多次测试,并且避免了一次测试带来的武断。测试次数也可以根据需要进行设置。
在本发明的一个实施例中,上述方法中,按照预设规则对差异进行分析,根据分析结果判断测试是否通过包括:若差异在测试数据中的相应部分能够按照预设规则转换为该差异在样本数据中的相应部分,则判定为测试通过,否则判定为测试不通过。
例如,[1,2,3]和[3,2,1]这两个结果在一些场景下可以认为是相同的,但是在另一些场景下可能是不同的,也就是顺序有可能确实是差异,也可能不视为差异。这往往是与业务需求息息相关的,则可以预设设置一个字典等方式记录的规则,来对差异进行分析。又例如,数值的对比,1.00与1能否认为是相同;类型的对比,文本类型的“1.00”和数值类型的1.00是否能认为是相同,等等。
在本发明的一个实施例中,上述方法中,测试数据包括接口响应时间,将测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果包括:若测试数据中的接口响应时间小于或等于样本数据中的接口响应时间,则判定为测试通过,否则判定为测试不通过。
在本实施例中接口响应时间可以作为一个测试是否通过的直接判断标准,但在其他实施例中可以仅作为一个参考。另外为了避免单次测试的不准确,也可以采用如前述实施例中多次测试求平均值的方式,也可以采用多线程的方式实现。这样可以对稳定性、延迟有一个大致的了解。
在本发明的一个实施例中,上述方法还包括:将测试结果按照预设的通知方式进行通知,和/或,提供测试结果查看接口,在接收到测试结果查看请求时返回相应的测试结果。
例如生成相应的报表,以邮件方式返回给测试人员,或者提供一个前端页面,测试人员可以通过访问查看不同的测试结果。
图2示出了根据本发明一个实施例的一种接口测试装置的结构示意图。如图2所示,接口测试装置200包括:
测试用例单元210,适于确定测试用例和与测试用例对应的样本数据。
测试单元220,适于根据测试用例对目标接口进行测试,获得相应的测试数据。
测试结果单元230,适于将测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
现有技术中一般都是直接设置校验规则对测试数据进行校验,而不是再结合样本数据进行校验,这样的方式就很单一,例如,校验测试数据是不是11位的手机号,是否是一个用户名,这样可以依靠数据格式来确定是否是满足相应的数据类型和数据长度,但是,就无法确定返回给用户的广告是否是一个想要的广告。举例来说,用户搜索了手机,则可以为用户推荐手机相关的产品作为广告,那么推荐厨房用品作为广告则可能就不是一个好的选择。显然传统方法是不支持在这样的测试的,但是,在本实施例中,可以通过预设相应的样本数据的方式来实现。
可见,图2所示的装置,通过确定测试用例和与测试用例对应的样本数据,在根据所述测试用例对目标接口进行测试,获得相应的测试数据后,将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。该技术方案相较于传统方法,能够不仅支持对测试数据的格式验证,更是增加了对内容验证、效果验证的支持,极大地拓宽了测试场景,满足了日益更新的测试需求,也提高了测试效率。
在本发明的一个实施例中,上述装置中,测试用例单元210,适于提取目标接口在线上环境中产生的日志;根据日志生成测试用例并确定相应的样本数据。
目前很多产品都会设置打点,通过这种方式获取产品在使用过程中的用户行为、功能实现的具体情况等等。这些都会记录在日志当中,也成为了测试人员在构造测试用例时,入参的一项重要参考。但是通常忽略了一点,线上环境中不仅可以获取到日志,还可以根据日志还原相应的场景,而这一场景虽然不是测试场景,却是现实中真实发生的场景,对应于相应的功能,可能就涉及了想要测试的接口。
举例而言,测试人员需要对开发人员更新后的一个接口进行测试,那么希望该接口能够发挥出与原接口大部分相同的性能。对于新增的性能可以采取其他方式测试实现,而还需要保证的是不干扰原接口能够实现的功能。对于这部分功能,可以通过测试获得相应的测试数据;再将测试数据与通过原接口实现得到的数据进行对比,如果一致,就说明该接口的更新并不影响原功能的实现。例如,对于广告系统,暴露在外的接口数量有限,比如引擎和算法,会根据用户的画像推送一些广告,这类接口对外通常只暴露一个相对稳定的URI(Uniform Resource Identifie,统一资源标志符),参数根据业务需要会调整。接口升级时,这类接口通常对字段的调整只增不减,既要保持原有的字段(输入/输出),又有新增的字段返回,而且不能影响原有字段。
那么利用日志数据生成的测试用例对新接口进行测试,如果得到的测试数据的原有字段与根据日志数据确定的样本数据中的相应字段相同,那么就说明没有影响原有功能,反之就可能是存在问题。
这样还能够解决测试用例生成的难题,传统的接口自动化能够也一定程度上能够保证接口的正确性,但是测试用例的准备一直是个头疼的问题,尤其是预期结果的校验通常需要设计一个正则匹配或是符合一个逻辑规则,对内容本身的动态一致性校验是比较差的。而本发明的实施例可以对该问题进行有效的解决。
这种方式不仅可以用于新版本与旧版本之间的测试,还可以进行A/B测试,比较不同版本的性能。在本发明的一个实施例中,上述装置中,测试用例单元210,适于根据提交的测试需求生成测试用例,根据测试用例对目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
这样对于同一个测试用例,对于开发的多个不同版本、但目标是实现同一功能的接口进行测试,将各自得到侧测试数据进行横向比较,效果显著。例如,对于某些代码快速迭代的广告业务,该类业务比较频繁的进行A/B测试,提升CPM(Cost Per MilesImpressions,千人印象成本)、CTR(Click through rate点击通过率)等指标,需要集中精力在新功能上,就适合本实施例的实施。
通过上述实施例可以看出,实际上我们是对同一接口(这里是指要实现的主要功能相同)不同版本或是不同环境下的表现进行测试。具体来说可以有如下的几个方向上的不同:通信协议不同,例如http/https/web service/Dubbo等;请求方式不同,例如获取数据get、上传数据post;接口的数量及环境不同,例如涉及测试环境、预发布环境、线上环境;接口返回的格式不同,例如采用JSON、XML、Protobuf等。
在本发明的一个实施例中,上述装置中,测试结果单元230,适于将测试数据中的第一类字段与样本数据中的相同字段进行比对;和/或,舍弃测试数据中的第二类字段,将测试数据中的剩余部分与样本数据进行比对。
例如,字段中包括时间戳,时间戳是变化的,对比值的意义可能不大,也会影响对比的结果,可以对其进行舍弃,又例如新增了一个字段,那显然样本数据中不包含该字段,则也可以对其进行舍弃。或者,仅针对测试数据和样本数据中都存在的字段进行比对,可以提取出相应的字段来实现。也就是一种方式是排除,一种方式是挑选。
在本发明的一个实施例中,上述装置中,测试结果单元230,适于若测试数据与样本数据无差异,则判定为测试通过;若测试数据与样本数据有差异,则按照预设规则对差异进行分析,根据分析结果判断测试是否通过。
这里支持对一些相对固定的返回结果进行比对以及对一些可能动态变化的返回结果进行比对。例如,针对同一请求返回的结果应该是新接口和旧接口是相同的,则需要保证测试数据与样本数据无差异才可以;如果是动态变化的,例如广告虽然推荐的不同,但是都是手机类型的,则就需要按照一些规则来实现分析。下面还给出了一些示例。
在本发明的一个实施例中,上述装置中,测试结果单元230,适于根据测试用例对目标接口进行多次测试,获得与各次测试对应的测试数据:按照预设规则对差异进行分析,根据分析结果判断测试是否通过包括:根据各次测试对应的测试数据与样本数据分别计算相似度,进一步计算相似度平均值;若相似度平均值达到预设阈值,则判定为测试通过,否则判定为测试不通过。
这样能够支持公司内业务的并发需要和多次测试,并且避免了一次测试带来的武断。测试次数也可以根据需要进行设置。
在本发明的一个实施例中,上述装置中,测试结果单元230,适于若差异在测试数据中的相应部分能够按照预设规则转换为该差异在样本数据中的相应部分,则判定为测试通过,否则判定为测试不通过。
例如,[1,2,3]和[3,2,1]这两个结果在一些场景下可以认为是相同的,但是在另一些场景下可能是不同的,也就是顺序有可能确实是差异,也可能不视为差异。这往往是与业务需求息息相关的,则可以预设设置一个字典等方式记录的规则,来对差异进行分析。又例如,数值的对比,1.00与1能否认为是相同;类型的对比,文本类型的“1.00”和数值类型的1.00是否能认为是相同,等等。
在本发明的一个实施例中,上述装置中,测试数据包括接口响应时间;测试结果单元230,适于若测试数据中的接口响应时间小于或等于样本数据中的接口响应时间,则判定为测试通过,否则判定为测试不通过。
在本实施例中接口响应时间可以作为一个测试是否通过的直接判断标准,但在其他实施例中可以仅作为一个参考。另外为了避免单次测试的不准确,也可以采用如前述实施例中多次测试求平均值的方式,也可以采用多线程的方式实现。这样可以对稳定性、延迟有一个大致的了解。
在本发明的一个实施例中,上述装置中,测试结果单元230,还适于将测试结果按照预设的通知方式进行通知,和/或,提供测试结果查看接口,在接收到测试结果查看请求时返回相应的测试结果。
例如生成相应的报表,以邮件方式返回给测试人员,或者提供一个前端页面,测试人员可以通过访问查看不同的测试结果。
综上所述,本发明的技术方案,通过确定测试用例和与测试用例对应的样本数据,在根据所述测试用例对目标接口进行测试,获得相应的测试数据后,将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。该技术方案相较于传统方法,能够不仅支持对测试数据的格式验证,更是增加了对内容验证、效果验证的支持,极大地拓宽了测试场景,满足了日益更新的测试需求,也提高了测试效率。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的接口测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图3示出了根据本发明一个实施例的电子设备的结构示意图。该电子设备包括处理器310和被安排成存储计算机可执行指令(计算机可读程序代码)的存储器320。存储器320可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器320具有存储用于执行上述方法中的任何方法步骤的计算机可读程序代码331的存储空间330。例如,用于存储计算机可读程序代码的存储空间330可以包括分别用于实现上面的方法中的各种步骤的各个计算机可读程序代码331。计算机可读程序代码331可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图4所述的计算机可读存储介质。图4示出了根据本发明一个实施例的一种计算机可读存储介质的结构示意图。该计算机可读存储介质400存储有用于执行根据本发明的方法步骤的计算机可读程序代码331,可以被电子设备300的处理器310读取,当计算机可读程序代码331由电子设备300运行时,导致该电子设备300执行上面所描述的方法中的各个步骤,具体来说,该计算机可读存储介质存储的计算机可读程序代码331可以执行上述任一实施例中示出的方法。计算机可读程序代码331可以以适当形式进行压缩。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明的实施例公开了A1、一种接口测试方法,包括:
确定测试用例和与测试用例对应的样本数据;
根据所述测试用例对目标接口进行测试,获得相应的测试数据;
将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
A2、如A1所述的方法,其中,所述确定测试用例和与测试用例对应的样本数据包括:
提取所述目标接口在线上环境中产生的日志;
根据所述日志生成测试用例并确定相应的样本数据。
A3、如A1所述的方法,其中,所述确定测试用例和与测试用例对应的样本数据包括:
根据提交的测试需求生成测试用例,根据所述测试用例对所述目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
A4、如A1所述的方法,其中,所述将所述测试数据与样本数据进行比对包括:
将所述测试数据中的第一类字段与所述样本数据中的相同字段进行比对;
和/或,
舍弃所述测试数据中的第二类字段,将所述测试数据中的剩余部分与所述样本数据进行比对。
A5、如A1所述的方法,其中,所述将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果包括:
若所述测试数据与样本数据无差异,则判定为测试通过;
若所述测试数据与样本数据有差异,则按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过。
A6、如A5所述的方法,其中,所述根据所述测试用例对目标接口进行测试,获得相应的测试数据包括:
根据所述测试用例对目标接口进行多次测试,获得与各次测试对应的测试数据:
所述按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过包括:
根据各次测试对应的测试数据与所述样本数据分别计算相似度,进一步计算相似度平均值;
若所述相似度平均值达到预设阈值,则判定为测试通过,否则判定为测试不通过。
A7、如A5所述的方法,其中,所述按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过包括:
若所述差异在测试数据中的相应部分能够按照预设规则转换为该差异在所述样本数据中的相应部分,则判定为测试通过,否则判定为测试不通过。
A8、如A1所述的方法,其中,所述测试数据包括接口响应时间,所述将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果包括:
若测试数据中的接口响应时间小于或等于样本数据中的接口响应时间,则判定为测试通过,否则判定为测试不通过。
A9、如A1所述的方法,其中,该方法还包括:
将所述测试结果按照预设的通知方式进行通知,和/或,提供测试结果查看接口,在接收到测试结果查看请求时返回相应的测试结果。
本发明的实施例还公开了B10、一种接口测试装置,包括:
测试用例单元,适于确定测试用例和与测试用例对应的样本数据;
测试单元,适于根据所述测试用例对目标接口进行测试,获得相应的测试数据;
测试结果单元,适于将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
B11、如B10所述的装置,其中,
所述测试用例单元,适于提取所述目标接口在线上环境中产生的日志;根据所述日志生成测试用例并确定相应的样本数据。
B12、如B10所述的装置,其中,
所述测试用例单元,适于根据提交的测试需求生成测试用例,根据所述测试用例对所述目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
B13、如B10所述的装置,其中,
所述测试结果单元,适于将所述测试数据中的第一类字段与所述样本数据中的相同字段进行比对;和/或,舍弃所述测试数据中的第二类字段,将所述测试数据中的剩余部分与所述样本数据进行比对。
B14、如B10所述的装置,其中,
所述测试结果单元,适于若所述测试数据与样本数据无差异,则判定为测试通过;若所述测试数据与样本数据有差异,则按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过。
B15、如B14所述的装置,其中,
所述测试结果单元,适于根据所述测试用例对目标接口进行多次测试,获得与各次测试对应的测试数据:所述按照预设规则对所述差异进行分析,根据分析结果判断测试是否通过包括:根据各次测试对应的测试数据与所述样本数据分别计算相似度,进一步计算相似度平均值;若所述相似度平均值达到预设阈值,则判定为测试通过,否则判定为测试不通过。
B16、如B14所述的装置,其中,
所述测试结果单元,适于若所述差异在测试数据中的相应部分能够按照预设规则转换为该差异在所述样本数据中的相应部分,则判定为测试通过,否则判定为测试不通过。
B17、如B10所述的装置,其中,所述测试数据包括接口响应时间;
所述测试结果单元,适于若测试数据中的接口响应时间小于或等于样本数据中的接口响应时间,则判定为测试通过,否则判定为测试不通过。
B18、如B10所述的装置,其中,
所述测试结果单元,还适于将所述测试结果按照预设的通知方式进行通知,和/或,提供测试结果查看接口,在接收到测试结果查看请求时返回相应的测试结果。
本发明的实施例还公开了C19、一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如A1-A9中任一项所述的方法。
本发明的实施例还公开了D20、一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如A1-A9中任一项所述的方法。
Claims (10)
1.一种接口测试方法,包括:
确定测试用例和与测试用例对应的样本数据;
根据所述测试用例对目标接口进行测试,获得相应的测试数据;
将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
2.如权利要求1所述的方法,其中,所述确定测试用例和与测试用例对应的样本数据包括:
提取所述目标接口在线上环境中产生的日志;
根据所述日志生成测试用例并确定相应的样本数据。
3.如权利要求1所述的方法,其中,所述确定测试用例和与测试用例对应的样本数据包括:
根据提交的测试需求生成测试用例,根据所述测试用例对所述目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
4.如权利要求1所述的方法,其中,所述将所述测试数据与样本数据进行比对包括:
将所述测试数据中的第一类字段与所述样本数据中的相同字段进行比对;
和/或,
舍弃所述测试数据中的第二类字段,将所述测试数据中的剩余部分与所述样本数据进行比对。
5.一种接口测试装置,包括:
测试用例单元,适于确定测试用例和与测试用例对应的样本数据;
测试单元,适于根据所述测试用例对目标接口进行测试,获得相应的测试数据;
测试结果单元,适于将所述测试数据与样本数据进行比对,根据比对结果和预设规则确定测试结果。
6.如权利要求5所述的装置,其中,
所述测试用例单元,适于提取所述目标接口在线上环境中产生的日志;根据所述日志生成测试用例并确定相应的样本数据。
7.如权利要求5所述的装置,其中,
所述测试用例单元,适于根据提交的测试需求生成测试用例,根据所述测试用例对所述目标接口的若干个版本在若干个环境下进行测试,获得相应的测试数据作为样本数据。
8.如权利要求5所述的装置,其中,
所述测试结果单元,适于将所述测试数据中的第一类字段与所述样本数据中的相同字段进行比对;和/或,舍弃所述测试数据中的第二类字段,将所述测试数据中的剩余部分与所述样本数据进行比对。
9.一种电子设备,其中,该电子设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810811140.5A CN110750433A (zh) | 2018-07-23 | 2018-07-23 | 接口测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810811140.5A CN110750433A (zh) | 2018-07-23 | 2018-07-23 | 接口测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110750433A true CN110750433A (zh) | 2020-02-04 |
Family
ID=69274968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810811140.5A Pending CN110750433A (zh) | 2018-07-23 | 2018-07-23 | 接口测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110750433A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581109A (zh) * | 2020-05-15 | 2020-08-25 | 杭州安恒信息技术股份有限公司 | 一种接口返回数据校验的方法、系统及设备 |
CN112132176A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种差异化提取方法、装置、电子设备及计算机可读存储介质 |
CN112162928A (zh) * | 2020-10-15 | 2021-01-01 | 网易(杭州)网络有限公司 | 游戏的测试方法、装置、电子设备及计算机可读介质 |
CN112416785A (zh) * | 2020-11-27 | 2021-02-26 | 广州品唯软件有限公司 | 切词工具版本差异测试方法、装置、设备和存储介质 |
CN112905449A (zh) * | 2021-01-27 | 2021-06-04 | 长沙市到家悠享网络科技有限公司 | 目标测试方法、装置、设备和存储介质 |
CN116055353A (zh) * | 2023-01-28 | 2023-05-02 | 中国信息通信研究院 | 通信网元技术接口性能的测试装置、测试方法及系统 |
WO2023123943A1 (zh) * | 2021-12-27 | 2023-07-06 | 深圳前海微众银行股份有限公司 | 接口自动化测试方法、装置、介质、设备及程序 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111885A (zh) * | 2013-04-22 | 2014-10-22 | 腾讯科技(深圳)有限公司 | 接口测试结果的校验方法和装置 |
CN104951399A (zh) * | 2015-06-19 | 2015-09-30 | 北京齐尔布莱特科技有限公司 | 一种软件测试系统和方法 |
CN106980573A (zh) * | 2016-10-26 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 一种构建测试用例请求对象的方法、装置及系统 |
CN107276842A (zh) * | 2017-05-10 | 2017-10-20 | 北京金山安全软件有限公司 | 接口测试方法、装置及电子设备 |
US20180095866A1 (en) * | 2016-09-30 | 2018-04-05 | Wipro Limited | Method and system for automatically generating test data for testing applications |
-
2018
- 2018-07-23 CN CN201810811140.5A patent/CN110750433A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111885A (zh) * | 2013-04-22 | 2014-10-22 | 腾讯科技(深圳)有限公司 | 接口测试结果的校验方法和装置 |
CN104951399A (zh) * | 2015-06-19 | 2015-09-30 | 北京齐尔布莱特科技有限公司 | 一种软件测试系统和方法 |
US20180095866A1 (en) * | 2016-09-30 | 2018-04-05 | Wipro Limited | Method and system for automatically generating test data for testing applications |
CN106980573A (zh) * | 2016-10-26 | 2017-07-25 | 阿里巴巴集团控股有限公司 | 一种构建测试用例请求对象的方法、装置及系统 |
CN107276842A (zh) * | 2017-05-10 | 2017-10-20 | 北京金山安全软件有限公司 | 接口测试方法、装置及电子设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111581109A (zh) * | 2020-05-15 | 2020-08-25 | 杭州安恒信息技术股份有限公司 | 一种接口返回数据校验的方法、系统及设备 |
CN112132176A (zh) * | 2020-08-14 | 2020-12-25 | 中信银行股份有限公司 | 一种差异化提取方法、装置、电子设备及计算机可读存储介质 |
CN112162928A (zh) * | 2020-10-15 | 2021-01-01 | 网易(杭州)网络有限公司 | 游戏的测试方法、装置、电子设备及计算机可读介质 |
CN112162928B (zh) * | 2020-10-15 | 2024-03-15 | 网易(杭州)网络有限公司 | 游戏的测试方法、装置、电子设备及计算机可读介质 |
CN112416785A (zh) * | 2020-11-27 | 2021-02-26 | 广州品唯软件有限公司 | 切词工具版本差异测试方法、装置、设备和存储介质 |
CN112905449A (zh) * | 2021-01-27 | 2021-06-04 | 长沙市到家悠享网络科技有限公司 | 目标测试方法、装置、设备和存储介质 |
CN112905449B (zh) * | 2021-01-27 | 2024-04-23 | 长沙市到家悠享网络科技有限公司 | 目标测试方法、装置、设备和存储介质 |
WO2023123943A1 (zh) * | 2021-12-27 | 2023-07-06 | 深圳前海微众银行股份有限公司 | 接口自动化测试方法、装置、介质、设备及程序 |
CN116055353A (zh) * | 2023-01-28 | 2023-05-02 | 中国信息通信研究院 | 通信网元技术接口性能的测试装置、测试方法及系统 |
CN116055353B (zh) * | 2023-01-28 | 2023-06-30 | 中国信息通信研究院 | 通信网元技术接口性能的测试装置、测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110750433A (zh) | 接口测试方法和装置 | |
JP7343568B2 (ja) | 機械学習のためのハイパーパラメータの識別および適用 | |
CN110221982B (zh) | 业务系统的性能测试方法、装置、设备及可读存储介质 | |
CN110554958B (zh) | 图数据库测试方法、系统、设备和存储介质 | |
CN107861981B (zh) | 一种数据处理方法及装置 | |
KR101390220B1 (ko) | 소프트웨어 버그 정정을 위한 적합한 개발자 추천 방법 및 장치 | |
CN112184290A (zh) | 一种信息推荐方法、装置、电子设备及存储介质 | |
CN112667697A (zh) | 结合rpa和ai的房产信息的获取方法及装置 | |
CN111124873A (zh) | 一种Mock数据返回方法及装置 | |
CN111242318A (zh) | 基于异构特征库的业务模型训练方法及装置 | |
CN112328499A (zh) | 一种测试数据生成方法、装置、设备及介质 | |
CN107748772B (zh) | 一种商标识别方法及装置 | |
CN111913880A (zh) | 一种应用软件测试方法及装置 | |
CN109918048B (zh) | 目标对象提取方法、装置、系统及计算机可读存储介质 | |
CN110209780B (zh) | 一种问题模板生成方法、装置、服务器及存储介质 | |
CN110324352A (zh) | 识别批量注册账号群的方法及装置 | |
CN112395182A (zh) | 自动化测试方法、装置、设备及计算机可读存储介质 | |
CN111338958A (zh) | 一种测试用例的参数生成方法、装置及终端设备 | |
CN109359279B (zh) | 报表生成方法、装置、计算机设备和存储介质 | |
CN112965912B (zh) | 接口测试用例生成方法、装置和电子设备 | |
CN113031995B (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
CN113434770B (zh) | 电子商务与大数据结合的业务画像分析方法及系统 | |
CN113672497A (zh) | 无埋点事件的生成方法、装置、设备及存储介质 | |
CN112882937A (zh) | 测试用例的处理方法、装置、计算机设备及存储介质 | |
CN113515436A (zh) | 一种接口测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200204 |
|
RJ01 | Rejection of invention patent application after publication |