CN116049010A - 接口测试方法、装置、电子设备及存储介质 - Google Patents

接口测试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116049010A
CN116049010A CN202310151663.2A CN202310151663A CN116049010A CN 116049010 A CN116049010 A CN 116049010A CN 202310151663 A CN202310151663 A CN 202310151663A CN 116049010 A CN116049010 A CN 116049010A
Authority
CN
China
Prior art keywords
request data
test
interface
tested
preset
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
Application number
CN202310151663.2A
Other languages
English (en)
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 Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202310151663.2A priority Critical patent/CN116049010A/zh
Publication of CN116049010A publication Critical patent/CN116049010A/zh
Pending legal-status Critical Current

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/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • 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
    • 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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提出一种接口测试方法、装置、电子设备及存储介质,接口测试方法包括:依据预设的实验需求配置测试文件以记载测试参数;依据测试参数从预设的用户数据库中筛选参与待测实验的目标用户,依据目标用户的属性数据构建第一请求数据,并对第一请求数据加密获得第二请求数据;依据测试参数标记第一请求数据以生成预期分流结果;对第二请求数据进行解密获得第三请求数据,并将第三请求数据输入分流接口以生成接口分流结果;对比预期分流结果与接口分流结果以获得测试结果。该方法可以依据预设实验需求设置测试参数,并通过测试参数构建分流所需的请求数据,从而实现自动化的接口测试,能够提升分流接口的测试效率。

Description

