CN112732567A - 基于ip的mock数据测试方法、装置、电子设备及存储介质 - Google Patents

基于ip的mock数据测试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112732567A
CN112732567A CN202011640503.7A CN202011640503A CN112732567A CN 112732567 A CN112732567 A CN 112732567A CN 202011640503 A CN202011640503 A CN 202011640503A CN 112732567 A CN112732567 A CN 112732567A
Authority
CN
China
Prior art keywords
data
request
mock
field
recording
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
Application number
CN202011640503.7A
Other languages
English (en)
Other versions
CN112732567B (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.)
Ping An Bank Co Ltd
Original Assignee
Ping An Bank 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 Ping An Bank Co Ltd filed Critical Ping An Bank Co Ltd
Priority to CN202011640503.7A priority Critical patent/CN112732567B/zh
Publication of CN112732567A publication Critical patent/CN112732567A/zh
Application granted granted Critical
Publication of CN112732567B publication Critical patent/CN112732567B/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/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及数据测试技术,揭露了一种基于ip的mock数据测试方法,包括:根据从用户请求中提取的目标变量字段获取录制类请求;解析并获取录制类请求中的ip字段,根据ip字段判断请求是否经过转发;当未经过转发将ip字段作为目标变量字段的字段值,得到待执行录制请求;当经过转发追踪请求的源ip字段,将源ip字段作为目标变量字段的字段值,得到待执行录制请求;利用待执行录制请求对预构建的mock平台进行mock录制,得到mock数据;利用mock数据对待测试数据集进行测试。此外,本发明还涉及区块链技术,所述待测试数据集可存储于区块链的节点。本发明还提出一种基于ip的mock数据测试装置、设备以及介质。本发明可以解决使用mock工具进行数据测试的效率不高的问题。

Description

