CN108829584B - 业务逻辑接口mock测试方法及系统 - Google Patents

业务逻辑接口mock测试方法及系统 Download PDF

Info

Publication number
CN108829584B
CN108829584B CN201810509752.9A CN201810509752A CN108829584B CN 108829584 B CN108829584 B CN 108829584B CN 201810509752 A CN201810509752 A CN 201810509752A CN 108829584 B CN108829584 B CN 108829584B
Authority
CN
China
Prior art keywords
data
mock
key
logic interface
result
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
Application number
CN201810509752.9A
Other languages
English (en)
Other versions
CN108829584A (zh
Inventor
汪辰
王良玉
张秋会
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ctrip Computer Technology Shanghai Co Ltd
Original Assignee
Ctrip Computer Technology Shanghai Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ctrip Computer Technology Shanghai Co Ltd filed Critical Ctrip Computer Technology Shanghai Co Ltd
Priority to CN201810509752.9A priority Critical patent/CN108829584B/zh
Publication of CN108829584A publication Critical patent/CN108829584A/zh
Application granted granted Critical
Publication of CN108829584B publication Critical patent/CN108829584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Abstract

本发明公开了一种业务逻辑接口mock测试方法及系统,其中方法包括S1、接收业务逻辑接口的SOA请求,并从测试工具中返回所述业务逻辑接口对应的测试数据作为期望数据;S2、根据所述业务逻辑接口从分布式缓存中获取出所述业务逻辑接口对应的mock数据作为结果数据;S3、将所述结果数据与所述期望数据进行比较;S4、根据比较结果返回所述业务逻辑接口对应的断言,所述断言包括所述结果数据与所述期望数据匹配,或者所述结果数据与所述期望数据不匹配。本发明通过对业务逻辑接口进行mock测试,极大地提高了接口测试的效率和回归测试的复用率,降低管理数据的成本,缩短每次发布的时间。

Description

业务逻辑接口mock测试方法及系统
技术领域
本领域涉及软件自动化测试技术领域,特别涉及一种业务逻辑接口mock(虚拟的)测试方法及系统。
背景技术
现有的接口自动化测试方法无法快速的构建和维护各种复杂逻辑场景的数据,并且通常验证接口返回的参数是通过XPath(一门在XML(可扩展标记语言)文档中查找信息的语言)路径等单一的验证方法,存在如下问题:算法和业务场景类接口由于强依赖的数据源构造步骤多,且数据源不稳定,导致自动化数据维护成本高,从而自动化执行失败率高;很难保证API(Application Programming Interface,应用程序编程接口)测试接口参数100%覆盖和较全面地覆盖接口的业务逻辑;很难灵活验证针对实际接口返回值多一个节点,少一个节点,或者给实际返回值增加白名单和黑名单从而有选择性的验证节点值的这些场景。这些问题都会导致自动化case(分支)执行效率低,同时对于接口返回报文的异常情况无法及时有效的感知和分析。
发明内容
本发明要解决的技术问题是为了克服现有技术中接口自动化测试无法快速的构建和维护各种复杂逻辑场景的数据,且自动化执行效率低,对于接口返回报文的异常情况无法及时有效的感知和分析的缺陷,提供一种业务逻辑接口mock测试方法及系统。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种业务逻辑接口mock测试方法,其特点是,包括:
S1、接收业务逻辑接口的SOA(面向服务的架构)请求,并从测试工具中返回所述业务逻辑接口对应的测试数据作为期望数据;
S2、根据所述业务逻辑接口从分布式缓存中获取出所述业务逻辑接口对应的mock数据作为结果数据;
S3、将所述结果数据与所述期望数据进行比较;
S4、根据比较结果返回所述业务逻辑接口对应的断言,所述断言包括所述结果数据与所述期望数据匹配,或者所述结果数据与所述期望数据不匹配。
较佳地,步骤S3包括:
S31、解析所述结果数据,并将解析后的所述结果数据生成若干第一键值对存放于结果列表中,所述第一键值对包括第一节点和与所述第一节点对应的第一节点值;
S32、解析所述期望数据,并将解析后的所述期望数据生成若干第二键值对存放于期望列表中,所述第二键值对包括第二节点和与所述第二节点对应的第二节点值;
S33、将所述结果列表中的第一键值对与所述期望列表中的第二键值对逐一循环比较。
较佳地,步骤S33包括:
S331、从所述结果列表中获取一第一键值对作为目标键值对;
S332、判断白名单是否为空,若是则执行步骤S334,若否则执行步骤S333,所述白名单用于存放所述结果列表中需进行mock测试的键值对;
S333、判断所述目标键值对是否存在于所述白名单中,若是则执行步骤S335,若否则执行步骤S336;
S334、判断所述目标键值对是否存在于所述黑名单中,若是则执行步骤S336,若否则执行步骤S335,所述黑名单用于存放所述结果列表中不需进行mock测试的键值对;
S335、从所述期望列表中获取与所述目标键值对对应的第二键值对,若获取成功,则将所述目标键值对与获取到的所述第二键值对进行比较;
S336、判断是否均逐一遍历完所述结果列表中的第一键值对,若否则返回步骤S331。
较佳地,步骤S2中分布式缓存中的mock数据通过以下步骤构造:
S21、接收所述业务逻辑接口的mock数据构造请求;
S22、判断所述mock数据构造请求是否为回归测试请求,若否则执行步骤S23,若是则从回归测试数据库中获取出所述mock数据构造请求对应的mock数据,所述回归测试数据库预存有mock数据构造请求与mock数据之间的对应关系,然后执行步骤S24;
S23、根据用户指定的信息构造出所述业务逻辑接口对应的mock数据,然后执行步骤S24;
S24、将所述mock数据存入所述分布式缓存。
较佳地,步骤S24中,在将所述mock数据存入所述分布式缓存前,根据所述业务逻辑接口所依赖的缓存数据的结构类型格式化所述mock数据。
本发明还提供一种业务逻辑接口mock测试系统,其特点是,包括第一获取模块、第二获取模块、比较模块和断言模块;
所述第一获取模块用于接收业务逻辑接口的SOA请求,并从测试工具中返回所述业务逻辑接口对应的测试数据作为期望数据;
所述第二获取模块用于根据所述业务逻辑接口从分布式缓存中获取出所述业务逻辑接口对应的mock数据作为结果数据;
所述比较模块用于将所述结果数据与所述期望数据进行比较;
所述断言模块用于根据所述比较模块输出的比较结果返回所述业务逻辑接口对应的断言,所述断言包括所述结果数据与所述期望数据匹配,或者所述结果数据与所述期望数据不匹配。
较佳地,所述比较模块包括解析单元、数据生成单元和比较单元;
所述解析单元用于解析所述结果数据和所述期望数据;
所述数据生成单元用于将经所述解析单元解析后的所述结果数据生成若干第一键值对存放于结果列表中,所述第一键值对包括第一节点和与所述第一节点对应的第一节点值,以及将经所述解析单元解析后的所述期望数据生成若干第二键值对存放于期望列表中,所述第二键值对包括第二节点和与所述第二节点对应的第二节点值;
所述比较单元用于将所述结果列表中的第一键值对与所述期望列表中的第二键值对逐一循环比较。
较佳地,所述业务逻辑接口mock测试系统还包括白名单和黑名单,所述比较单元包括遍历子单元、第一判断子单元、第二判断子单元、第三判断子单元和比较子单元;
所述白名单用于存放所述结果列表中需进行mock测试的键值对;
所述黑名单用于存放所述结果列表中不需进行mock测试的键值对;
所述遍历子单元用于从所述结果列表中获取一第一键值对作为目标键值对;
所述第一判断子单元用于判断所述白名单是否为空,在所述白名单为空时调用所述第二判断子单元,而在所述白名单不为空时,还判断所述目标键值对是否存在于所述白名单中,当所述目标键值对存在于所述白名单中时调用所述比较子单元,当所述目标键值对不存在于所述白名单中时调用所述第三判断子单元;
所述第二判断子单元用于判断所述目标键值对是否存在于所述黑名单中,当所述目标键值对不存在于所述黑名单中时则调用所述比较子单元,当所述目标键值对存在于所述黑名单中时则调用所述第三判断子单元;
所述第三判断子单元用于判断是否均逐一遍历完所述结果列表中的第一键值对,当判断结果为否时则调用所述遍历子单元;
所述比较子单元用于从所述期望列表中获取与所述目标键值对对应的第二键值对,并在获取成功后将所述目标键值对与获取到的所述第二键值对进行比较。
较佳地,所述业务逻辑接口mock测试系统还包括数据构造模块,所述数据构造模块包括接收单元、判断单元、数据构造单元和存储单元;
所述接收单元用于接收所述业务逻辑接口的mock数据构造请求;
所述判断单元用于判断所述mock数据构造请求是否为回归测试请求;
所述数据构造单元用于当所述判断单元的判断结果为否时,根据用户指定的信息构造出所述业务逻辑接口对应的mock数据,然后调用所述存储单元,而当所述判断单元的判断结果为是时,则从回归测试数据库中获取出所述mock数据构造请求对应的mock数据,所述回归测试数据库预存有mock数据构造请求与mock数据之间的对应关系,并调用所述存储单元;
所述存储单元用于将所述数据构造单元输出的所述mock数据存入所述分布式缓存。
较佳地,所述数据构造模块还包括数据格式化单元;
所述数据格式化单元用于根据所述业务逻辑接口所依赖的缓存数据的结构类型格式化所述mock数据,然后调用所述存储单元;
所述存储单元用于将所述数据格式化单元已格式化的所述mock数据存入所述分布式缓存。
本发明的积极进步效果在于:本发明通过mock测试方法,即在验证方法上采用面向对象和递归的思想来自动验证业务逻辑接口返回的每个节点的数据,可以极大地提高了接口测试的效率和回归测试的复用率,降低管理数据的成本,缩短每次发布的时间。其中mock测试方法还通过mock数据构造请求来快速地构造出已有的各种复杂业务逻辑场景及依赖的mock数据,并将构造出的mock数据存放于分布式缓存中以便mock测试使用。
附图说明
图1为本发明的实施例1的业务逻辑接口mock测试方法的流程图。
图2为本发明的实施例1的业务逻辑接口mock测试方法中构造mock数据的示意图。
图3为本发明的实施例1的业务逻辑接口mock测试方法的自动化脚本测试流程图。
图4为本发明的实施例1的业务逻辑接口mock测试方法的采用黑白名单的自动化脚本测试流程图。
图5为本发明的实施例2的业务逻辑接口mock测试系统的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例涉及的业务逻辑接口mock测试方法,包括以下步骤:
S101、接收业务逻辑接口的SOA请求,并从测试工具中返回所述业务逻辑接口对应的测试数据作为期望数据。
具体实施中,通过测试工具对业务逻辑接口的SOA请求进行测试,从而得到业务逻辑接口对应的测试数据,进而将测试数据作为该业务逻辑接口的期望数据,这样通过测试工具就能得到业务逻辑接口的每种场景对应的期望值,然后将这些期望值保存到自动化测试脚本的期望结果中。
S102、根据所述业务逻辑接口从分布式缓存中获取出所述业务逻辑接口对应的mock数据作为结果数据。
具体实施中,分布式缓存中的mock数据采用如图2所示的步骤进行构造:
S1021、接收所述业务逻辑接口的mock数据构造请求;
S1022、判断所述mock数据构造请求是否为回归测试请求,若否则执行步骤S1023,若是则从回归测试数据库中获取出所述mock数据构造请求对应的mock数据,所述回归测试数据库预存有mock数据构造请求与mock数据之间的对应关系,然后执行步骤S1024;
S1023、根据用户指定的信息构造出所述业务逻辑接口对应的mock数据,然后执行步骤S1024;
S1024、将所述mock数据存入所述分布式缓存。
其中,步骤S1021可通过API或者页面调用来接收所述mock数据构造请求;步骤S1022可经调度器中自动化case执行所述mock数据构造请求,由于调度器中已预设有各种业务逻辑接口及其对应mock数据构造请求的自动化case,这样通过调度器就能快速地区分出所述mock数据构造请求所对应的场景是已有场景还是新场景,从而将不同请求按相应的数据构造规则快速地构造出mock数据,如当请求为回归测试请求(即请求对应的场景为已有场景)时可直接从回归测试数据库中获取出相应的备份数据作为mock数据,而非回归测试请求(即请求对应的场景为新场景)时则执行步骤S1023,即按用户指定的信息构造mock数据;步骤S1023中,若需要将所述mock数据构造请求保存为备份数据以方便后续使用,则进行相应的备份,即将该请求及其对应的mock数据保存到回归测试数据库中;步骤S1024中还可将所述mock数据同步保存到DB(Database,数据库),方便后续调用所述mock数据。进一步,在步骤S1024中,在将所述mock数据存入所述分布式缓存前,还可根据业务逻辑接口所依赖的缓存数据的结构类型格式化所述mock数据,即先将mock数据格式化后再存放,比如采用redis(一种分布式缓存)存储系统作为分布式缓存时,可按key-value格式模型化mock数据,并以文本形式日期为单位保存每种场景所需要的mock数据,且这些mock数据经过人工校验后再存入redis中,这样在进行业务逻辑接口mock测试时,可通过API(ApplicationProgramming Interface,应用程序编程接口)直接从redis中获取出该mock数据作为结果数据用于自动化脚本测试。
步骤S103、将所述结果数据与所述期望数据进行比较。
具体实施中,采用自动化脚本验证所述结果数据与所述期望数据是否匹配。具体地,如图3所示,步骤S103采用如下步骤实现自动化脚本验证:
S1031、解析所述结果数据,并将解析后的所述结果数据生成若干第一键值对存放于结果列表中,所述第一键值对包括第一节点和与所述第一节点对应的第一节点值;
S1032、解析所述期望数据,并将解析后的所述期望数据生成若干第二键值对存放于期望列表中,所述第二键值对包括第二节点和与所述第二节点对应的第二节点值;
鉴于所述结果数据、所述期望数据均为一定格式的数据,比如为JSON字符串,这时利用自动化测试脚本,通过步骤S1031解析结果数据并将结果数据以第一键值对(如按节点path及节点值value构成path-value键值对)存储到结果列表,通过步骤S1032解析期望数据并将期望数据以第二键值对(也按节点path及节点值value构成path-value键值对)存储到期望列表,使得数据统一格式,便于逐一比较。
S1033、将所述结果列表中的第一键值对与所述期望列表中的第二键值对逐一循环比较。这样在利用脚本逐一遍历所述结果列表中所有的第一键值后,通过将所述结果列表中的第一键值对与所述期望列表中的第二键值对进行逐一循环比较,得出所述结果数据与所述期望数据之间是否匹配。
进一步,具体实施时,可采用白名单和黑名单来提高接口mock测试的效率,即将重点关注的测试节点存入白名单中,或者将不需关注的测试节点存入黑名单中,这样只需将需要进行mock测试的测试节点存入白名单中,这时白名单不为空,所以仅需对白名单中的测试节点进行mock测试;而当白名单为空时,可将不需关注的测试节点存入黑名单,这时只需对不在黑名单中的测试节点进行mock测试。具体地,如图4所示,步骤S1033包括:
S10331、从所述结果列表中获取一第一键值对作为目标键值对;
S10332、判断白名单是否为空,若是则执行步骤S10334,若否则执行步骤S10333,所述白名单用于存放所述结果列表中需进行mock测试的键值对;
S10333、判断所述目标键值对是否存在于所述白名单中,若是则执行步骤S10335,若否则执行步骤S10336;
S10334、判断所述目标键值对是否存在于所述黑名单中,若是则执行步骤S10336,若否则执行步骤S10335,所述黑名单用于存放所述结果列表中不需进行mock测试的键值对;
S10335、从所述期望列表中获取与所述目标键值对对应的第二键值对,若获取成功,则将所述目标键值对与获取到的所述第二键值对进行比较;
S10336、判断是否均逐一遍历完所述结果列表中的第一键值对,若否则返回步骤S10331。
这样先通过步骤S10332判断白名单是否为空,若白名单不为空,这时只需对白名单中的测试节点进行mock测试,即此时仅对白名单中的节点执行步骤S10335,而不在白名单中的节点被略过即继续遍历下一个第一键值对亦即执行步骤S10336,若白名单为空则再通过步骤S10334判断该目标键值对的节点是否存在于黑名单中,若是则继续遍历下一个第一键值对,若该节点不在黑名单中,则执行步骤S10335,步骤S10335中可通过查找键值对从期望列表中获取出对应的第二键值对,当不能从所述期望列表中获取出与所述目标键值对对应的第二键值对,则记录本轮比较结果为该第一键值对没有对应的第二键值对,即结果数据的键值对的节点数量与期望数据的键值对的节点数量不匹配,以便于后续断言时能获知结果数据的节点数量是多于还是小于期望数据的节点数量,而当能从所述期望列表中获取出与所述目标键值对对应的第二键值对,还需进一步比较键值对的节点值是否一致,若一致则记录本轮比较结果为键值对匹配,若不一致则记录本轮比较结果为键值对的节点值不匹配,以便于后续断言时能获知具体哪个键值对的节点值不匹配。这样通过步骤S10331~S10336完成了结果数据与期望数据的逐一比较,并获得详细的比较结果。
S104、根据比较结果返回所述业务逻辑接口对应的断言,所述断言包括所述结果数据与所述期望数据匹配,或者所述结果数据与所述期望数据不匹配,其中不匹配包括所述结果数据的节点数量多于或者少于所述期望数据的节点数量,或者是所述结果数据的节点数量与所述期望数据的节点数量相同,但存在所述结果数据的节点值与对应的所述期望数据的节点值不相同。
本实施例中,通过上述步骤S101~S104实现了复杂业务逻辑接口的自动化mock测试,极大地提高了接口测试的工作质量和效率,以及提高了回归测试的复用率,有效降低了管理数据的成本和缩短了每次发布的时间。
实施例2
如图5所示,本实施例涉及的业务逻辑接口mock测试系统,包括第一获取模块1、第二获取模块2、比较模块3和断言模块4。其中,第一获取模块1用于接收业务逻辑接口的SOA请求,并从测试工具中返回所述业务逻辑接口对应的测试数据作为期望数据;第二获取模块2用于根据所述业务逻辑接口从分布式缓存中获取出所述业务逻辑接口对应的mock数据作为结果数据;比较模块3用于将所述结果数据与所述期望数据进行比较;断言模块4用于根据比较模块3输出的比较结果返回所述业务逻辑接口对应的断言,所述断言包括所述结果数据与所述期望数据匹配,或者所述结果数据与所述期望数据不匹配,其中不匹配包括所述结果数据的节点数量多于或者少于所述期望数据的节点数量,或者是所述结果数据的节点数量与所述期望数据的节点数量相同,但存在所述结果数据的节点值与对应的所述期望数据的节点值不相同。
具体实施中,比较模块3包括解析单元31、数据生成单元32和比较单元33。其中,解析单元31用于解析所述结果数据和所述期望数据,由于所述结果数据和所述期望数据均符合一定格式,比如JSON格式,这时可通过解析单元31解析后便于后续处理;数据生成单元32用于将经解析单元31解析后的所述结果数据生成若干第一键值对存放于结果列表中,所述第一键值对包括第一节点和与所述第一节点对应的第一节点值,以及将经解析单元31解析后的所述期望数据生成若干第二键值对存放于期望列表中,所述第二键值对包括第二节点和与所述第二节点对应的第二节点值;比较单元33用于将所述结果列表中的第一键值对与所述期望列表中的第二键值对逐一循环比较。
进一步,可采用白名单和黑名单来提高接口mock测试的效率,即重点关注的测试节点存入白名单中,而不需关注的测试节点存入黑名单中。具体地,所述业务逻辑接口mock测试系统还包括白名单5和黑名单6,比较单元33包括遍历子单元331、第一判断子单元332、第二判断子单元333、第三判断子单元334和比较子单元335。其中,白名单5用于存放所述结果列表中需进行mock测试的键值对;黑名单6用于存放所述结果列表中不需进行mock测试的键值对;遍历子单元331用于从所述结果列表中获取一第一键值对作为目标键值对;第一判断子单元332用于判断白名单5是否为空,在白名单5为空时调用第二判断子单元333,而在白名单5不为空时,还判断所述目标键值对是否存在于白名单5中,当所述目标键值对存在于白名单5中时调用比较子单元335,当所述目标键值对不存在于白名单5中时调用第三判断子单元334;第二判断子单元333用于判断所述目标键值对是否存在于黑名单6中,当所述目标键值对不存在于黑名单6中时则调用比较子单元335,当所述目标键值对存在于黑名单6中时则调用第三判断子单元334;第三判断子单元334用于判断是否均逐一遍历完所述结果列表中的第一键值对,当未遍历完则调用遍历子单元331;比较子单元335用于从所述期望列表中获取与所述目标键值对对应的第二键值,并在获取成功后将所述目标键值对与获取到的所述第二键值进行比较。通过比较单元33中的遍历子单元331、第一判断子单元332、第二判断子单元333、第三判断子单元334和比较子单元335,可逐一遍历并比较结果数据与期望数据是否匹配以及根据比较过程获得具体的不匹配情况,从而方便断言模块4给出详细的测试断言,以方便测试人员观察mock测试的具体情况。
本实施例中,用于作为结果数据的mock数据,可预先根据业务逻辑接口所依赖的数据源进行构造,并经人工校验后存放于分布式缓存中,以提高业务逻辑接口mock测试的质量和效率。具体地,所述业务逻辑接口mock测试系统还包括数据构造模块7,数据构造模块7包括接收单元71、判断单元72、数据构造单元73和存储单元74。其中,接收单元71用于接收所述业务逻辑接口的mock数据构造请求;判断单元72用于判断所述mock数据构造请求是否为回归测试请求;数据构造单元73用于当判断单元72的判断结果为否时,根据用户指定的信息构造出所述业务逻辑接口对应的mock数据,然后调用存储单元74,而当判断单元72的判断结果为是时,则从回归测试数据库中获取出所述mock数据构造请求对应的mock数据,所述回归测试数据库预存有mock数据构造请求与mock数据之间的对应关系,并调用存储单元74;存储单元74用于将数据构造单元73输出的所述mock数据存入所述分布式缓存。当然,存储单元74还可将数据构造单元73输出的所述mock数据同步存入DB(数据库)中已便于调用所述mock数据。
进一步,为提高数据处理效率,可根据所述业务逻辑接口所依赖的缓存数据的结构类型格式化所述mock数据后再存入分布式缓存中。具体地,数据构造模块7还包括数据格式化单元75,数据格式化单元75用于根据所述业务逻辑接口所依赖的缓存数据的结构类型格式化所述mock数据,然后调用存储单元74;存储单元74用于将数据格式化单元75已格式化的所述mock数据存入所述分布式缓存。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (6)

1.一种业务逻辑接口mock测试方法,其特征在于,包括:
S1、接收业务逻辑接口的SOA请求,并从测试工具中返回所述业务逻辑接口对应的测试数据作为期望数据;
S2、根据所述业务逻辑接口从分布式缓存中获取出所述业务逻辑接口对应的mock数据作为结果数据;
S3、将所述结果数据与所述期望数据进行比较;
步骤S3包括:
S31、解析所述结果数据,并将解析后的所述结果数据生成若干第一键值对存放于结果列表中,所述第一键值对包括第一节点和与所述第一节点对应的第一节点值;
S32、解析所述期望数据,并将解析后的所述期望数据生成若干第二键值对存放于期望列表中,所述第二键值对包括第二节点和与所述第二节点对应的第二节点值;
S33、将所述结果列表中的第一键值对与所述期望列表中的第二键值对逐一循环比较;
步骤S33包括:
S331、从所述结果列表中获取一第一键值对作为目标键值对;
S332、判断白名单是否为空,若是则执行步骤S334,若否则执行步骤S333,所述白名单用于存放所述结果列表中需进行mock测试的键值对;
S333、判断所述目标键值对是否存在于所述白名单中,若是则执行步骤S335,若否则执行步骤S336;
S334、判断所述目标键值对是否存在于黑名单中,若是则执行步骤S336,若否则执行步骤S335,所述黑名单用于存放所述结果列表中不需进行mock测试的键值对;
S335、从所述期望列表中获取与所述目标键值对对应的第二键值对,若获取成功,则将所述目标键值对与获取到的所述第二键值对进行比较;
S336、判断是否均逐一遍历完所述结果列表中的第一键值对,若否则返回步骤S331;
S4、根据比较结果返回所述业务逻辑接口对应的断言,所述断言包括所述结果数据与所述期望数据匹配,或者所述结果数据与所述期望数据不匹配。
2.如权利要求1所述的业务逻辑接口mock测试方法,其特征在于,步骤S2中分布式缓存中的mock数据通过以下步骤构造:
S21、接收所述业务逻辑接口的mock数据构造请求;
S22、判断所述mock数据构造请求是否为回归测试请求,若否则执行步骤S23,若是则从回归测试数据库中获取出所述mock数据构造请求对应的mock数据,所述回归测试数据库预存有mock数据构造请求与mock数据之间的对应关系,然后执行步骤S24;
S23、根据用户指定的信息构造出所述业务逻辑接口对应的mock数据,然后执行步骤S24;
S24、将所述mock数据存入所述分布式缓存。
3.如权利要求2所述的业务逻辑接口mock测试方法,其特征在于,步骤S24中,在将所述mock数据存入所述分布式缓存前,根据所述业务逻辑接口所依赖的缓存数据的结构类型格式化所述mock数据。
4.一种业务逻辑接口mock测试系统,其特征在于,包括第一获取模块、第二获取模块、比较模块和断言模块;
所述第一获取模块用于接收业务逻辑接口的SOA请求,并从测试工具中返回所述业务逻辑接口对应的测试数据作为期望数据;
所述第二获取模块用于根据所述业务逻辑接口从分布式缓存中获取出所述业务逻辑接口对应的mock数据作为结果数据;
所述比较模块用于将所述结果数据与所述期望数据进行比较;
所述比较模块包括解析单元、数据生成单元和比较单元;
所述解析单元用于解析所述结果数据和所述期望数据;
所述数据生成单元用于将经所述解析单元解析后的所述结果数据生成若干第一键值对存放于结果列表中,所述第一键值对包括第一节点和与所述第一节点对应的第一节点值,以及将经所述解析单元解析后的所述期望数据生成若干第二键值对存放于期望列表中,所述第二键值对包括第二节点和与所述第二节点对应的第二节点值;
所述比较单元用于将所述结果列表中的第一键值对与所述期望列表中的第二键值对逐一循环比较;
所述业务逻辑接口mock测试系统还包括白名单和黑名单,所述比较单元包括遍历子单元、第一判断子单元、第二判断子单元、第三判断子单元和比较子单元;
所述白名单用于存放所述结果列表中需进行mock测试的键值对;
所述黑名单用于存放所述结果列表中不需进行mock测试的键值对;
所述遍历子单元用于从所述结果列表中获取一第一键值对作为目标键值对;
所述第一判断子单元用于判断所述白名单是否为空,在所述白名单为空时调用所述第二判断子单元,而在所述白名单不为空时,还判断所述目标键值对是否存在于所述白名单中,当所述目标键值对存在于所述白名单中时调用所述比较子单元,当所述目标键值对不存在于所述白名单中时调用所述第三判断子单元;
所述第二判断子单元用于判断所述目标键值对是否存在于所述黑名单中,当所述目标键值对不存在于所述黑名单中时则调用所述比较子单元,当所述目标键值对存在于所述黑名单中时则调用所述第三判断子单元;
所述第三判断子单元用于判断是否均逐一遍历完所述结果列表中的第一键值对,当判断结果为否时则调用所述遍历子单元;
所述比较子单元用于从所述期望列表中获取与所述目标键值对对应的第二键值对,并在获取成功后将所述目标键值对与获取到的所述第二键值对进行比较;
所述断言模块用于根据所述比较模块输出的比较结果返回所述业务逻辑接口对应的断言,所述断言包括所述结果数据与所述期望数据匹配,或者所述结果数据与所述期望数据不匹配。
5.如权利要求4所述的业务逻辑接口mock测试系统,其特征在于,所述业务逻辑接口mock测试系统还包括数据构造模块,所述数据构造模块包括接收单元、判断单元、数据构造单元和存储单元;
所述接收单元用于接收所述业务逻辑接口的mock数据构造请求;
所述判断单元用于判断所述mock数据构造请求是否为回归测试请求;
所述数据构造单元用于当所述判断单元的判断结果为否时,根据用户指定的信息构造出所述业务逻辑接口对应的mock数据,然后调用所述存储单元,而当所述判断单元的判断结果为是时,则从回归测试数据库中获取出所述mock数据构造请求对应的mock数据,所述回归测试数据库预存有mock数据构造请求与mock数据之间的对应关系,并调用所述存储单元;
所述存储单元用于将所述数据构造单元输出的所述mock数据存入所述分布式缓存。
6.如权利要求5所述的业务逻辑接口mock测试系统,其特征在于,所述数据构造模块还包括数据格式化单元;
所述数据格式化单元用于根据所述业务逻辑接口所依赖的缓存数据的结构类型格式化所述mock数据,然后调用所述存储单元;
所述存储单元用于将所述数据格式化单元已格式化的所述mock数据存入所述分布式缓存。
CN201810509752.9A 2018-05-24 2018-05-24 业务逻辑接口mock测试方法及系统 Active CN108829584B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810509752.9A CN108829584B (zh) 2018-05-24 2018-05-24 业务逻辑接口mock测试方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810509752.9A CN108829584B (zh) 2018-05-24 2018-05-24 业务逻辑接口mock测试方法及系统

Publications (2)

Publication Number Publication Date
CN108829584A CN108829584A (zh) 2018-11-16
CN108829584B true CN108829584B (zh) 2022-02-11

Family

ID=64145399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810509752.9A Active CN108829584B (zh) 2018-05-24 2018-05-24 业务逻辑接口mock测试方法及系统

Country Status (1)

Country Link
CN (1) CN108829584B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109614322A (zh) * 2018-11-28 2019-04-12 北京京东金融科技控股有限公司 基于Mock的单元测试方法、装置、设备及可读存储介质
CN110046086B (zh) * 2018-12-20 2022-04-22 创新先进技术有限公司 用于测试的期望数据生成方法及装置和电子设备
CN109714418A (zh) * 2018-12-27 2019-05-03 北京潘达互娱科技有限公司 接口返回数据的比对方法、计算设备
CN110347545A (zh) * 2019-05-21 2019-10-18 深圳壹账通智能科技有限公司 一种业务平台缓存策略的测试方法及装置
CN110245166B (zh) * 2019-05-21 2023-09-26 创新先进技术有限公司 数据核对方法及装置
CN112214395A (zh) * 2020-09-02 2021-01-12 浙江大搜车融资租赁有限公司 基于流量数据的接口测试方法、电子装置及存储介质
CN112561690A (zh) * 2020-12-23 2021-03-26 平安银行股份有限公司 信用卡分期业务接口的测试方法、系统、设备及存储介质
CN113176993A (zh) * 2021-04-28 2021-07-27 平安银行股份有限公司 用例测试方法、装置、电子设备及存储介质
CN113342353B (zh) * 2021-07-01 2023-05-23 银联商务股份有限公司 一种mock数据生成方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841841A (zh) * 2011-06-20 2012-12-26 阿里巴巴集团控股有限公司 一种测试中的断言处理方法及系统
CN107122296A (zh) * 2017-04-18 2017-09-01 上海雷腾软件股份有限公司 用于测试接口的数据断言的方法及设备
CN107423211A (zh) * 2017-03-15 2017-12-01 中国互联网络信息中心 一种sdns接口自动化测试系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841841A (zh) * 2011-06-20 2012-12-26 阿里巴巴集团控股有限公司 一种测试中的断言处理方法及系统
CN107423211A (zh) * 2017-03-15 2017-12-01 中国互联网络信息中心 一种sdns接口自动化测试系统和方法
CN107122296A (zh) * 2017-04-18 2017-09-01 上海雷腾软件股份有限公司 用于测试接口的数据断言的方法及设备

Also Published As

Publication number Publication date
CN108829584A (zh) 2018-11-16

Similar Documents

Publication Publication Date Title
CN108829584B (zh) 业务逻辑接口mock测试方法及系统
US11102081B1 (en) Quantitative network testing framework for 5G and subsequent generation networks
CN110543427B (zh) 测试用例存储方法、装置、电子设备及存储介质
CN111176979B (zh) 一种图数据库的测试用例生成方法和装置
CN110046091B (zh) 一种自动测试方法和装置
CN109634846B (zh) 一种etl软件测试方法和装置
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN111221721B (zh) 一种单元测试案例自动化录制和执行方法及装置
CN114416547A (zh) 基于测试用例的测试方法
CN112395339B (zh) 系统间数据准入校验方法、装置、计算机设备和存储介质
CN112965912B (zh) 接口测试用例生成方法、装置和电子设备
CN108446224B (zh) 移动端上应用程序的性能分析方法、存储介质
WO2023051073A1 (zh) 数据库测试方法、分布式数据库、存储介质
CN111159020A (zh) 一种应用于同步软件测试的方法和装置
CN116185869A (zh) 一种软件测试方法、系统、计算机设备及存储介质
CN115454860A (zh) 一种自动化测试的方法、装置、存储介质及电子设备
WO2020215693A1 (zh) 软件测试方法、装置、计算机设备和可读存储介质
CN115705297A (zh) 代码调用检测方法、装置、计算机设备以及存储介质
CN113419957A (zh) 基于规则的大数据离线批处理性能容量扫描方法及装置
CN106681914B (zh) 电视机画面质量调试方法及装置
CN110413518A (zh) 控件对象库的生成方法及生成装置和计算机可读存储介质
CN113965489B (zh) 链路超时检测方法、装置、计算机设备和存储介质
CN115840715B (zh) 软件测试管理方法、装置和存储介质
CN113114493B (zh) 一种网元配置约束检查方法及系统
US20230216727A1 (en) Identification of root causes in data processing errors

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
GR01 Patent grant
GR01 Patent grant