接口测试方法、装置、电子设备及存储介质
技术领域
本申请涉及接口测试技术领域,尤其涉及一种接口测试方法、装置、电子设备及存储介质。
背景技术
随着互联网和计算机科学的发展,各行各业倾向于利用互联网传播软体产品以向用户提供便捷的服务。目前,AB实验被广泛应用于产品的迭代更新过程中,并已成为一项实现业务增长与辅助企业决策的重要工具。AB实验用于验证目标产品不同版本或不同方案的优劣,在同一时间维度内,对目标用户群体进行分流,并向分流之后的用户群体推送不同版本的产品,统计用户在使用产品的过程中产生的业务数据以评估出最优版本的产品。
目前,测试人员为验证参与AB实验的用户分流是否达到预期效果,通常需要手动构造大量不同的用户请求数据,并人工检查用户分流的结果以评估分流效果,这种方式工作量巨大,对于分流功能的测试效率较低。
发明内容
鉴于以上内容,有必要提供一种接口测试方法、装置、电子设备及存储介质,以提高分流接口测试的效率。
第一方面,本申请实施例提供一种接口测试方法,所述方法包括:
依据预设的实验需求配置测试文件,所述实验需求指对分流接口的性能进行测试的需求,所述测试文件用于记载测试参数;
依据所述测试参数从预设的用户数据库中筛选参与待测实验的目标用户,依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据;
依据所述测试参数标记所述第一请求数据以生成预期分流结果;
对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果;
对比所述预期分流结果与所述接口分流结果以获得测试结果。
在一些实施例中,所述依据预设的实验需求配置测试文件,包括:
依据预设的分词工具对所述预设的实验需求进行分词,获得多个实验词汇;
将所述多个实验词汇输入预设的语义分类模型以获得每个所述实验词汇的类别,所述类别至少包括待测实验、请求数量、属性名称、属性取值、分流比例;
将类别为待测实验的词汇作为待测实验的名称,并依据所述待测实验的名称查询所述待测实验的地址;
将类别为请求数量、属性名称、属性取值、分流比例的所述实验词汇作为测试参数,并将所述测试参数与所述待测实验的地址以预设的统一格式联合存储为测试文件。
在一些实施例中,所述依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据,包括:
依据所述目标用户的属性数据构建请求报文;
依据预设的通信协议封装所述请求报文以获得第一请求数据,所述第一请求数据与所述目标用户一一对应;
依据预设的第一秘钥对所述第一请求数据进行加密获得第二请求数据。
在一些实施例中,所述依据预设的通信协议封装所述请求报文以获得第一请求数据,包括:
查询预设的通信协议对应的请求头;
将所述请求头置于前,并将所述请求报文置于后,组合所述请求头和所述请求报文以获得第一请求数据;
依据预设的哈希算法计算所述第一请求数据的第一校验值。
在一些实施例中,所述测试参数还用于记载所述待测实验的实验条件,所述依据所述测试参数标记所述第一请求数据以生成预期分流结果,包括:
从所述测试参数中查询所述待测实验的实验条件,所述实验条件用于表征参与所述待测实验的目标用户需要满足的条件;
针对每个所述待测实验,若所述第一请求数据满足所述待测实验对应的实验条件,则将所述待测实验的名称作为所述第一请求数据的第一标记;
将所述第一请求数据与所述第一标记作为预期分流结果。
在一些实施例中,所述对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果,包括:
依据预设的第二秘钥对所述第二请求数据进行解密获得第三请求数据;
依据所述预设的哈希算法计算所述第三请求数据对应的第二校验值;
若所述第二校验值与所述第一校验值不一致,则发送异常数据告警;
若所述第二校验值与所述第一校验值一致,则将所述第三请求数据输入所述分流接口以获得第二标记,将所述第三请求数据与所述第二标记作为接口分流结果,所述第二标记用于表征所述第三请求数据对应的待测实验的名称。
在一些实施例中,所述对比所述预期分流结果与所述接口分流结果以获得测试结果,包括:
解析所述预期分流结果获得所述第一请求数据与所述第一标记的第一映射关系,同时解析所述接口分流结果获得所述第三请求数据与所述第二标记的第二映射关系;
若所述第一映射关系与所述第二映射关系相同,则所述测试结果为通过;
若所述第一映射关系与所述第二映射关系不同,则所述测试结果为不通过。
在一些实施例中,当所述测试结果为通过时,所述接口测试方法还包括:
计算所述分流接口的响应时长;
查询所述分流接口在所述响应时长内的性能指标,所述性能指标至少包括数据并发量、数据吞吐量和资源占用率;
依据所述性能指标配置测试报告,将所述测试报告推送至测试评估方以完成分流测试。
第二方面,本申请实施例还提供一种接口测试装置,所述装置包括:
配置单元,用于依据预设的实验需求配置测试文件,所述实验需求指对分流接口的性能进行测试的需求,所述测试文件用于记载测试参数;
数据构造单元,用于依据所述测试参数从预设的用户数据库中筛选参与待测实验的目标用户,依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据;
信息获取单元,用于依据所述测试参数标记所述第一请求数据以生成预期分流结果;
分流单元,用于对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果;
对比单元,用于对比所述预期分流结果与所述接口分流结果以获得测试结果。
第三方面,本申请实施例还提供一种电子设备,所述电子设备包括:
存储器,存储计算机可读指令;及
处理器,执行所述存储器中存储的计算机可读指令以实现所述接口测试方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现所述接口测试方法。
上述接口测试方法通过解析预设的实验需求获得测试参数,利用测试参数构建请求数据,并依据测试参数标记请求数据以获得预期分流结果,还利用分流接口处理请求数据以获得接口分流结果,最终通过直接对比预期分流结果和接口分流结果以获得测试结果,从而能够提升接口测试的效率。
附图说明
图1是本申请所涉及的一种接口测试方法的较佳实施例的流程图。
图2是本申请所涉及的接口测试装置的较佳实施例的功能模块图。
图3是本申请所涉及的接口测试方法的较佳实施例的电子设备的结构示意图。
图4a是本申请实施例提供的TCP通信协议对应的请求数据的结构示意图。
图4b是本申请实施例提供的UDP通信协议对应的请求数据的结构示意图。
图5a是本申请实施例所提供的第一映射关系的结构示意图。
图5b是本申请实施例所提供的第二映射关系的结构示意图。
具体实施方式
为了能够更清楚地理解本申请的目的、特征和优点,下面结合附图和具体实施例对本申请进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互结合。在下面的描述中阐述了很多具体细节以便于充分理解本申请,所述描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本申请实施例提供一种接口测试方法,可应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
如图1所示,是本申请接口测试方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S10,依据预设的实验需求配置测试文件,所述实验需求指对分流接口的性能进行测试的需求,所述测试文件用于记载测试参数。
该可选的实施例中,所述预设的实验需求指对预设的分流接口的性能进行测试的需求,所述预设的分流接口用于对参与预设的待测实验的用户进行分流,所述测试文件还用于记载所述预设的待测实验的地址和所述预设的分流接口的地址。
其中,所述分流接口指具备数据分流功能的至少一组程序,所述待测实验指满足所述预设的实验需求的多组程序,示例性的,所述待测实验可以是企业为了提升电商交易平台的稳定性而发布的多个版本的电商交易程序,还可以是企业为了提升线上金融平台的易用程度而发布的多个版本的线上金融APP,还可以是企业为了提升门户网站的可靠性而发布的多个版本的门户网站页面,本申请对所述待测实验的内容不做限定。
示例性的,当所述实验需求为“测试所述分流接口对使用不同版本的电商交易程序的用户进行分流时的性能”,则所述待测实验为所述多个版本的电商交易程序;当所述实验需求为“测试所述分流接口对使用不同版本的线上金融APP的用户进行分流时的性能”,则所述待测实验为所述多个版本的线上金融APP。
在一个可选的实施例中,所述依据预设的实验需求配置测试文件,包括:
依据预设的分词工具对所述预设的实验需求进行分词,获得多个实验词汇;
将所述多个实验词汇输入预设的语义分类模型以获得每个所述实验词汇的类别,所述类别至少包括待测实验、请求数量、属性名称、属性取值、分流比例;
将类别为待测实验的词汇作为待测实验的名称,并依据所述待测实验的名称查询所述待测实验的地址;
将类别为请求数量、属性名称、属性取值、分流比例的所述实验词汇作为测试参数,并将所述测试参数与所述待测实验的地址以预设的统一格式联合存储为配置文件。
该可选的实施例中,所述预设的分词工具可以是Jieba工具、HanNLP工具、SnowNLP工具等现有的分词工具,本申请对此不做限定。
示例性的,当所述预设的实验需求为“对100个用户进行分流以测试电商程序A和电商程序B的性能,其中50个用户使用Chrome浏览器测试电商程序A,另外50个用户使用Firefox浏览器测试电商程序B。”,则所述多个实验词汇可以是[对,100个,用户,进行,分流,以,测试,电商程序A,和,电商程序B,的,性能,其中,50个,用户,使用,Chrome浏览器,测试,电商程序A,另外,50个,用户,使用,Firefox浏览器,测试,电商程序B]。
该可选的实施例中,所述预设的语义分类模型可以是预先训练好的决策树模型、随机森林模型、GBDT模型等现有的分类模型,本申请对此不做限定。
该可选的实施例中,所述待测实验被存储于预设的第一服务器中,可将类别为待测实验的所述实验词汇作为待测实验的名称,并依据所述待测实验的名称从所述预设的第一服务器中查找所述待测实验的地址,所述待测实验的地址用于表征所述待测实验在所述预设的第一服务器中的存储目录,示例性的,当所述待测实验的名称为APP-zOLlKg7时,所述待测实验的地址的形式可以是:http://smartest-test.pingan.com/version?eid=EXP-zEOtrsE&aid=APP-zOLlKg7。
该可选的实施例中,所述分流接口用于接收用户数据并实现分流,所述分流接口被存储于预设的第二服务器中,所述分流接口的地址用于表征调用所述分流接口时所需要的网址,即所述分流接口在所述预设的第二服务器中的存储目录。示例性的,所述分流接口的地址的形式可以是:http://smartest-test.pingan.com/api/splitter/open/variables/exp/apps/APP-zOLlKg6。
所述预设的第一服务器和所述预设的第二服务器均可以是MySQL、SQLite、Hive等现有的数据库服务器,本申请对此不做限定。
该可选的实施例中,所述测试参数用于表征需要参加所述待测实验的用户的相关信息,所述测试参数至少包括请求数量、属性名称、属性取值、分流比例。所述请求数量用于表征所有参与所述待测实验的用户的数量,所述属性名称用于表征筛选所述参与待测实验的用户时所需的属性,所述属性取值用于表征筛选所述用户时所述用户数据需要满足的筛选指标,所述分流比例用于表征在所述预设的实验需求中为每个所述待测实验分配的用户的数量。
示例性的,当所述实验词汇包括[对,100个,用户,进行,分流,以,测试,电商程序A,和,电商程序B,的,性能,其中,50个,用户,使用,Chrome浏览器,测试,电商程序A,另外,50个,用户,使用,Firefox浏览器,测试,电商程序B]时,所述请求数量为100,所述属性名称为浏览器,所述属性值为Chrome和Firefox,参与电商程序B的分流比例为50,参与电商程序A的分流比例也为50。
该可选的实施例中,为了便于调用所述测试参数,可将所述待测实验的地址、所述分流接口的地址和所述测试参数以统一格式存储为测试文件,所述统一格式可以是TXT格式、数据表格式、JSON格式、XML格式等现有的文件格式,本申请对此不做限定。
如此,利用预先训练好的分类模型解析预设实验需求,能够高效确定实验需求中的测试参数,并将所述测试参数以统一格式存储为测试文件,便于后续对所述测试参数进行调用,能够提升分流接口测试的效率。
S11,依据所述测试参数从预设的用户数据库中筛选参与待测实验的目标用户,依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据。
在一个可选的实施例中,所述依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据,包括:
依据所述目标用户的属性数据构建请求报文;
依据预设的通信协议封装所述请求报文以获得第一请求数据,所述第一请求数据与所述目标用户一一对应;
依据预设的第一秘钥对所述第一请求数据进行加密获得第二请求数据。
该可选的实施例中,可依据所述测试参数中的属性名称、属性取值构建筛选条件,示例性的,当所述属性名称为浏览器,所述属性取值为Chrome和Firefox时,则所述筛选条件包括“通过Chrome浏览器参与所述待测实验的用户”、“通过Firefox浏览器参与所述待测实验的用户”。
该可选的实施例中,可依据所述筛选条件从预设的用户数据库中筛选目标用户群体,所述预设的用户数据库用于存储用户数据,所述目标用户群体指所述预设的用户数据库中满足所述筛选条件的所有用户。所述预设的用户数据库可以是MySQL数据库、Hive数据库、SQLite数据库等现有的数据库,本申请对此不做限定。
该可选的实施例中,可依据所述分流比例随机从所述目标用户群体中选取与所述请求数量相等的多个用户作为参与所述待测实验的目标用户,示例性的,当所述请求数量为100,所述分流比例为Chrome:50且Firefox:50,则可从所述目标用户群体中随机选取100个目标用户,且该100个目标用户中有50个用户利用Chrome浏览器参与所述待测实验,另外50个用户利用Firefox浏览器参与所述待测实验。
该可选的实施例中,每个所述目标用户包括多个属性数据,示例性的,所述属性数据包括用户ID、浏览器、终端平台等,本申请对此不做限定。可依据所述目标用户的所有属性数据构建请求报文,即将所述目标用户的属性数据以预设的数据格式存储为请求报文,示例性的,所述预设的格式可以是Json格式、XML格式等现有的数据格式,本申请对此不做限定。
该可选的实施例中,所述预设的通信协议指所述分流接口接收所述请求数据时的信息传输协议,所述预设的通信协议可以是用户数据报协议(User Datagram Protocol,UDP)、传输控制协议(Transmission Control Protocol,TCP)等现有的通信协议,本申请对此不做限定。
在一个可选的实施例中,所述依据预设的通信协议封装所述请求报文以获得第一请求数据,包括:
查询预设的通信协议对应的请求头;
将所述请求头置于前,并将所述请求报文置于后,组合所述请求头和所述请求报文以获得第一请求数据;
依据预设的哈希算法计算所述第一请求数据的第一校验值。
该可选的实施例中,所述请求头用于表征所述预设的通信协议对应的标识,示例性的,当所述预设的通信协议为TCP协议时,所述请求头的格式可以是:TCP/版本号+源端口+目的端口+数据序号+头部长度;当所述预设的通信协议为UDP协议时,所述请求头的格式可以是:UDP/版本号+源端口+目的端口。
示例性的,如图4a所示为TCP通信协议对应的所述第一请求数据的结构示意图,如图4b所示为UDP通信协议对应的所述第一请求数据的结构示意图。
该可选的实施例中,所述预设的哈希算法可以是SHA256算法、SHA1算法、SHA264算法等现有的哈希算法,本申请对此不做限定。
该可选的实施例中,为了维护数据传输的安全性,在获得所述第一请求数据之后,还可依据预设的第一秘钥对所述第一请求数据进行加密以获得第二请求数据,所述第一秘钥指预设的加密算法中用于数据加密的秘钥,示例性的,所述预设的第一秘钥可以是RSA算法中的公钥、DSA算法中的公钥、DES算法中用于加密的秘钥,本申请对所述预设的加密算法不做限定。
如此,利用测试参数筛选出符合实验需求的目标用户,依据目标用户的属性数据构建第一请求数据,并对第一请求数据进行加密发送,能够提升数据传输过程的安全性。
S12,依据所述测试参数标记所述第一请求数据以生成预期分流结果。
在一个可选的实施例中,所述测试参数还用于记载所述待测实验的实验条件,所述依据所述测试参数标记所述请求数据以生成预期分流结果,包括:
从所述测试参数中查询所述待测实验的实验条件,所述实验条件用于表征参与所述待测实验的目标用户需要满足的条件;
针对每个所述待测实验,若所述第一请求数据满足所述待测实验对应的实验条件,则将所述待测实验的名称作为所述第一请求数据的第一标记;
将所述第一请求数据与所述第一标记作为预期分流结果。
该可选的实施例中,每个所述待测实验包含一项实验条件,所述实验条件用于表征参与所述待测实验的目标用户需要满足的条件,示例性的,当所述待测实验的实验条件为“属性名称为浏览器,属性取值为Chrome”,则表明参与该待测实验的目标用户均应使用Chrome浏览器登录参与该待测实验;当所述待测实验的实验条件为“属性名称为操作系统,属性值为Windows”,则表明参与该待测实验的目标用户均应使用Windows操作系统参与该待测实验。
示例性的,若待测实验A的实验条件为“属性名称为浏览器,属性取值为Chrome;属性名称为操作系统,属性值为Windows”,请求数据001对应的目标用户的属性数据包括:浏览器Chrome,操作系统Windows,则表明所述请求数据001满足所述待测实验A的实验条件,则可将待测实验A作为所述请求数据001的第一标记。
该可选的实施例中,可将每个所述第一请求数据与对应第一标记作为预期分流结果。
如此,通过解析所述测试参数获得待测实验的实验条件,将满足实验条件的第一请求数据与待测实验的名称相匹配以获得预期分流结果,能够为后续评估分流接口的性能提供数据支撑。
S13,对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果。
在一个可选的实施例中,所述对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果,包括:
依据预设的第二秘钥对所述第二请求数据进行解密获得第三请求数据;
依据所述预设的哈希算法计算所述第三请求数据对应的第二校验值;
若所述第二校验值与所述第一校验值不一致,则发送异常数据告警;
若所述第二校验值与所述第一校验值一致,则将所述第三请求数据输入所述分流接口以获得第二标记,将所述第三请求数据与所述第二标记作为接口分流结果,所述第二标记用于表征所述第三请求数据对应的待测实验的名称。
该可选的实施例中,所述预设的第二秘钥指所述预设的加密算法中用于解密的秘钥,示例性的,所述预设的第二秘钥可以是RSA算法中的私钥、DSA算法中的私钥、DES算法中用于解密的秘钥,本申请对所述预设的加密算法不做限定。
该可选的实施例中,可依据所述预设的哈希算法计算所述请求数据的第二校验值,若所述第一校验值与所述第二校验值不一致,则表明所述请求数据可能在传输过程中遭到篡改,可能导致分流接口接收到错误的请求数据,进而降低接口分流结果的准确率,因此需要发出非法篡改警告。
该可选的实施例中,若所述第二校验值与所述第一校验值一致,则可将所述第三请求数据输入所述分流接口以获得第二标记,所述第二标记用于表征所述第三请求数据对应的待测实验的名称。
该可选的实施例中,所述分流接口用于接收所述第三请求数据,为每个所述第三请求数据对应的目标用户分配所述待测实验,并将所述待测实验的名称作为所述第三请求数据对应的第二标记,以实现目标用户的分流。所述分流接口是由预设的编程语言编写的程序,所述预设的编程语言可以是Java、Python、PHP等现有的编程语言,本申请对此不做限定。
如此,先对第二请求数据进行解密,再通过对比第一校验值和第二校验值对第三请求数据进行校验,确保请求数据未被篡改,从而能够保障请求数据的安全性和准确性,进而能够提升接口分流结果的准确性。
S14,对比所述预期分流结果与所述接口分流结果以获得测试结果。
在一个可选的实施例中,所述对比所述预期分流结果与所述接口分流结果以获得测试结果,包括:
解析所述预期分流结果获得所述第一请求数据与所述第一标记的第一映射关系,同时解析所述接口分流结果获得所述第三请求数据与所述第二标记的第二映射关系;
若所述第一映射关系与所述第二映射关系相同,则所述测试结果为通过;
若所述第一映射关系与所述第二映射关系不同,则所述测试结果为不通过。
该可选的实施例中,所述预期分流结果用于表征所述请求数据与所述第一标记的对应关系,即所述请求数据对应的目标用户与所述待测实验的对应关系,所述接口分流结果用于表征所述第三请求数据与所述第二标记的对应关系,即所述第三请求数据对应的目标用户与所述待测实验的对应关系。
请参见图5a和图5b,图5a是所述第一映射关系的结构示意图,图5b是所述第二映射关系的结构示意图。
在一个可选的实施例中,当所述测试结果为通过时,所述分流测试方法还包括:
计算所述分流接口的响应时长;
查询所述分流接口在所述响应时长内的性能指标,所述性能指标至少包括数据并发量、数据吞吐量和资源占用率;
依据所述性能指标配置测试报告,将所述测试报告推送至测试评估方以完成分流测试。
该可选的实施例中,当所述测试结果为通过时,可计算所述分流接口的响应时长,所述响应时长指所述分流接口接收到所述第三请求数据的时刻与生成所述接口分流结果的时刻之间的时间差。
该可选的实施例中,为了对所述分流接口的性能进行直观的展示,可查询所述分流接口在所述响应时长之内的性能指标。所述性能指标包括所述分流接口在所述响应时长之内的数据并发量、数据吞吐量、资源占用率等信息。所述数据并发量指所述分流接口在生成所述第二标记的过程中占用的服务器线程数量,所述数据吞吐量用于表征所述分流接口在生成所述第二标记的过程中读写数据的速率,所述资源占用率用于表征所述分流接口在生成所述第二标记的过程中对服务器资源的占用情况,所述资源占用率至少包括CPU占用率、内存占用率、IO占用率等。
该可选的实施例中,可依据预设的数据格式存储所述性能指标以生成测试报告,并将所述测试报告推送给测试评估方以完成接口性能测试,所述测试评估方可以是所述分流接口的开发人员、所述待测实验的开发人员、企业管理人员等,本申请对此不做限定。所述预设的数据格式可以是JSON格式、XML格式、TXT格式等现有的数据格式,本申请对此不做限定。
如此,通过直接对比预期分流结果和接口分流结果获得测试结果,并根据测试结果生成测试报告以直观展示分流接口的性能,从而能够提升分流接口测试的效率。
上述接口测试方法通过解析预设的实验需求获得测试参数,利用测试参数构建请求数据,并依据测试参数标记请求数据以获得预期分流结果,还利用分流接口处理请求数据以获得接口分流结果,最终通过直接对比预期分流结果和接口分流结果以获得测试结果,从而能够提升接口测试的效率。
如图2所示,是本申请实施例提供的接口测试装置的较佳实施例的功能模块图。接口测试装置11包括配置单元110、数据构造单元111、信息获取单元112、分流单元113、对比单元114。本申请所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
在一个可选的实施例中,配置单元110用于依据预设的实验需求配置测试文件,所述测试文件用于记载测试参数。
该可选的实施例中,所述预设的实验需求指对预设的分流接口的性能进行测试的需求,所述预设的分流接口用于对参与预设的待测实验的用户进行分流,所述测试文件还用于记载所述预设的待测实验的地址和所述预设的分流接口的地址。
其中,所述分流接口指具备数据分流功能的至少一组程序,所述待测实验指满足所述预设的实验需求的多组程序,示例性的,所述待测实验可以是企业为了提升电商交易平台的稳定性而发布的多个版本的电商交易程序,还可以是企业为了提升线上金融平台的易用程度而发布的多个版本的线上金融APP,还可以是企业为了提升门户网站的可靠性而发布的多个版本的门户网站页面,本申请对所述待测实验的内容不做限定。
示例性的,当所述实验需求为“测试所述分流接口对使用不同版本的电商交易程序的用户进行分流时的性能”,则所述待测实验为所述多个版本的电商交易程序;当所述实验需求为“测试所述分流接口对使用不同版本的线上金融APP的用户进行分流时的性能”,则所述待测实验为所述多个版本的线上金融APP。
在一个可选的实施例中,所述配置单元110依据预设的实验需求配置测试文件,包括:
依据预设的分词工具对所述预设的实验需求进行分词,获得多个实验词汇;
将所述多个实验词汇输入预设的语义分类模型以获得每个所述实验词汇的类别,所述类别至少包括待测实验、请求数量、属性名称、属性取值、分流比例;
将类别为待测实验的词汇作为待测实验的名称,并依据所述待测实验的名称查询所述待测实验的地址;
将类别为请求数量、属性名称、属性取值、分流比例的所述实验词汇作为测试参数,并将所述测试参数与所述待测实验的地址以预设的统一格式联合存储为配置文件。
该可选的实施例中,所述预设的分词工具可以是Jieba工具、HanNLP工具、SnowNLP工具等现有的分词工具,本申请对此不做限定。
示例性的,当所述预设的实验需求为“对100个用户进行分流以测试电商程序A和电商程序B的性能,其中50个用户使用Chrome浏览器测试电商程序A,另外50个用户使用Firefox浏览器测试电商程序B。”,则所述多个实验词汇可以是[对,100个,用户,进行,分流,以,测试,电商程序A,和,电商程序B,的,性能,其中,50个,用户,使用,Chrome浏览器,测试,电商程序A,另外,50个,用户,使用,Firefox浏览器,测试,电商程序B]。
该可选的实施例中,所述预设的语义分类模型可以是预先训练好的决策树模型、随机森林模型、GBDT模型等现有的分类模型,本申请对此不做限定。
该可选的实施例中,所述待测实验被存储于预设的第一服务器中,可将类别为待测实验的所述实验词汇作为待测实验的名称,并依据所述待测实验的名称从所述预设的第一服务器中查找所述待测实验的地址,所述待测实验的地址用于表征所述待测实验在所述预设的第一服务器中的存储目录,示例性的,当所述待测实验的名称为APP-zOLlKg7时,所述待测实验的地址的形式可以是:http://smartest-test.pingan.com/version?eid=EXP-zEOtrsE&aid=APP-zOLlKg7。
该可选的实施例中,所述分流接口用于接收用户数据并实现分流,所述分流接口被存储于预设的第二服务器中,所述分流接口的地址用于表征调用所述分流接口时所需要的网址,即所述分流接口在所述预设的第二服务器中的存储目录。示例性的,所述分流接口的地址的形式可以是:http://smartest-test.pingan.com/api/splitter/open/variables/exp/apps/APP-zOLlKg6。
所述预设的第一服务器和所述预设的第二服务器均可以是MySQL、SQLite、Hive等现有的数据库服务器,本申请对此不做限定。
该可选的实施例中,所述测试参数用于表征需要参加所述待测实验的用户的相关信息,所述测试参数至少包括请求数量、属性名称、属性取值、分流比例。所述请求数量用于表征所有参与所述待测实验的用户的数量,所述属性名称用于表征筛选所述参与待测实验的用户时所需的属性,所述属性取值用于表征筛选所述用户时所述用户数据需要满足的筛选指标,所述分流比例用于表征在所述预设的实验需求中为每个所述待测实验分配的用户的数量。
示例性的,当所述实验词汇包括[对,100个,用户,进行,分流,以,测试,电商程序A,和,电商程序B,的,性能,其中,50个,用户,使用,Chrome浏览器,测试,电商程序A,另外,50个,用户,使用,Firefox浏览器,测试,电商程序B]时,所述请求数量为100,所述属性名称为浏览器,所述属性值为Chrome和Firefox,参与电商程序B的分流比例为50,参与电商程序A的分流比例也为50。
该可选的实施例中,为了便于调用所述测试参数,可将所述待测实验的地址、所述分流接口的地址和所述测试参数以统一格式存储为测试文件,所述统一格式可以是TXT格式、数据表格式、JSON格式、XML格式等现有的文件格式,本申请对此不做限定。
在一个可选的实施例中,数据构造单元111用于依据所述测试参数构建请求数据。
在一个可选的实施例中,所述数据构造单元111依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据,包括:
依据所述目标用户的属性数据构建请求报文;
依据预设的通信协议封装所述请求报文以获得第一请求数据,所述第一请求数据与所述目标用户一一对应;
依据预设的第一秘钥对所述第一请求数据进行加密获得第二请求数据。
该可选的实施例中,可依据所述测试参数中的属性名称、属性取值构建筛选条件,示例性的,当所述属性名称为浏览器,所述属性取值为Chrome和Firefox时,则所述筛选条件包括“通过Chrome浏览器参与所述待测实验的用户”、“通过Firefox浏览器参与所述待测实验的用户”。
该可选的实施例中,可依据所述筛选条件从预设的用户数据库中筛选目标用户群体,所述预设的用户数据库用于存储用户数据,所述目标用户群体指所述预设的用户数据库中满足所述筛选条件的所有用户。所述预设的用户数据库可以是MySQL数据库、Hive数据库、SQLite数据库等现有的数据库,本申请对此不做限定。
该可选的实施例中,可依据所述分流比例随机从所述目标用户群体中选取与所述请求数量相等的多个用户作为参与所述待测实验的目标用户,示例性的,当所述请求数量为100,所述分流比例为Chrome:50且Firefox:50,则可从所述目标用户群体中随机选取100个目标用户,且该100个目标用户中有50个用户利用Chrome浏览器参与所述待测实验,另外50个用户利用Firefox浏览器参与所述待测实验。
该可选的实施例中,每个所述目标用户包括多个属性数据,示例性的,所述属性数据包括用户ID、浏览器、终端平台等,本申请对此不做限定。可依据所述目标用户的所有属性数据构建请求报文,即将所述目标用户的属性数据以预设的数据格式存储为请求报文,示例性的,所述预设的格式可以是Json格式、XML格式等现有的数据格式,本申请对此不做限定。
该可选的实施例中,所述预设的通信协议指所述分流接口接收所述请求数据时的信息传输协议,所述预设的通信协议可以是用户数据报协议(User Datagram Protocol,UDP)、传输控制协议(Transmission Control Protocol,TCP)等现有的通信协议,本申请对此不做限定。
在一个可选的实施例中,所述依据预设的通信协议封装所述请求报文以获得第一请求数据,包括:
查询预设的通信协议对应的请求头;
将所述请求头置于前,并将所述请求报文置于后,组合所述请求头和所述请求报文以获得第一请求数据;
依据预设的哈希算法计算所述第一请求数据的第一校验值。
该可选的实施例中,所述请求头用于表征所述预设的通信协议对应的标识,示例性的,当所述预设的通信协议为TCP协议时,所述请求头的格式可以是:TCP/版本号+源端口+目的端口+数据序号+头部长度;当所述预设的通信协议为UDP协议时,所述请求头的格式可以是:UDP/版本号+源端口+目的端口。
示例性的,如图4a所示为TCP通信协议对应的所述第一请求数据的结构示意图,如图4b所示为UDP通信协议对应的所述第一请求数据的结构示意图。
该可选的实施例中,所述预设的哈希算法可以是SHA256算法、SHA1算法、SHA264算法等现有的哈希算法,本申请对此不做限定。
该可选的实施例中,为了维护数据传输的安全性,在获得所述第一请求数据之后,还可依据预设的第一秘钥对所述第一请求数据进行加密以获得第二请求数据,所述第一秘钥指预设的加密算法中用于数据加密的秘钥,示例性的,所述预设的第一秘钥可以是RSA算法中的公钥、DSA算法中的公钥、DES算法中用于加密的秘钥,本申请对所述预设的加密算法不做限定。
在一个可选的实施例中,信息获取单元112用于依据所述测试参数标记所述请求数据以生成预期分流结果。
在一个可选的实施例中,所述信息获取单元112测试参数还用于记载所述待测实验的实验条件,所述依据所述测试参数标记所述请求数据以生成预期分流结果,包括:
从所述测试参数中查询所述待测实验的实验条件,所述实验条件用于表征参与所述待测实验的目标用户需要满足的条件;
针对每个所述待测实验,若所述第一请求数据满足所述待测实验对应的实验条件,则将所述待测实验的名称作为所述第一请求数据的第一标记;
将所述第一请求数据与所述第一标记作为预期分流结果。
该可选的实施例中,每个所述待测实验包含一项实验条件,所述实验条件用于表征参与所述待测实验的目标用户需要满足的条件,示例性的,当所述待测实验的实验条件为“属性名称为浏览器,属性取值为Chrome”,则表明参与该待测实验的目标用户均应使用Chrome浏览器登录参与该待测实验;当所述待测实验的实验条件为“属性名称为操作系统,属性值为Windows”,则表明参与该待测实验的目标用户均应使用Windows操作系统参与该待测实验。
示例性的,若待测实验A的实验条件为“属性名称为浏览器,属性取值为Chrome;属性名称为操作系统,属性值为Windows”,请求数据001对应的目标用户的属性数据包括:浏览器Chrome,操作系统Windows,则表明所述请求数据001满足所述待测实验A的实验条件,则可将待测实验A作为所述请求数据001的第一标记。
该可选的实施例中,可将每个所述第一请求数据与对应第一标记作为预期分流结果。
在一个可选的实施例中,分流单元113用于依据所述请求数据生成接口分流结果。
在一个可选的实施例中,所述分流单元113对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果,包括:
依据预设的第二秘钥对所述第二请求数据进行解密获得第三请求数据;
依据所述预设的哈希算法计算所述第三请求数据对应的第二校验值;
若所述第二校验值与所述第一校验值不一致,则发送异常数据告警;
若所述第二校验值与所述第一校验值一致,则将所述第三请求数据输入所述分流接口以获得第二标记,将所述第三请求数据与所述第二标记作为接口分流结果,所述第二标记用于表征所述第三请求数据对应的待测实验的名称。
该可选的实施例中,所述预设的第二秘钥指所述预设的加密算法中用于解密的秘钥,示例性的,所述预设的第二秘钥可以是RSA算法中的私钥、DSA算法中的私钥、DES算法中用于解密的秘钥,本申请对所述预设的加密算法不做限定。
该可选的实施例中,可依据所述预设的哈希算法计算所述请求数据的第二校验值,若所述第一校验值与所述第二校验值不一致,则表明所述请求数据可能在传输过程中遭到篡改,可能导致分流接口接收到错误的请求数据,进而降低接口分流结果的准确率,因此需要发出非法篡改警告。
该可选的实施例中,若所述第二校验值与所述第一校验值一致,则可将所述第三请求数据输入所述分流接口以获得第二标记,所述第二标记用于表征所述第三请求数据对应的待测实验的名称。
该可选的实施例中,所述分流接口用于接收所述第三请求数据,为每个所述第三请求数据对应的目标用户分配所述待测实验,并将所述待测实验的名称作为所述第三请求数据对应的第二标记,以实现目标用户的分流。所述分流接口是由预设的编程语言编写的程序,所述预设的编程语言可以是Java、Python、PHP等现有的编程语言,本申请对此不做限定。
在一个可选的实施例中,对比单元114用于对比所述预期分流结果与所述接口分流结果以获得测试结果。
在一个可选的实施例中,所述对比单元114对比所述预期分流结果与所述接口分流结果以获得测试结果,包括:
解析所述预期分流结果获得所述第一请求数据与所述第一标记的第一映射关系,同时解析所述接口分流结果获得所述第三请求数据与所述第二标记的第二映射关系;
若所述第一映射关系与所述第二映射关系相同,则所述测试结果为通过;
若所述第一映射关系与所述第二映射关系不同,则所述测试结果为不通过。
该可选的实施例中,所述预期分流结果用于表征所述请求数据与所述第一标记的对应关系,即所述请求数据对应的目标用户与所述待测实验的对应关系,所述接口分流结果用于表征所述第三请求数据与所述第二标记的对应关系,即所述第三请求数据对应的目标用户与所述待测实验的对应关系。
请参见图5a和图5b,图5a是所述第一映射关系的结构示意图,图5b是所述第二映射关系的结构示意图。
在一个可选的实施例中,当所述测试结果为通过时,所述对比单元114还依据所述测试结果生成测试报告。
在一个可选的实施例中,所述对比单元114依据所述测试结果生成测试报告,包括:
计算所述分流接口的响应时长;
查询所述分流接口在所述响应时长内的性能指标,所述性能指标至少包括数据并发量、数据吞吐量和资源占用率;
依据所述性能指标配置测试报告,将所述测试报告推送至测试评估方以完成分流测试。
该可选的实施例中,当所述测试结果为通过时,可计算所述分流接口的响应时长,所述响应时长指所述分流接口接收到所述第三请求数据的时刻与生成所述接口分流结果的时刻之间的时间差。
该可选的实施例中,为了对所述分流接口的性能进行直观的展示,可查询所述分流接口在所述响应时长之内的性能指标。所述性能指标包括所述分流接口在所述响应时长之内的数据并发量、数据吞吐量、资源占用率等信息。所述数据并发量指所述分流接口在生成所述第二标记的过程中占用的服务器线程数量,所述数据吞吐量用于表征所述分流接口在生成所述第二标记的过程中读写数据的速率,所述资源占用率用于表征所述分流接口在生成所述第二标记的过程中对服务器资源的占用情况,所述资源占用率至少包括CPU占用率、内存占用率、IO占用率等。
该可选的实施例中,可依据预设的数据格式存储所述性能指标以生成测试报告,并将所述测试报告推送给测试评估方以完成接口性能测试,所述测试评估方可以是所述分流接口的开发人员、所述待测实验的开发人员、企业管理人员等,本申请对此不做限定。所述预设的数据格式可以是JSON格式、XML格式、TXT格式等现有的数据格式,本申请对此不做限定。
上述接口测试装置通过解析预设的实验需求获得测试参数,利用测试参数构建请求数据,并依据测试参数标记请求数据以获得预期分流结果,还利用分流接口处理请求数据以获得接口分流结果,最终通过直接对比预期分流结果和接口分流结果以获得测试结果,从而能够提升接口测试的效率。
如图3所示,是本申请实施例提供的一种电子设备的结构示意图。电子设备1包括存储器12和处理器13。存储器12用于存储计算机可读指令,处理器13用执行储器中存储的计算机可读指令以实现上述任一实施例的接口测试方法。
在一个可选的实施例中,电子设备1还包括总线、存储在存储器12中并可在处理器13上运行的计算机程序,例如接口测试程序。
图3仅示出了具有存储器12和处理器13的电子设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图1,电子设备1中的存储器12存储多个计算机可读指令以实现一种接口测试方法,处理器13可执行多个指令从而实现:
依据预设的实验需求配置测试文件,所述实验需求指对分流接口的性能进行测试的需求,所述测试文件用于记载测试参数;
依据所述测试参数从预设的用户数据库中筛选参与待测实验的目标用户,依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据;
依据所述测试参数标记所述第一请求数据以生成预期分流结果;
对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果;
对比所述预期分流结果与所述接口分流结果以获得测试结果。
具体地,处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,电子设备1既可以是总线型结构,也可以是星形结构,电子设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如电子设备1还可以包括输入输出设备、网络接入设备等。
需要说明的是,电子设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本申请,也应包含在本申请的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质可以是非易失性的,也可以是易失性的。所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如接口测试程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是电子设备1的控制核心(Control Unit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在存储器12内的程序或者模块(例如执行接口测试程序等),以及调用存储在存储器12内的数据,以执行电子设备1的各种功能和处理数据。
所述处理器13执行电子设备1的操作系统以及安装的各类应用程序。处理器13执行所述应用程序以实现上述各个接口测试方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在存储器12中,并由处理器13执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在电子设备1中的执行过程。例如,所述计算机程序可以被分割成配置单元110、数据构造单元111、信息获取单元112、分流单元113、对比单元114。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本申请各个实施例所述接口测试方法的部分。
电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存储器及其他存储器等。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现存储器12以及至少一个处理器13等之间的连接通信。
本申请实施例还提供一种计算机可读存储介质(图未示),计算机可读存储介质中存储有计算机可读指令,计算机可读指令被电子设备中的处理器执行以实现上述任一实施例所述的接口测试方法。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。说明书陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。

Claims (10)

1.一种接口测试方法,用于测试分流接口,其特征在于,所述方法包括:
依据预设的实验需求配置测试文件,所述实验需求指对分流接口的性能进行测试的需求,所述测试文件用于记载测试参数;
依据所述测试参数从预设的用户数据库中筛选参与待测实验的目标用户,依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据;
依据所述测试参数标记所述第一请求数据以生成预期分流结果;
对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果;
对比所述预期分流结果与所述接口分流结果以获得测试结果。
2.如权利要求1所述的接口测试方法,其特征在于,所述依据预设的实验需求配置测试文件,包括:
依据预设的分词工具对所述预设的实验需求进行分词,获得多个实验词汇;
将所述多个实验词汇输入预设的语义分类模型以获得每个所述实验词汇的类别,所述类别至少包括待测实验、请求数量、属性名称、属性取值、分流比例;
将类别为待测实验的词汇作为待测实验的名称,并依据所述待测实验的名称查询所述待测实验的地址;
将类别为请求数量、属性名称、属性取值、分流比例的所述实验词汇作为测试参数,并将所述测试参数与所述待测实验的地址以预设的统一格式联合存储为测试文件。
3.如权利要求2所述的接口测试方法,其特征在于,所述依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据,包括:
依据所述目标用户的属性数据构建请求报文;
依据预设的通信协议封装所述请求报文以获得第一请求数据,所述第一请求数据与所述目标用户一一对应;
依据预设的第一秘钥对所述第一请求数据进行加密获得第二请求数据。
4.如权利要求3所述的接口测试方法,其特征在于,所述依据预设的通信协议封装所述请求报文以获得第一请求数据,包括:
查询预设的通信协议对应的请求头;
将所述请求头置于前,并将所述请求报文置于后,组合所述请求头和所述请求报文以获得第一请求数据;
依据预设的哈希算法计算所述第一请求数据的第一校验值。
5.如权利要求4所述的接口测试方法,其特征在于,所述测试参数还用于记载所述待测实验的实验条件,所述依据所述测试参数标记所述第一请求数据以生成预期分流结果,包括:
从所述测试参数中查询所述待测实验的实验条件,所述实验条件用于表征参与所述待测实验的目标用户需要满足的条件;
针对每个所述待测实验,若所述第一请求数据满足所述待测实验对应的实验条件,则将所述待测实验的名称作为所述第一请求数据的第一标记;
将所述第一请求数据与所述第一标记作为预期分流结果。
6.如权利要求5所述的接口测试方法,其特征在于,所述对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果,包括:
依据预设的第二秘钥对所述第二请求数据进行解密获得第三请求数据;
依据所述预设的哈希算法计算所述第三请求数据对应的第二校验值;
若所述第二校验值与所述第一校验值不一致,则发送异常数据告警;
若所述第二校验值与所述第一校验值一致,则将所述第三请求数据输入所述分流接口以获得第二标记,将所述第三请求数据与所述第二标记作为接口分流结果,所述第二标记用于表征所述第三请求数据对应的待测实验的名称。
7.如权利要求6所述的接口测试方法,其特征在于,所述对比所述预期分流结果与所述接口分流结果以获得测试结果,包括:
解析所述预期分流结果获得所述第一请求数据与所述第一标记的第一映射关系,同时解析所述接口分流结果获得所述第三请求数据与所述第二标记的第二映射关系;
若所述第一映射关系与所述第二映射关系相同,则所述测试结果为通过;
若所述第一映射关系与所述第二映射关系不同,则所述测试结果为不通过。
8.一种接口测试装置,其特征在于,所述装置包括:
配置单元,用于依据预设的实验需求配置测试文件,所述实验需求指对分流接口的性能进行测试的需求,所述测试文件用于记载测试参数;
数据构造单元,用于依据所述测试参数从预设的用户数据库中筛选参与待测实验的目标用户,依据所述目标用户的属性数据构建第一请求数据,并对所述第一请求数据加密获得第二请求数据;
信息获取单元,用于依据所述测试参数标记所述第一请求数据以生成预期分流结果;
分流单元,用于对所述第二请求数据进行解密获得第三请求数据,并将所述第三请求数据输入所述分流接口以生成接口分流结果;
对比单元,用于对比所述预期分流结果与所述接口分流结果以获得测试结果。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储计算机可读指令;及
处理器,执行所述存储器中存储的计算机可读指令以实现如权利要求1至7中任意一项所述的接口测试方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现如权利要求1至7中任意一项所述的接口测试方法。
CN202310151663.2A 2023-02-09 2023-02-09 接口测试方法、装置、电子设备及存储介质 Pending CN116049010A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310151663.2A CN116049010A (zh) 2023-02-09 2023-02-09 接口测试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310151663.2A CN116049010A (zh) 2023-02-09 2023-02-09 接口测试方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116049010A true CN116049010A (zh) 2023-05-02

Family

ID=86120176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310151663.2A Pending CN116049010A (zh) 2023-02-09 2023-02-09 接口测试方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116049010A (zh)

Similar Documents

Publication Publication Date Title
US11321305B2 (en) Utilizing independently stored validation keys to enable auditing of instrument measurement data maintained in a blockchain
CN112163412B (zh) 数据校验方法、装置、电子设备及存储介质
CN109446837B (zh) 基于敏感信息的文本审核方法、设备及可读存储介质
CN109376534B (zh) 用于检测应用的方法和装置
CN110708335A (zh) 访问认证方法、装置及终端设备
CN112734361B (zh) 一种分布式协同办公数据处理方法及系统
WO2022116761A1 (en) Self auditing blockchain
CN112948418A (zh) 动态查询方法、装置、设备及存储介质
CN113938408B (zh) 一种数据流量测试方法、装置、服务器及存储介质
CN114172663A (zh) 基于区块链的业务确权方法及装置、存储介质和电子设备
CN112947911A (zh) 接口脚本生成方法、装置、设备及存储介质
CN112667501A (zh) 基于自动化挡板的链路测试方法、装置及相关设备
CN112181485A (zh) 脚本执行方法、装置、电子设备及存储介质
US9904661B2 (en) Real-time agreement analysis
CN111639903A (zh) 一种针对架构变更的评审处理方法及相关设备
CN112950154B (zh) 流程信息匹配方法、装置、设备及存储介质
CN116049010A (zh) 接口测试方法、装置、电子设备及存储介质
CN114925337A (zh) 数据的标注方法、装置和电子设备
US10796264B2 (en) Risk assessment in online collaborative environments
CN113609531A (zh) 基于区块链的信息交互方法、装置、设备、介质和产品
US11563576B2 (en) Distributed anonymous scoring technique
CN107612763B (zh) 元数据管理方法、应用服务器、业务系统、介质及控制器
CN115001805B (zh) 单点登录方法、装置、设备及存储介质
US11880473B2 (en) Removing data having a data type from a data set
CN117171185B (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