基于ip的mock数据测试方法、装置、电子设备及存储介质
技术领域
本发明涉及数据测试技术领域,尤其涉及一种基于ip的mock数据测试方 法、装置、电子设备及计算机可读存储介质。
背景技术
数据测试是系统开发或维护时常见的手段,目前常见的数据测试方法多 为mock数据测试方法,现有的mock数据测试方法中,需要对用户发送的测 试请求进行内容分析,以根据分析结果构造测试数据,并获取可以对测试数 据进行数据测试的mock工具,利用获取的mock工具对测试数据进行测试。
在使用该方法进行数据测试的过程中,由于用户请求的数量往往十分庞 大,因此该方法对测试请求进行内容分析时需要占用大量计算资源,导致分 析效率低下,且在获取mock工具时需要测试人员手动获取,进一步降低了数 据测试的效率。
发明内容
本发明提供一种基于ip的mock数据测试方法、装置及计算机可读存储 介质,其主要目的在于解决使用mock工具进行数据测试的效率不高的问题。
为实现上述目的,本发明提供的一种基于ip的mock数据测试方法,包 括:
获取用户请求,提取所述用户请求中的目标变量字段;
当所述目标变量字段与预设的录制变量字段一致时,确定所述用户请求 为录制类请求;
提取所述录制类请求中的请求消息头,解析并获取所述请求消息头中的 ip字段,根据所述ip字段判断所述录制类请求是否经过转发;
当所述录制类请求未经过转发,将所述ip字段作为所述目标变量字段的 字段值,得到待执行录制请求;
当所述录制类请求经过转发,追踪所述录制类请求的源ip字段,将所述 源ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
调用预先构建的mock平台,利用所述待执行录制请求对所述mock平台 进行mock录制,得到mock数据;
获取待测试数据集,利用所述mock数据对所述待测试数据集中的数据进 行测试,得到所述待测试数据集的测试结果。
可选地,所述提取所述用户请求中的目标变量字段,包括:
遍历并确定所述用户请求中字段分隔符的位置;
根据所述字段分隔符的位置对所述用户请求进行字段拆分,得到多个拆 分字段;
按照拆分顺序将所述多个拆分字段进行序号标注;
选取预设序号的拆分字段为所述目标变量字段。
可选地,所述所述提取所述录制类请求中的请求消息头,包括:
遍历并确定所述录制类请求中的请求头数据类;
对所述请求头数据类进行反射操作,得到请求头方法;
根据所述请求头方法构建请求头提取语句;
执行所述请求头提取语句提取所述录制类请求中的请求消息头。
可选地,所述根据所述ip字段判断所述录制类请求是否经过转发,包括:
将所述ip字段进行逻辑测试,得到逻辑测试值;
当所述逻辑测试值与预设逻辑阈值相同时,确定所述录制类请求经过转 发;
当所述逻辑测试值与预设逻辑阈值不同时,确定所述录制类请求未经过 转发。
可选地,所述追踪所述录制类请求的源ip字段,包括:
提取所述用户请求中的转发路径参数;
对所述转发路径参数进行反解析,得到转发路径;
根据所述转发路径确定所述用户请求的源发地址;
从所述源发地址中提取所述源ip字段。
可选地,所述利用所述mock数据对所述待测试数据集中的数据进行测试, 得到所述待测试数据集的测试结果,包括:
对所述mock数据进行特征提取,得到mock数据的mock数据特征;
对所述待测试数据集进行特征提取,得到测试数据特征集,其中,所述 测试数数据特征集包括所述待测试数据集中各待测试数据的测试特征;
计算所述mock数据特征与所述测试数据特征集中各测试特征的距离值, 选取所述距离值小于预设距离阈值的测试特征对应的待测试数据为目标数据;
利用所述mock数据对所述目标数据进行测试,得到所述待测试数据集的 测试结果。
可选地,所述利用所述mock数据对所述目标数据进行测试,得到所述待 测试数据集的测试结果,包括:
将所述目标数据编译为测试用例;
执行所述测试用例对所述mock数据进行调用测试,得到返回结果;
若所述返回结果为空值,则生成所述待测试数据集的逻辑错误的测试结 果;
若所述返回结果不为空值,则生成所述待测试数据集的逻辑正确的测试 结果。
为了解决上述问题,本发明还提供一种基于ip的mock数据测试装置, 所述装置包括:
字段提取模块,用于获取用户请求,提取所述用户请求中的目标变量字 段;
类型判断模块,用于当所述目标变量字段与预设的录制变量字段一致时, 确定所述用户请求为录制类请求;
转发判断模块,用于提取所述录制类请求中的请求消息头,解析并获取 所述请求消息头中的ip字段,根据所述ip字段判断所述录制类请求是否经过 转发;
第一请求生成模块,用于当所述录制类请求未经过转发,将所述ip字段 作为所述目标变量字段的字段值,得到待执行录制请求;
第二请求生成模块,用于当所述录制类请求经过转发,追踪所述录制类 请求的源ip字段,将所述源ip字段作为所述目标变量字段的字段值,得到待 执行录制请求;
数据录制模块,用于调用预先构建的mock平台,利用所述待执行录制请 求对所述mock平台进行mock录制,得到mock数据;
数据测试模块,用于获取待测试数据集,利用所述mock数据对所述待测 试数据集中的数据进行测试,得到所述待测试数据集的测试结果。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述所述的基于ip的mock 数据测试方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算 机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的 处理器执行以实现上述所述的基于ip的mock数据测试方法。
本发明实施例通过对用户请求中目标变量字段的判断,可实现从大量用 户请求中需要进行数据测试的录制类请求,避免对所有用户请求进行分析, 提高了数据测试的效率;提取录制类请求中的请求消息头,并通过判断录制 类请求是否经过转发获取该录制类请求的源ip地址,进而生成待执行录制请 求对mock平台进行录制得到mock数据,实现了基于ip地址精准的对mock 平台中的数据进行录制,避免了由于录制类请求的转发导致需要再次对录制 类请求进行分析来获取mock数据,有利于提高数据测试的效率;获取待测试数据集,利用mock数据对所述待测试数据集中的数据进行测试,实现了利用 mock数据直接对待测试数据集中的数据进行测试,有利于提高数据测试的效 率。因此本发明提出的基于ip的mock数据测试方法、装置、电子设备及计 算机可读存储介质,可以解决使用mock工具进行数据测试的效率不高的问题。
附图说明
图1为本发明一实施例提供的基于ip的mock数据测试方法的流程示意图;
图2为本发明一实施例提供的基于ip的mock数据测试装置的功能模块图;
图3为本发明一实施例提供的实现所述基于ip的mock数据测试方法的电 子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步 说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限 定本发明。
本申请实施例提供一种基于ip的mock数据测试方法。所述基于ip的mock 数据测试方法的执行主体包括但不限于服务端、终端等能够被配置为执行本 申请实施例提供的该方法的电子设备中的至少一种。换言之,所述基于ip的 mock数据测试方法可以由安装在终端设备或服务端设备的软件或硬件来执行, 所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务 器集群、云端服务器或云端服务器集群等。
参照图1所示,为本发明一实施例提供的基于ip的mock数据测试方法 的流程示意图。在本实施例中,所述基于ip的mock数据测试方法包括:
S1、获取用户请求,提取所述用户请求中的目标变量字段。
本发明实施例中,所述用户请求为任何系统中用户发起的请求命令,例 如,数据管理系统中用户发起的调用数据的请求命令。
详细地,本发明实施例使用ASM增强字节码过滤器拦截获取网络中的用 户请求,所述ASM增强字节码过滤器是一款基于java字节码层面的代码分析 工具,利用ASM增强字节码过滤器对用户请求进行拦截,可提高用户请求拦 截的成功率。
进一步地,所述提取所述用户请求中的目标变量字段,包括:
遍历并确定所述用户请求中字段分隔符的位置;
根据所述字段分隔符的位置对所述用户请求进行字段拆分,得到多个拆 分字段;
按照拆分顺序将所述多个拆分字段进行序号标注;
选取预设序号的拆分字段为所述目标变量字段。
例如,用户请求为“qwe<rt<yuio<pl”,其中,<为字段分隔符,则按照用 户请求中字段分隔符的位置将用户请求进行字段拆分为:“qwe”、“rt”、“yuio” 和“pl”四个拆分字段,并按照拆分顺序将多个拆分字段进行序号标注为: 1“qwe”、2“rt”、3“yuio”和4“pl”,例如,预设序号为2,则确定字段“rt”为目标 变量字段。
S2、当所述目标变量字段与预设的录制变量字段一致时,确定所述用户 请求为录制类请求。
本发明实施例中,所述录制变量字段是需要进行mock录制的录制类请求 中特有的变量字段。
详细地,将获取的所述目标变量字段与预设的录制变量字段进行对比, 若目标变量字段与预设的录制变量字段一致时,则确定用户请求为录制类请 求,若目标变量字段与预设的录制变量字段不一致时,则确定用户请求为非 录制类请求。
S3、提取所述录制类请求中的请求消息头,解析并获取所述请求消息头 中的ip字段,根据所述ip字段判断所述录制类请求是否经过转发。
本发明实施例中,可利用java中的反射技术提取所述录制类请求中的请 求消息头,所述反射技术是java中根据字符串获取数据类的方法,利用反射 技术提取录制类请求中的请求消息头,可提高获取请求消息头的效率。
详细地,所述所述提取所述录制类请求中的请求消息头,包括:
遍历并确定所述录制类请求中的请求头数据类;
对所述请求头数据类进行反射操作,得到请求头方法;
根据所述请求头方法构建请求头提取语句;
执行所述请求头提取语句提取所述录制类请求中的请求消息头。
具体地,所述对所述请求头数据类进行反射操作,得到请求头方法,例 如,利用如下java语句对所述请求头数据类进行反射操作:
String name="Hualing";Class c1=name.getClass();System.out.println(c1.ge tName())。
其中,"Hualing"为所述请求头数据类。
当对所述请求头数据类进行反射操作后,即可得到请求头方法。具体地, 根据所述请求头方法构建请求头提取语句的具体方法包括:构建如下请求头 提取语句:Stringname=field.getName()。
进一步地,本发明实施例中可利用解析器解析所述请求得到所述请求消 息头中的ip字段,所述解析器包括CarakanC/C++,SquirrelFishC++和 SquirrelFishExtremeC++等。
详细地,所述根据所述ip字段判断所述录制类请求是否经过转发,包括:
将所述ip字段进行逻辑测试,得到逻辑测试值;
当所述逻辑测试值与预设逻辑阈值相同时,确定所述录制类请求经过转 发;
当所述逻辑测试值与预设逻辑阈值不同时,确定所述录制类请求未经过 转发。
详细地,由于录制类请求在被拦截之前可能经历过多个计算机的转发, 进而导致请求中的ip地址发生了改变,本发明实施例根据ip字段判断录制类 请求是否经过转发,有利于后续针对性的作出不同的操作,以提高mock录制 的成功率。
S4、当所述录制类请求未经过转发,将所述ip字段作为所述目标变量字 段的字段值,得到待执行录制请求。
本发明实施例中,当所述录制类请求未经过转发,则直接将所述ip字段 作为所述目标变量字段的字段值,即利用所述ip字段对所述目标变量字段进 行赋值,得到待执行录制请求。
S5、当所述录制类请求经过转发,追踪所述录制类请求的源ip字段,将 所述源ip字段作为所述目标变量字段的字段值,得到待执行录制请求。
本发明实施例中,所述追踪所述录制类请求的源ip字段,包括:
提取所述用户请求中的转发路径参数;
对所述转发路径参数进行反解析,得到转发路径;
根据所述转发路径确定所述用户请求的源发地址;
从所述源发地址中提取所述源ip字段。
详细地,本发明实施例中,可利用具有参数抓取功能的python语句从所 述用户请求中提取出所述转发路径参数,所述转发路径参数是用户请求在被 转发的过程中计算机生成并标记于用户请求内的特定字段。
具体地,对转发路径参数进行反解析,得到转发路径,其中,反解析是 解析的逆过程,按照解析器对用户请求进行解析的反过程执行,即可实现对 转发路径参数进行反解析,得到所述转发路径。
进一步地,本发明实施例根据转发路径确定用户请求的源发地址,即确 定转发路径最前端的网络地址为源发地址,例如,转发路径为 www.xxxx/yyyy/uuuu/iiii.com,则确定转发路径最前端的网络地址(xxxx)为 源发地址。
具体地,从所述源发地址中提取所述源ip字段的步骤与步骤S3中提取ip 字段的步骤一致,在此不做赘述。
详细地,本发明实施例将追踪到的用户请求的源ip字段作为所述目标变 量字段的字段值,即利用所述源ip字段对所述目标变量字段进行赋值,得到 待执行录制请求。
S6、调用预先构建的mock平台,利用所述待执行录制请求对所述mock 平台进行mock录制,得到mock数据。
本发明实施例中,所述预先构建的mock平台为包含需要进行数据测试的 数据的平台。
详细地,所述调用预先构建的mock平台,包括:
获取所述mock平台的配置文件;
根据所述配置文件编译所述mock平台的接口调用语句;
利用所述接口调用语句调用所述mock平台。
本发明实施例中,可利用具有数据抓取功能的java语句从mock平台的后 台数据中抓取mock平台的配置文件。
进一步地,本发明实施例通过现有aper-mock.properties方法根据所述配 置文件编译所述mock平台的接口调用语句,示例如下:
#AperMock;aperMock.log.show=true;
#AperMock连接模式:local本地读取,database数据库方式,http网络 连接获取;aperMock.connect.mode=database;
#AperMock连接的数据库mode为database,支持mysql、oracle、mongo;aperMock.connect.database=mysql;
……。
本发明实施例中,所述利用所述待执行录制请求对所述mock平台进行 mock录制之前,所述方法还包括根据所述待执行录制请求中的目标变量字段 的字段值判断所述待执行录制请求的类型,例如,当目标变量字段的字段值 与预先存储的第一字段值相同时,确定所述待执行录制请求的类型为http请 求,当目标变量字段的字段值与预先存储的第二字段值相同时,确定所述待 执行录制请求的类型为ESA请求。
进一步地,所述利用所述待执行录制请求对所述mock平台进行mock录 制,包括:
获取所述mock平台的平台参数;
当所述待执行录制请求为http请求时,将所述平台参数作为请求体写入 所述待执行录制请求的第一请求方法,生成录制指令;
当所述待执行录制请求为ESA请求时,将所述平台参数作为请求体写入 所述待执行录制请求的第二请求方法,生成录制指令;
执行生成的录制指令对所述mock平台进行mock录制。
本发明实施例中,对于HTTP请求,以增加字节码方式将所述平台参数 作为请求体写入所述待执行录制请求的第一请求方法(如 CloseableHttpResponse execute(finalHttpUriRequest request)方法)生成录制指 令;对于ESA请求,以增加字节码方式将所述平台参数作为请求体写入所述 待执行录制请求的第二请求方法(如ServiceResponse_perform(ServiceRequest sr)方法)生成录制指令。
S7、获取待测试数据集,利用所述mock数据对所述待测试数据集中的数 据进行测试,得到所述待测试数据集的测试结果。
本发明实施例中,可利用具有数据抓取功能的python语句从预先构建的 区块链节点中获取用户上传的待测试数据集,利用区块链对数据的高吞吐性, 可提高获取所述待测试数据集的效率,所述待测试数据集中存在着多个待测 试数据。
详细地,所述利用所述mock数据对所述待测试数据集中的数据进行测试, 得到所述待测试数据集的测试结果,包括:
对所述mock数据进行特征提取,得到mock数据特征;
对所述待测试数据集进行特征提取,得到测试数据特征集,其中,所述 测试数数据特征集包括所述待测试数据集中各待测试数据的测试特征;
计算所述mock数据特征与所述测试数据特征集中各测试特征的距离值, 选取所述距离值小于预设距离阈值的测试特征对应的待测试数据为目标数据;
利用所述mock数据对所述目标数据进行测试,得到所述待测试数据集的 测试结果。
具体地,所述对所述mock数据进行特征提取,得到mock数据的mock 数据特征,包括:
获取训练mock数据以及所述训练mock数据对应的标准mock数据特征;
利用预设的特征提取模型对所述训练mock数据进行特征提取,得到预测 mock数据特征;
计算所述预测mock数据特征和所述标准mock数据特征之间的差异值;
若所述差异值大于误差阈值,则调整所述特征提取模型的参数后重新进 行特征提取;
若所述差异值小于所述误差阈值,则生成训练完成的特征提取模型;
利用训练完成的特征提取模型对所述mock数据进行特征提取,得到mock 数据特征。
较佳地,所述计算所述预测mock数据特征和所述标准mock数据特征之 间的差异值,包括:
利用如下差异值算法计算所述预测mock数据特征和所述标准mock数据 特征之间的差异值
Figure BDA0002880262070000101
Figure BDA0002880262070000102
其中,
Figure BDA0002880262070000103
为所述预测mock数据特征,Y为所述标准mock数据特征,α为 预设常数,N为所述预测mock数据特征的个数。
详细地,对待测试数据集进行特征提取,得到测试数据特征集的步骤与 对mock数据进行特征提取,得到mock数据的mock数据特征的步骤一致, 在此不做赘述。
进一步地,所述计算所述mock数据特征与所述测试数据特征集中各测试 特征的距离值,包括:
利用如下距离值算法计算所述mock数据特征与所述测试数据特征集中 各测试特征的距离值:
Figure BDA0002880262070000104
其中,L(X,Y)为所述距离值,X为所述mock数据特征,Yi为所述测试 数据特征集中第i个测试数据特征。
本发明实施例中,所述距离值用于表示待测试数据集中各待测试数据与 mock数据是否匹配,若所述距离值大于或等于预设的距离阈值,则说明待测 试数据与mock数据不匹配,无法用mock数据对所述待测试数据进行测试, 若所述距离值小于预设的距离阈值,则说明待测试数据与mock数据匹配,科 员用mock数据对所述待测试数据进行测试,因此通过距离值计算来确定待测 试数据集中可以被所述mock进行测试的待测试数据有哪些,选取距离值小于 预设距离阈值的测试特征对应的待测试数据为目标数据。
进一步地,所述利用所述mock数据对所述目标数据进行测试,得到所述 待测试数据集的测试结果,包括:
将所述目标数据编译为测试用例;
执行所述测试用例对所述mock数据进行调用测试,得到返回结果;
若所述返回结果为空值,则生成所述待测试数据集的逻辑错误的测试结 果;
若所述返回结果不为空值,则生成所述待测试数据集的逻辑正确的测试 结果。
本发明实施例中,可利用编译器将所述目标数据编译为测试用例,所述 测试用例包括用于数据测试的计算机逻辑语句,执行编译完成的测试用例对 所述mock数据进行调用测试,若mock数据返回不为空值的返回结果,则确 定测试结果为逻辑正确,若mock数据返回为空值的返回结果,则确定测试结 果为逻辑错误。
本发明实施例通过对用户请求中目标变量字段的判断,可实现从大量用 户请求中需要进行数据测试的录制类请求,避免对所有用户请求进行分析, 提高了数据测试的效率;提取录制类请求中的请求消息头,并通过判断录制 类请求是否经过转发获取该录制类请求的源ip地址,进而生成待执行录制请 求对mock平台进行录制得到mock数据,实现了基于ip地址精准的对mock 平台中的数据进行录制,避免了由于录制类请求的转发导致需要再次对录制 类请求进行分析来获取mock数据,有利于提高数据测试的效率;获取待测试数据集,利用mock数据对所述待测试数据集中的数据进行测试,实现了利用 mock数据直接对待测试数据集中的数据进行测试,有利于提高数据测试的效 率。因此本发明提出的基于ip的mock数据测试方法,可以解决使用mock工 具进行数据测试的效率不高的问题。
如图2所示,是本发明一实施例提供的基于ip的mock数据测试装置的 功能模块图。
本发明所述基于ip的mock数据测试装置100可以安装于电子设备中。 根据实现的功能,所述基于ip的mock数据测试装置100可以包括字段提取 模块101、类型判断模块102、转发判断模块103、第一请求生成模块104、 第二请求生成模块105、数据录制模块106和数据测试模块107。本发明所述 模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够 完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述字段提取模块101,用于获取用户请求,提取所述用户请求中的目标 变量字段;
所述类型判断模块102,用于当所述目标变量字段与预设的录制变量字段 一致时,确定所述用户请求为录制类请求;
所述转发判断模块103,用于提取所述录制类请求中的请求消息头,解析 并获取所述请求消息头中的ip字段,根据所述ip字段判断所述录制类请求是 否经过转发;
所述第一请求生成模块104,用于当所述录制类请求未经过转发,将所述 ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
所述第二请求生成模块105,用于当所述录制类请求经过转发,追踪所述 录制类请求的源ip字段,将所述源ip字段作为所述目标变量字段的字段值, 得到待执行录制请求;
所述数据录制模块106,用于调用预先构建的mock平台,利用所述待执 行录制请求对所述mock平台进行mock录制,得到mock数据;
所述数据测试模块107,用于获取待测试数据集,利用所述mock数据对 所述待测试数据集中的数据进行测试,得到所述待测试数据集的测试结果。
详细地,所述基于ip的mock数据测试装置中的各模块在被电子设备的 处理器执行时,能够实现一种包括如下操作步骤的基于ip的mock数据测试 方法:
所述字段提取模块101,用于获取用户请求,提取所述用户请求中的目标 变量字段。
本发明实施例中,所述用户请求为任何系统中用户发起的请求命令,例 如,数据管理系统中用户发起的调用数据的请求命令。
详细地,本发明实施例使用ASM增强字节码过滤器拦截获取网络中的用 户请求,所述ASM增强字节码过滤器是一款基于java字节码层面的代码分析 工具,利用ASM增强字节码过滤器对用户请求进行拦截,可提高用户请求拦 截的成功率。
进一步地,所述字段提取模块101具体用于:
遍历并确定所述用户请求中字段分隔符的位置;
根据所述字段分隔符的位置对所述用户请求进行字段拆分,得到多个拆 分字段;
按照拆分顺序将所述多个拆分字段进行序号标注;
选取预设序号的拆分字段为所述目标变量字段。
例如,用户请求为“qwe<rt<yuio<pl”,其中,<为字段分隔符,则按照用 户请求中字段分隔符的位置将用户请求进行字段拆分为:“qwe”、“rt”、“yuio” 和“pl”四个拆分字段,并按照拆分顺序将多个拆分字段进行序号标注为: 1“qwe”、2“rt”、3“yuio”和4“pl”,例如,预设序号为2,则确定字段“rt”为目标 变量字段。
所述类型判断模块102,用于当所述目标变量字段与预设的录制变量字段 一致时,确定所述用户请求为录制类请求。
本发明实施例中,所述录制变量字段是需要进行mock录制的录制类请求 中特有的变量字段。
详细地,所述类型判断模块102将获取的所述目标变量字段与预设的录 制变量字段进行对比,若目标变量字段与预设的录制变量字段一致时,则确 定用户请求为录制类请求,若目标变量字段与预设的录制变量字段不一致时, 则确定用户请求为非录制类请求。
所述转发判断模块103,用于提取所述录制类请求中的请求消息头,解析 并获取所述请求消息头中的ip字段,根据所述ip字段判断所述录制类请求是 否经过转发。
本发明实施例中,可利用java中的反射技术提取所述录制类请求中的请 求消息头,所述反射技术是java中根据字符串获取数据类的方法,利用反射 技术提取录制类请求中的请求消息头,可提高获取请求消息头的效率。
详细地,所述转发判断模块103具体用于:
遍历并确定所述录制类请求中的请求头数据类;
对所述请求头数据类进行反射操作,得到请求头方法;
根据所述请求头方法构建请求头提取语句;
执行所述请求头提取语句提取所述录制类请求中的请求消息头;
解析并获取所述请求消息头中的ip字段;
将所述ip字段进行逻辑测试,得到逻辑测试值;
当所述逻辑测试值与预设逻辑阈值相同时,确定所述录制类请求经过转 发;
当所述逻辑测试值与预设逻辑阈值不同时,确定所述录制类请求未经过 转发。
具体地,所述对所述请求头数据类进行反射操作,得到请求头方法,例 如,利用如下java语句对所述请求头数据类进行反射操作:
String name="Hualing";Class c1=name.getClass();System.out.println(c1.ge tName())。
其中,"Hualing"为所述请求头数据类。
当对所述请求头数据类进行反射操作后,即可得到请求头方法。具体地, 根据所述请求头方法构建请求头提取语句的具体方法包括:构建如下请求头 提取语句:Stringname=field.getName()。
进一步地,本发明实施例中可利用解析器解析所述请求得到所述请求消 息头中的ip字段,所述解析器包括CarakanC/C++,SquirrelFishC++和 SquirrelFishExtremeC++等。
详细地,由于录制类请求在被拦截之前可能经历过多个计算机的转发, 进而导致请求中的ip地址发生了改变,本发明实施例根据ip字段判断录制类 请求是否经过转发,有利于后续针对性的作出不同的操作,以提高mock录制 的成功率。
所述第一请求生成模块104,用于当所述录制类请求未经过转发,将所述 ip字段作为所述目标变量字段的字段值,得到待执行录制请求。
本发明实施例中,当所述录制类请求未经过转发,则直接将所述ip字段 作为所述目标变量字段的字段值,即利用所述ip字段对所述目标变量字段进 行赋值,得到待执行录制请求。
所述第二请求生成模块105,用于当所述录制类请求经过转发,追踪所述 录制类请求的源ip字段,将所述源ip字段作为所述目标变量字段的字段值, 得到待执行录制请求。
本发明实施例中,所述第二请求生成模块105具体用于:
提取所述用户请求中的转发路径参数;
对所述转发路径参数进行反解析,得到转发路径;
根据所述转发路径确定所述用户请求的源发地址;
从所述源发地址中提取所述源ip字段。
详细地,本发明实施例中,可利用具有参数抓取功能的python语句从所 述用户请求中提取出所述转发路径参数,所述转发路径参数是用户请求在被 转发的过程中计算机生成并标记于用户请求内的特定字段。
具体地,对转发路径参数进行反解析,得到转发路径,其中,反解析是 解析的逆过程,按照解析器对用户请求进行解析的反过程执行,即可实现对 转发路径参数进行反解析,得到所述转发路径。
进一步地,本发明实施例根据转发路径确定用户请求的源发地址,即确 定转发路径最前端的网络地址为源发地址,例如,转发路径为 www.xxxx/yyyy/uuuu/iiii.com,则确定转发路径最前端的网络地址(xxxx)为 源发地址。
具体地,从所述源发地址中提取所述源ip字段的步骤与步骤S3中提取ip 字段的步骤一致,在此不做赘述。
详细地,本发明实施例将追踪到的用户请求的源ip字段作为所述目标变 量字段的字段值,即利用所述源ip字段对所述目标变量字段进行赋值,得到 待执行录制请求。
所述数据录制模块106,用于调用预先构建的mock平台,利用所述待执 行录制请求对所述mock平台进行mock录制,得到mock数据。
本发明实施例中,所述预先构建的mock平台为包含需要进行数据测试的 数据的平台。
详细地,所述数据录制模块106具体用于:
获取所述mock平台的配置文件;
根据所述配置文件编译所述mock平台的接口调用语句;
利用所述接口调用语句调用所述mock平台;
获取所述mock平台的平台参数;
当所述待执行录制请求为http请求时,将所述平台参数作为请求体写入 所述待执行录制请求的第一请求方法,生成录制指令;
当所述待执行录制请求为ESA请求时,将所述平台参数作为请求体写入 所述待执行录制请求的第二请求方法,生成录制指令;
执行生成的录制指令对所述mock平台进行mock录制。
本发明实施例中,可利用具有数据抓取功能的java语句从mock平台的后 台数据中抓取mock平台的配置文件。
进一步地,本发明实施例通过现有aper-mock.properties方法根据所述配 置文件编译所述mock平台的接口调用语句,示例如下:
#AperMock;aperMock.log.show=true;
#AperMock连接模式:local本地读取,database数据库方式,http网络 连接获取;aperMock.connect.mode=database;
#AperMock连接的数据库mode为database,支持mysql、oracle、mongo;aperMock.connect.database=mysql;
……。
本发明实施例中,所述利用所述待执行录制请求对所述mock平台进行 mock录制之前,所述方法还包括根据所述待执行录制请求中的目标变量字段 的字段值判断所述待执行录制请求的类型,例如,当目标变量字段的字段值 与预先存储的第一字段值相同时,确定所述待执行录制请求的类型为http请 求,当目标变量字段的字段值与预先存储的第二字段值相同时,确定所述待 执行录制请求的类型为ESA请求。
本发明实施例中,对于HTTP请求,以增加字节码方式将所述平台参数 作为请求体写入所述待执行录制请求的第一请求方法(如 CloseableHttpResponse execute(finalHttpUriRequest request)方法)生成录制指 令;对于ESA请求,以增加字节码方式将所述平台参数作为请求体写入所述 待执行录制请求的第二请求方法(如ServiceResponse_perform(ServiceRequest sr)方法)生成录制指令。
所述数据测试模块107,用于获取待测试数据集,利用所述mock数据对 所述待测试数据集中的数据进行测试,得到所述待测试数据集的测试结果。
本发明实施例中,可利用具有数据抓取功能的python语句从预先构建的 区块链节点中获取用户上传的待测试数据集,利用区块链对数据的高吞吐性, 可提高获取所述待测试数据集的效率,所述待测试数据集中存在着多个待测 试数据。
详细地,所述数据测试模块107具体用于:
获取待测试数据集;
对所述mock数据进行特征提取,得到mock数据的mock数据特征;
对所述待测试数据集进行特征提取,得到测试数据特征集,其中,所述 测试数数据特征集包括所述待测试数据集中各待测试数据的测试特征;
计算所述mock数据特征与所述测试数据特征集中各测试特征的距离值, 选取所述距离值小于预设距离阈值的测试特征对应的待测试数据为目标数据;
利用所述mock数据对所述目标数据进行测试,得到所述待测试数据集的 测试结果。
具体地,所述对所述mock数据进行特征提取,得到mock数据的mock 数据特征,包括:
获取训练mock数据以及所述训练mock数据对应的标准mock数据特征;
利用预设的特征提取模型对所述训练mock数据进行特征提取,得到预测 mock数据特征;
计算所述预测mock数据特征和所述标准mock数据特征之间的差异值;
若所述差异值大于误差阈值,则调整所述特征提取模型的参数后重新进 行特征提取;
若所述差异值小于所述误差阈值,则生成训练完成的特征提取模型;
利用训练完成的特征提取模型对所述mock数据进行特征提取,得到mock 数据特征。
较佳地,所述计算所述预测mock数据特征和所述标准mock数据特征之 间的差异值,包括:
利用如下差异值算法计算所述预测mock数据特征和所述标准mock数据 特征之间的差异值
Figure BDA0002880262070000181
Figure BDA0002880262070000182
其中,
Figure BDA0002880262070000183
为所述预测mock数据特征,Y为所述标准mock数据特征,α为 预设常数,N为所述预测mock数据特征的个数。
详细地,对待测试数据集进行特征提取,得到测试数据特征集的步骤与 对mock数据进行特征提取,得到mock数据的mock数据特征的步骤一致, 在此不做赘述。
进一步地,所述计算所述mock数据特征与所述测试数据特征集中各测试 特征的距离值,包括:
利用如下距离值算法计算所述mock数据特征与所述测试数据特征集中 各测试特征的距离值:
Figure BDA0002880262070000184
其中,L(X,Y)为所述距离值,X为所述mock数据特征,Yi为所述测试 数据特征集中第i个测试数据特征。
本发明实施例中,所述距离值用于表示待测试数据集中各待测试数据与 mock数据是否匹配,若所述距离值大于或等于预设的距离阈值,则说明待测 试数据与mock数据不匹配,无法用mock数据对所述待测试数据进行测试, 若所述距离值小于预设的距离阈值,则说明待测试数据与mock数据匹配,科 员用mock数据对所述待测试数据进行测试,因此通过距离值计算来确定待测 试数据集中可以被所述mock进行测试的待测试数据有哪些,选取距离值小于 预设距离阈值的测试特征对应的待测试数据为目标数据。
进一步地,所述利用所述mock数据对所述目标数据进行测试,得到所述 待测试数据集的测试结果,包括:
将所述目标数据编译为测试用例;
执行所述测试用例对所述mock数据进行调用测试,得到返回结果;
若所述返回结果为空值,则生成所述待测试数据集的逻辑错误的测试结 果;
若所述返回结果不为空值,则生成所述待测试数据集的逻辑正确的测试 结果。
本发明实施例中,可利用编译器将所述目标数据编译为测试用例,所述 测试用例包括用于数据测试的计算机逻辑语句,执行编译完成的测试用例对 所述mock数据进行调用测试,若mock数据返回不为空值的返回结果,则确 定测试结果为逻辑正确,若mock数据返回为空值的返回结果,则确定测试结 果为逻辑错误。
本发明实施例通过对用户请求中目标变量字段的判断,可实现从大量用 户请求中需要进行数据测试的录制类请求,避免对所有用户请求进行分析, 提高了数据测试的效率;提取录制类请求中的请求消息头,并通过判断录制 类请求是否经过转发获取该录制类请求的源ip地址,进而生成待执行录制请 求对mock平台进行录制得到mock数据,实现了基于ip地址精准的对mock 平台中的数据进行录制,避免了由于录制类请求的转发导致需要再次对录制 类请求进行分析来获取mock数据,有利于提高数据测试的效率;获取待测试数据集,利用mock数据对所述待测试数据集中的数据进行测试,实现了利用 mock数据直接对待测试数据集中的数据进行测试,有利于提高数据测试的效 率。因此本发明提出的基于ip的mock数据测试装置,可以解决使用mock工 具进行数据测试的效率不高的问题。
如图3所示,是本发明一实施例提供的实现基于ip的mock数据测试方 法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储 在所述存储器11中并可在所述处理器10上运行的计算机程序,如基于ip的 mock数据测试程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储 介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器 等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电 子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在 另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配 备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储 器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于 ip的mock数据测试程序12的代码等,还可以用于暂时地存储已经输出或者 将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封 装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路 所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处 理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10 是所述电子设备的控制核心(Control Unit),利用各种接口和线路连接整个电 子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块 (例如基于ip的mock数据测试程序等),以及调用存储在所述存储器11内 的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheral component interconnect, 简称PCI)总线或扩展工业标准结构(extended industry standard architecture, 简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所 述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通 信。
图3仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图3 示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更 多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源 (比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10 逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理 等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、 电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。 所述电子设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再 赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接 口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于 在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器 (Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是 标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED 显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏 或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用 户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构 的限制。
所述电子设备1中的所述存储器11存储的基于ip的mock数据测试程序 12是多个指令的组合,在所述处理器10中运行时,可以实现:
获取用户请求,提取所述用户请求中的目标变量字段;
当所述目标变量字段与预设的录制变量字段一致时,确定所述用户请求 为录制类请求;
提取所述录制类请求中的请求消息头,解析并获取所述请求消息头中的 ip字段,根据所述ip字段判断所述录制类请求是否经过转发;
当所述录制类请求未经过转发,将所述ip字段作为所述目标变量字段的 字段值,得到待执行录制请求;
当所述录制类请求经过转发,追踪所述录制类请求的源ip字段,将所述 源ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
调用预先构建的mock平台,利用所述待执行录制请求对所述mock平台 进行mock录制,得到mock数据;
获取待测试数据集,利用所述mock数据对所述待测试数据集中的数据进 行测试,得到所述待测试数据集的测试结果。
具体地,所述处理器10对上述指令的具体实现方法可参考图1至图3对 应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式 实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质 中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如, 所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或 装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储 器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算 机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
获取用户请求,提取所述用户请求中的目标变量字段;
当所述目标变量字段与预设的录制变量字段一致时,确定所述用户请求 为录制类请求;
提取所述录制类请求中的请求消息头,解析并获取所述请求消息头中的 ip字段,根据所述ip字段判断所述录制类请求是否经过转发;
当所述录制类请求未经过转发,将所述ip字段作为所述目标变量字段的 字段值,得到待执行录制请求;
当所述录制类请求经过转发,追踪所述录制类请求的源ip字段,将所述 源ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
调用预先构建的mock平台,利用所述待执行录制请求对所述mock平台 进行mock录制,得到mock数据;
获取待测试数据集,利用所述mock数据对所述待测试数据集中的数据进 行测试,得到所述待测试数据集的测试结果。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和 方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示 意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可 以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作 为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或 者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单 元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件 功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节, 而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实 现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限 制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落 在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将 权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算 法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心 化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中 包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个 区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权 利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件 来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制, 尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当 理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术 方案的精神和范围。

Claims (10)

1.一种基于ip的mock数据测试方法,其特征在于,所述方法包括:
获取用户请求,提取所述用户请求中的目标变量字段;
当所述目标变量字段与预设的录制变量字段一致时,确定所述用户请求为录制类请求;
提取所述录制类请求中的请求消息头,解析并获取所述请求消息头中的ip字段,根据所述ip字段判断所述录制类请求是否经过转发;
当所述录制类请求未经过转发,将所述ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
当所述录制类请求经过转发,追踪所述录制类请求的源ip字段,将所述源ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
调用预先构建的mock平台,利用所述待执行录制请求对所述mock平台进行mock录制,得到mock数据;
获取待测试数据集,利用所述mock数据对所述待测试数据集中的数据进行测试,得到所述待测试数据集的测试结果。
2.如权利要求1所述的基于ip的mock数据测试方法,其特征在于,所述提取所述用户请求中的目标变量字段,包括:
遍历并确定所述用户请求中字段分隔符的位置;
根据所述字段分隔符的位置对所述用户请求进行字段拆分,得到多个拆分字段;
按照拆分顺序将所述多个拆分字段进行序号标注;
选取预设序号的拆分字段为所述目标变量字段。
3.如权利要求1所述的基于ip的mock数据测试方法,其特征在于,所述所述提取所述录制类请求中的请求消息头,包括:
遍历并确定所述录制类请求中的请求头数据类;
对所述请求头数据类进行反射操作,得到请求头方法;
根据所述请求头方法构建请求头提取语句;
执行所述请求头提取语句提取所述录制类请求中的请求消息头。
4.如权利要求1所述的基于ip的mock数据测试方法,其特征在于,所述根据所述ip字段判断所述录制类请求是否经过转发,包括:
将所述ip字段进行逻辑测试,得到逻辑测试值;
当所述逻辑测试值与预设逻辑阈值相同时,确定所述录制类请求经过转发;
当所述逻辑测试值与预设逻辑阈值不同时,确定所述录制类请求未经过转发。
5.如权利要求1至4中任一项所述的基于ip的mock数据测试方法,其特征在于,所述追踪所述录制类请求的源ip字段,包括:
提取所述用户请求中的转发路径参数;
对所述转发路径参数进行反解析,得到转发路径;
根据所述转发路径确定所述用户请求的源发地址;
从所述源发地址中提取所述源ip字段。
6.如权利要求1至4中任一项所述的基于ip的mock数据测试方法,其特征在于,所述利用所述mock数据对所述待测试数据集中的数据进行测试,得到所述待测试数据集的测试结果,包括:
对所述mock数据进行特征提取,得到mock数据特征;
对所述待测试数据集进行特征提取,得到测试数据特征集,其中,所述测试数数据特征集包括所述待测试数据集中各待测试数据的测试特征;
计算所述mock数据特征与所述测试数据特征集中各测试特征的距离值,选取所述距离值小于预设距离阈值的测试特征对应的待测试数据为目标数据;
利用所述mock数据对所述目标数据进行测试,得到所述待测试数据集的测试结果。
7.如权利要求6所述的基于ip的mock数据测试方法,其特征在于,所述利用所述mock数据对所述目标数据进行测试,得到所述待测试数据集的测试结果,包括:
将所述目标数据编译为测试用例;
执行所述测试用例对所述mock数据进行调用测试,得到返回结果;
若所述返回结果为空值,则生成所述待测试数据集的逻辑错误的测试结果;
若所述返回结果不为空值,则生成所述待测试数据集的逻辑正确的测试结果。
8.一种基于ip的mock数据测试装置,其特征在于,所述装置包括:
字段提取模块,用于获取用户请求,提取所述用户请求中的目标变量字段;
类型判断模块,用于当所述目标变量字段与预设的录制变量字段一致时,确定所述用户请求为录制类请求;
转发判断模块,用于提取所述录制类请求中的请求消息头,解析并获取所述请求消息头中的ip字段,根据所述ip字段判断所述录制类请求是否经过转发;
第一请求生成模块,用于当所述录制类请求未经过转发,将所述ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
第二请求生成模块,用于当所述录制类请求经过转发,追踪所述录制类请求的源ip字段,将所述源ip字段作为所述目标变量字段的字段值,得到待执行录制请求;
数据录制模块,用于调用预先构建的mock平台,利用所述待执行录制请求对所述mock平台进行mock录制,得到mock数据;
数据测试模块,用于获取待测试数据集,利用所述mock数据对所述待测试数据集中的数据进行测试,得到所述待测试数据集的测试结果。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的基于ip的mock数据测试方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的基于ip的mock数据测试方法。
CN202011640503.7A 2020-12-31 2020-12-31 基于ip的mock数据测试方法、装置、电子设备及存储介质 Active CN112732567B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011640503.7A CN112732567B (zh) 2020-12-31 2020-12-31 基于ip的mock数据测试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011640503.7A CN112732567B (zh) 2020-12-31 2020-12-31 基于ip的mock数据测试方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112732567A true CN112732567A (zh) 2021-04-30
CN112732567B CN112732567B (zh) 2023-06-27

Family

ID=75609084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011640503.7A Active CN112732567B (zh) 2020-12-31 2020-12-31 基于ip的mock数据测试方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112732567B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434413A (zh) * 2021-06-28 2021-09-24 平安银行股份有限公司 基于数据差异的数据测试方法、装置、设备及存储介质
CN113472883A (zh) * 2021-06-30 2021-10-01 平安国际智慧城市科技股份有限公司 基于区块链存储数据的方法、装置、设备及存储介质
CN113573080A (zh) * 2021-06-28 2021-10-29 北京百度网讯科技有限公司 直播的录制方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153563A1 (en) * 2008-12-12 2010-06-17 Bernard Ku Method and apparatus for completing a circuit switched service call in an internet protocol network
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
CN105991961A (zh) * 2015-02-02 2016-10-05 南宁富桂精密工业有限公司 视频会议录制系统及其方法
CN106776313A (zh) * 2016-12-13 2017-05-31 广州唯品会信息科技有限公司 一种模拟服务的方法、装置及集中管理平台
CN107368405A (zh) * 2016-05-11 2017-11-21 腾讯科技(北京)有限公司 测试系统、测试方法、mock平台、拦截器和客户端
CN111427766A (zh) * 2020-02-20 2020-07-17 北京齐尔布莱特科技有限公司 一种请求处理方法、装置和代理服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100153563A1 (en) * 2008-12-12 2010-06-17 Bernard Ku Method and apparatus for completing a circuit switched service call in an internet protocol network
CN105335281A (zh) * 2014-07-30 2016-02-17 阿里巴巴集团控股有限公司 一种自动mock外部依赖的方法及装置
CN105991961A (zh) * 2015-02-02 2016-10-05 南宁富桂精密工业有限公司 视频会议录制系统及其方法
CN107368405A (zh) * 2016-05-11 2017-11-21 腾讯科技(北京)有限公司 测试系统、测试方法、mock平台、拦截器和客户端
CN106776313A (zh) * 2016-12-13 2017-05-31 广州唯品会信息科技有限公司 一种模拟服务的方法、装置及集中管理平台
CN111427766A (zh) * 2020-02-20 2020-07-17 北京齐尔布莱特科技有限公司 一种请求处理方法、装置和代理服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李志峥: "WAE性能测试及其自动化测试的研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》, no. 11, pages 138 - 316 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434413A (zh) * 2021-06-28 2021-09-24 平安银行股份有限公司 基于数据差异的数据测试方法、装置、设备及存储介质
CN113573080A (zh) * 2021-06-28 2021-10-29 北京百度网讯科技有限公司 直播的录制方法、装置、电子设备及存储介质
CN113434413B (zh) * 2021-06-28 2023-06-06 平安银行股份有限公司 基于数据差异的数据测试方法、装置、设备及存储介质
CN113573080B (zh) * 2021-06-28 2023-09-29 北京百度网讯科技有限公司 直播的录制方法、装置、电子设备及存储介质
CN113472883A (zh) * 2021-06-30 2021-10-01 平安国际智慧城市科技股份有限公司 基于区块链存储数据的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112732567B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN112732567B (zh) 基于ip的mock数据测试方法、装置、电子设备及存储介质
CN113961473A (zh) 数据测试方法、装置、电子设备及计算机可读存储介质
CN113282854A (zh) 数据请求响应方法、装置、电子设备及存储介质
CN113806434A (zh) 大数据处理方法、装置、设备及介质
CN112506910A (zh) 多源数据采集方法、装置、电子设备及存储介质
CN112702228A (zh) 服务限流响应方法、装置、电子设备及可读存储介质
CN114880238A (zh) 移动端界面测试方法、装置、设备及存储介质
CN111831708A (zh) 基于缺失数据的样本分析方法、装置、电子设备及介质
CN115129753A (zh) 数据血缘关系分析方法、装置、电子设备及存储介质
CN113434542B (zh) 数据关系识别方法、装置、电子设备及存储介质
CN112541688B (zh) 业务数据校验方法、装置、电子设备及计算机存储介质
CN113051224A (zh) 文件传输方法、装置、电子设备及计算机可读存储介质
CN112631903A (zh) 任务测试方法、装置、电子设备及存储介质
CN115033489A (zh) 代码资源检测方法、装置、电子设备及存储介质
CN113051171A (zh) 接口测试方法、装置、设备及存储介质
CN114398282A (zh) 测试脚本的生成方法、装置、设备及存储介质
CN111859985A (zh) Ai客服模型测试方法、装置、电子设备及存储介质
CN111400190A (zh) 自动化测试流程生成方法、装置及计算机可读存储介质
CN112596717B (zh) 多数据打包方法、装置、电子设备及计算机可读存储介质
CN107609008A (zh) 一种基于Apache Sqoop的从关系型数据库到Kafka的数据导入装置及方法
CN116610572A (zh) 对象测试方法、装置、电子设备及存储介质
CN114416575A (zh) Mock数据生成方法、装置、设备及存储介质
CN114519004A (zh) 应用软件的稳定性测试方法、装置、设备及介质
CN113434414A (zh) 数据测试方法、装置、电子设备及存储介质
CN113448788A (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
GR01 Patent grant
GR01 Patent grant