CN117349145A - 数据处理方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据处理方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN117349145A CN117349145A CN202210764354.8A CN202210764354A CN117349145A CN 117349145 A CN117349145 A CN 117349145A CN 202210764354 A CN202210764354 A CN 202210764354A CN 117349145 A CN117349145 A CN 117349145A
- Authority
- CN
- China
- Prior art keywords
- interface
- candidate
- flow information
- scene
- scenes
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000003672 processing method Methods 0.000 title abstract description 19
- 238000012360 testing method Methods 0.000 claims abstract description 237
- 238000012545 processing Methods 0.000 claims abstract description 78
- 238000013515 script Methods 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 43
- 238000004590 computer program Methods 0.000 claims abstract description 14
- 238000011156 evaluation Methods 0.000 claims description 51
- 230000015654 memory Effects 0.000 claims description 23
- 230000011218 segmentation Effects 0.000 claims description 14
- 238000012163 sequencing technique Methods 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 12
- 239000000758 substrate Substances 0.000 claims 1
- 238000005065 mining Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 9
- 230000018109 developmental process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001521293 Python Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000007849 functional defect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/3684—Test management for test design, e.g. generating new test cases
-
- 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/3696—Methods or tools to render software testable
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
技术领域
本申请涉及计算机数据处理技术,尤其涉及一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品。
背景技术
在当前互联网时代,开发的项目的应用场景众多并且软件架构也越来越复杂,软件的升级和更新频率也越来越频繁。因此,软件在不同场景下的运行效率以及质量至关重要,后台自动化测试作为软件质量保障的重要途径越来越受到重视及专业化。
相关技术中,关于集成接口测试的测试用例自动生成的方法较少,大多数集中在使用接口文档的方法来生成接口测试用例,进而自动生成测试脚本进行集成测试。
发明内容
本申请实施例提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,对集成测试场景自动生成测试脚本,有效的提高了不同场景编写集成测试测试脚本的效率及质量。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据处理方法,包括:
分别对多个流量信息进行接口序列化处理,得到与每个流量信息对应的接口序列,其中,流量信息包括至少一个接口;
对多个接口序列进行分割处理,得到多个子接口序列,并将每个子接口序列对应的场景作为候选场景;
对候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景;
根据目标场景对应的流量信息,生成用于测试目标场景的测试脚本。
本申请实施例提供一种数据处理装置,包括:
接口序列化模块,用于分别对多个流量信息进行接口序列化处理,得到与每个流量信息对应的接口序列,其中,流量信息包括至少一个接口;
候选场景确定模块,用于对多个接口序列进行分割处理,得到多个子接口序列,并将每个子接口序列对应的场景作为候选场景;
目标场景确定模块,用于对候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景;
测试脚本确定模块,用于根据目标场景对应的流量信息,生成用于测试目标场景的测试脚本。
上述技术方案中,接口序列化模块还用于针对所述多个流量信息中的任意一个所述流量信息执行以下处理:
从所述流量信息中获取每个所述接口的属性信息,其中,所述属性信息包括接口标识和时序标识,所述时序标识用于表征所述接口被调用时的时间信息;
根据所述时间信息的先后顺序对每个所述接口信息进行排序,并根据排序结果生成与所述流量信息对应的接口序列。
上述技术方案中,接口序列化模块还用于当所述排序结果中任意所述接口与相邻的前一接口之间的所述时间信息的差值大于时间间隔阈值时,以任意所述接口为分割点,对所述排序结果进行分割处理,得到与所述流量信息对应的多个接口序列。
上述技术方案中,候选场景确定模块还用于根据多个所述接口序列中任意接口序列的第1接口标识,对多个所述接口序列进行分割,得到多个第一中间接口序列;
根据任意第i中间接口序列中的第i+1接口标识,对多个所述第i中间接口序列进行分割,得到多个第i+1中间接口序列,其中,所述i为依次递增的正整数、且i小于所述任意接口序列中接口的数量;
对所述第1接口标识、所述第i+1接口标识、以及多个所述第i+1中间接口序列进行拼接处理,得到所述子接口序列。
在上述技术方案中,目标场景确定模块还用于根据多个所述候选场景被使用的次数和多个所述候选场景中接口的数量,确定每个所述候选场景的权重值;
将所述权重值最大的候选场景,作为所述目标场景。
在上述技术方案中,测试脚本确定模块还用于对所述目标场景对应的多个流量信息进行分类处理,得到所述目标场景对应的目标流量信息;
根据所述目标流量信息,生成用于测试所述目标场景的测试脚本。
在上述技术方案中,测试脚本确定模块还用于根据所述流量信息的标识类别,对所述目标场景对应的多个流量信息进行分组处理,得到多个流量信息组,其中,多个所述流量信息组中任意一组流量信息组所包括的所述流量信息的标识类别相同;
将包括最多的流量信息对应的所述流量信息组,确定为候选流量信息组;
对所述候选流量信息组中的流量信息进行文本相似度处理,得到所述候选流量信息组中的所述流量信息之间的文本相似度值;
根据所述文本相似度值,对所述候选流量信息组中的流量信息进行聚类处理,得到至少一个候选流量信息集;
根据至少一个所述候选流量信息集,确定所述目标场景对应的目标流量信息。
在上述技术方案中,测试脚本确定模块还用于将包括最多的流量信息对应的所述候选流量信息集,确定为目标流量信息集;
从所述目标流量信息集中选取一个所述流量信息,作为所述目标场景对应的目标流量信息。
在上述技术方案中,测试脚本确定模块还用于获取测试模板;获取所述目标流量信息中参数信息,将所述测试模板中的内容替换成所述参数信息,得到替换后的所述测试模板;
对替换后的所述测试模板进行编译处理,生成用于测试所述目标场景的测试脚本。
上述技术方案中,目标场景确定模块还用于在所述对所述候选场景进行加权处理之前,获取每个所述候选场景的评估分数和每个所述候选场景的排序分数,其中,所述评估分数表征对象对所述候选场景的偏好程度,所述排序分数表征所述对象对所述候选场景的排序次序的偏好程度;
根据每个所述候选场景的评估分数、每个所述候选场景的排序分数、所述对象的数量、以及所述候选场景的数量对多个所述候选场景进行评估,得到评估结果;
根据所述评估结果对多个所述候选场景进行筛选处理,得到筛选后的部分候选场景;
对所述筛选后的部分候选场景进行加权处理。
上述技术方案中,目标场景确定模块还用于针对任一所述候选场景执行以下处理:
对所述候选场景的评估分数以及所述候选场景的排序分数进行加权求和处理,得到所述对象针对所述候选场景的评估分值;
将多个所述对象针对所述候选场景的评估分值进行加和,得到加和结果;
确定所述对象的数量与所述候选场景的数量的乘积,并将所述加和结果与所述乘积的比值作为所述评估结果。
本申请实施例提供一种用于数据处理的电子设备,所述电子设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的数据处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的数据处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现本申请实施例提供的数据处理方法。
本申请实施例具有以下有益效果:
通过对流量信息进行接口序列化、分割处理,得到的多个子接口序列,并将其作为候选场景,进而根据对候选场景进行赋权处理,从数量众多的候选场景中准确的确定出目标场景,最后根据目标场景对应的流量信息快速生成测试脚本,实现对集成测试场景自动的生成测试脚本,有效的提高了不同场景编写集成测试测试脚本的效率及质量。
附图说明
图1是本申请实施例提供的数据处理系统的应用场景示意图;
图2是本申请实施例提供的用于数据处理的电子设备的结构示意图;
图3是本申请实施例提供的数据处理方法的一个流程示意图;
图4是本申请实施例提供的确定流量信息对应的接口序列的一个流程示意图;
图5是本申请实施例提供的确定候选场景的一个流程示意图;
图6是本申请实施例提供的对多个接口序列进行分割得到多个第一中间序列的一个流程示意图;
图7是本申请实施例提供的确定多个第i+1中间接口序列的一个流程示意图;
图8是本申请实施例提供的确定子接口序列的一个流程示意图;
图9是本申请实施例提供的对候选场景进行赋权处理的一个流程示意图;
图10是本申请实施例提供的生成用于测试目标场景的测试脚本的一个流程示意图;
图11是本申请实施例提供的确定目标场景对应的目标流量信息的一个流程示意图。
图12是本申请实施例提供的根据替换后的测试模板生成用于测试目标场景的测试脚本的一个流程示意图。
图13是本申请实施例提供的确定筛选后的部分候选场景的一个流程示意图;
图14是本申请实施例提供的一个数据处理原理示意图;
图15是本申请实施例提供的数据处理层次原理示意图。
图16是本申请实施例提供的数据处理方法的一个流程示意图;
图17是本申请实施例提供的根据解析结果得到切分后的接口名信息序列的一个流程示意图;
图18是本申请实施例提供的对接口名信息序列进行挖掘和加权的一个流程示意图;
图19是本申请实施例提供的一种接口名信息挖掘流程的示意图;
图20A-20B是本申请实施例提供的通过集成环境(IDE)插件内嵌页面方式来交互选择相关的集成测试场景示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)流量录制(Traffic Recording):在不影响用户正常使用的前提下,获取线上用户的真实请求和服务响应结果,将其保存或者转发到目标应用,采用不同的流量录制手段,可以采集不同传输阶段的流量。
2)alpha体验版(Alpha Experience):内部测试版,功能不全漏洞较多,一般不建议用户下载这个版本,主要给开发和测试使用。
3)接口测试(Interface Testing):是测试系统组件间接口的一种测试类型。接口测试主要用于检测外部系统与系统之间以及内部各子系统之间的交互点,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
4)接口自动化测试(Interface Auto Testing):基于接口和协议,在预设条件下运行系统和应用程序,以评估运行结果的一种测试方法,其中,预先条件应包括正常条件和异常条件。
5)测试脚本(Testing Script):是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行,为了提高测试脚本的可维护性和可复用性,必须在执行测试脚本之前对它们进行构建,测试脚本的编写必须对应相应的测试用例。
6)测试用例(Test Case):是为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
在相关技术中,由于集成接口测试是从业务的接入层角度进行测试,往往涉及多个服务、多个接口,会着重测试相关请求对其他服务的影响情况。当前测试用例数据的生成主要有两种方法,一种方法是人工的录入数据并构造测试用例,另一种方法是关于集成接口测试的测试用例自动生成的方法,可以看出,在相关技术中大多数集中在使用接口文档的方法来生成接口测试用例。
在本申请实施例的实施过程中,申请人发现相关技术存在以下问题:
相关技术中,大多数系统缺少热点集成测试场景的识别,在现有的技术方案中,需要人工构造集成测试场景,而人工构造的集成测试场景与热点操作场景仍然存在差距,其次,在流量录制的相关方案中虽然能够对接口测试的录制及回放起得一定的效果,但缺少对于集成测试场景的流量数据的识别及自动生成测试用例,没有自动的提取其中的集成场景流量数据用于测试。
为了解决上述问题,本申请实施例提供一种数据处理方法、装置、设备和计算机可读存储介质,能够对集成测试场景自动的生成测试脚本,并有效的提高了不同场景编写集成测试测试脚本的效率及质量,下面说明本申请实施例提供的数据处理设备的示例性应用,本申请实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。
参见图1,图1是本申请实施例提供的数据处理系统的应用场景示意图,终端200通过网络300连接服务器100,网络300可以是广域网或者局域网,又或者是二者的组合。
在一些实施例中,服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。
终端200安装和运行有测试功能的客户端,用于向用户提供软件测试,终端200向服务器100发送软件测试请求。
服务器100,用于接收到测试请求,并对测试请求进行解析得到流量信息,分别对多个流量信息进行接口序列化处理,得到与每个流量信息对应的接口序列,其中,流量信息包括至少一个接口;对多个接口序列进行分割处理,得到多个子接口序列,并将每个子接口序列对应的场景作为候选场景;对候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景;根据目标场景对应的流量信息,生成用于测试目标场景的测试脚本。
示例性的,以测试音乐播放场景为例,从终端200安装和运行有测试音乐播放场景中特定接口功能的客户端,在客户端布置的测试页面中接收由对象选择的特定接口,向服务器100发送对音乐播放场景的测试请求,服务器100在接收到测试请求后,对测试请求进行解析得到流量信息,分别对多个流量信息进行接口序列化处理,得到与每个流量信息对应的接口序列,其中,流量信息包括至少一个接口;对多个接口序列进行分割处理,得到多个子接口序列,并将每个子接口序列对应的场景作为候选场景;对候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景,例如“获取音乐信息—收藏音乐—获取音乐收藏列表”场景;根据目标场景对应的流量信息,生成用于测试目标场景的测试脚本。
需要说明的是,选择特定接口的对象,包括用户或者计算机。
在一些实施例中,服务器100可以通过运行计算机程序来实现本申请实施例提供的数据处理方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,APPlication),即需要在操作系统中安装才能运行的程序,例如程序测试APP(即上述的终端200);也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
以计算机程序为应用程序为例,在实际实施时,终端安装和运行有支持虚拟场景的应用程序。该应用程序场景可以是是程序插件内嵌页面和命令行交互方式业务应用的任意一种。
在一些实施例中,终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机。当终端200将流量信息发送给服务器100后,由服务器100分别对多个流量信息进行接口序列化处理,得到与每个流量信息对应的接口序列,其中,流量信息包括至少一个接口;对多个接口序列进行分割处理,得到多个子接口序列,并将每个子接口序列对应的场景作为候选场景;对候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景;根据目标场景对应的流量信息,生成用于测试目标场景的测试脚本。
在一些实施例中,本申请实施例还可以借助于云技术(Cloud Technology) 实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源。
图2是本申请实施例提供的用于数据处理的电子设备的结构示意图,以电子设备500是服务器为例说明,图2所示的用于流量限制的电子设备500包括:至少一个处理器510、存储器550以及至少一个网络接口520。电子设备500 中的各个组件通过总线系统530耦合在一起。可理解,总线系统530用于实现这些组件之间的连接通信。总线系统530除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统530。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Onl y Memory),易失性存储器可以是随机存取存储器(RAM,Random Access M emory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块553,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的数据处理装置可以采用软件方式实现,图2示出了存储在存储器550中的数据处理装置555,其可以是程序和插件等形式的软件,包括以下软件模块:接口序列化模块5551、候选场景确定模块5552、目标场景确定模块5553、测试脚本确定模块5554用于实现自动生成测试脚本功能,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
在另一些实施例中,本申请实施例提供的数据处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的数据处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC, Application Specific IntegratedCircuit)、数字信号处理(DSP,Digital Signal Process)、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列 (FPGA,Field-Programmable Gate Array)或其他电子元件。
如前所述,本申请实施例提供的数据信息处理方法可以由各种类型的电子设备实施,例如服务器。参见图3,图3是本申请实施例提供的数据处理方法的一个流程示意图,结合图3示出的步骤进行说明。
在步骤201中,分别对多个流量信息进行接口序列化处理,得到与每个流量信息对应的接口序列。
这里,流量信息中包括解析后的请求数据和响应文件,在流量信息中的多个接口信息都有一一对应的时间戳,时间戳用于表征接口被触发的时间点。
在一些实施例中,步骤201中的流量信息可以通过以下步骤得到:获取多个流量录制数据,对多个流量录制数据进行解析,得到与多个流量录制数据对应的流量信息。
这里,流量录制数据是采用字节码增强的方式对流量中的请求进行面向切面编程(AOP,Aspect Oriented Programming)切面处理,从而实现大量流量信息的快速采集。
示例性的,对录制的流量录制数据进行拦截,然后根据传输控制协议(TC P,Transmission Control Protocol)对其进行解析,再根据超文本传输协议(H TTP,HyperText Transfer Protol)将流量解析为HTTP协议流量,并使用pyt hon脚本对http协议流量进行解析,获得流量信息,其中,流量信息包括请求路径,请求参数,响应返回等各种http协议元素,将解析出来的流量信息按照自定义的格式保存到数据库。
在一些实施例中,参见图4,图4是本申请实施例提供的确定流量信息对应的接口序列的一个流程示意图,图3示出的步骤201中对多个流量信息进行接口序列化处理过程,可以通过图3中的步骤2011A-步骤2013A实现。
在步骤2011A中,从流量信息中获取每个接口的属性信息。
示例性的,属性信息包括接口标识和时序标识,时序标识用于表征接口被调用时的时间信息,其中时序标识可以由接口被调用时,由对应的时间戳进行记录生成,接口标识用于识别调用的接口名称。
在步骤2012A中,根据时间信息的先后顺序对每个接口信息进行排序,并根据排序结果生成与流量信息对应的接口序列。
承接上例,例如接口信息A、B、C、D对应的时序标识为at、bt、ct、dt,其中时序标识发生的次序为bt、at、ct、dt,则将时序标识对应的接口信息进行排序,得到接口序列B-A-C-D。
在一些实施例中,当排序结果中任意接口与相邻的前一接口之间的时间信息的差值大于时间间隔阈值时,以任意接口为分割点,对排序结果进行分割处理,得到与流量信息对应的多个接口序列。
示例性的,预设时间间隔阈值为t,当排序结果中存在接口的时序标识与相邻的前一接口的时序标识进行相减,且相减得到的结果t1大于t时,将两接口进行分割,确定出多个接口序列,例如当接口信息A、C对应的时序标识的差 at-ct>t,则将接口序列B-A-C-D,分割为B-A以及C-D两个接口序列。
需要说明的是,当排序结果中相邻的接口的时序标识出现多个差值均大于时间间隔t时,将排序得到的接口序列进行多次分割,进而得到多个接口序列,由于接口序列的划分是由相邻接口之间的时间间隔确定的,从而使得分割后的接口序列更具实用性。
在步骤202中,对多个接口序列进行分割处理,得到多个子接口序列,并将每个子接口序列对应的场景作为候选场景。
在实际实施时,按照多个接口序列中的接口信息对多个接口序列进行整体分割,得到分割后的由多个接口系列中的接口信息确定的多个子接口序列,并将子接口序列对应的场景作为候选场景。
在一些实施例中,参见图5,图5是本申请实施例提供的确定候选场景的一个流程示意图,图3示出的步骤202中基于多个接口序列确定候选场景,可以通过图5中的步骤2021A-步骤2023A实现。
在步骤2021A中,根据多个接口序列中任意接口序列的第1接口标识,对多个接口序列进行分割,得到多个第一中间接口序列。
在实际实施时,获取接口集合即多个接口序列,根据接口标识在任意接口序列的位置关系,确定用于对多个接口序列分割的接口标识,得到多个第一中间接口序列。
示例性的,参见图6,图6是本申请实施例提供的对多个接口序列进行分割得到多个第一中间序列的一个流程示意图。
如图6所示601为多个接口序列其中的一个接口序列,602为接口序列的第1接口标识,603为多个第一中间接口序列中的一个第一中间接口序列,例如根据602对多个接口序列进行分割后,得到第一中间接口序列603。
在步骤2022A中,根据任意第i中间接口序列中的第i+1接口标识,对多个第i中间接口序列进行分割,得到多个第i+1中间接口序列,其中,i为依次递增的正整数、且i小于任意接口序列中接口的数量。
承接上例,参见图7,图7是本申请实施例提供的确定多个第i+1中间接口序列的一个流程示意图。
承接上例,如图7所示701为任意第i中间接口序列,702为第i+1接口标识,703为多个第i+1中间接口序列中的一个第i+1中间接口序列,如图7所示根据702第i+1接口标识对701第i中间接口序列进行分割后得到703第i+1中间接口序列。
在步骤2023A中,对第1接口标识、第i+1接口标识、以及多个第i+1中间接口序列进行拼接处理,得到子接口序列。
承接上例,参见图8,图8是本申请实施例提供的确定子接口序列的一个原理示意图。
如图8所示801为第1接口标识,802为第i+1接口标识,803为多个第i +1中间接口序列,对多个接口标识(包括第1接口标识、第i+1接口标识)以及多个第i+1中间接口序列中的接口序列,进行拼接处理得到804多个子接口序列,具体的拼接处理过程如下:将第1接口标识801与第i+1接口标识802 中的接口信息B与多个第i+1中间接口序列803中的接口信息C进行拼接后得到多个子接口序列804中的子接口序列A-B-C。
需要说明的是,在根据多个接口序列中的接口信息对多个接口序列进行整体分割后,通过均衡的拼接方法得到多个子接口序列,使得拼接后的多个子接口序列能够完整的覆盖各个接口信息可能组成的情况,再将子接口序列作为候选场景,即候选场景中包括了各个接口信息不同情况的排列组合。
在步骤203中,对候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景。
这里,赋权处理是指根据候选场景的相关特征,对多个候选场景进行权重值的确定,从赋权后的多个候选场景中确定目标场景。
在一些实施例中,参见图9,图9是本申请实施例提供的对候选场景进行赋权处理的一个流程示意图,图3示出的步骤203中对对候选场景进行赋权处理,可以通过图9中的步骤2031A-步骤2032A实现。
在步骤2031A中,根据多个候选场景被使用的次数和多个候选场景中接口的数量,确定每个候选场景的权重值。
在实际实施时,当多个候选场景中其中一个候选场景X中对应的接口序列为A-B-C时,则其接口的数量为3。假设候选场景X在总数为A个用户中有B 个用户都命中了该场景,其中B为小于等于A的正整数。
示例性的,参见公式1,公式1为本申请实施例提供的一个候选场景X的权重的计算方法。
根据上述公式1对多个候选场景进行权重计算,得到加权后的候选场景。其中公式1中参数M是候选场景x中接口的数量,B是候选场景被使用的次数, k表示用户这里表示第几个对象,第i个接口,第j个接口,d(k,i),(k,j) 表示对象点击的接口之间距离。
在步骤2032A中,将权重值最大的候选场景,作为目标场景。
承接上例,多个候选场景中包括候选场景X在内的多个候选场景,并且全部都进行了加权后得到对应的权值,例如,多个候选场景包括X、M、N、G、 H对应的权值分别为w1、w2、w3、w4、w5,其中,w1>w2>w3>w4>w5,最后将所有权重值中最高的候选场景X确定为目标场景。
需要说明的是,根据多个候选场景中确定后的权重值确定出目标场景,避免了对候选场景的主观理解,依据客观的评判依据确定出目标场景。
在步骤204中,根据目标场景对应的流量信息,生成用于测试目标场景的测试脚本。
这里,目标场景对应的流量信息包括请求路径,请求参数,测试脚本用于进行自动化测试。
在一些实施例中,参见图10,图10是本申请实施例提供的生成用于测试目标场景的测试脚本的一个流程示意图,图3示出的步骤204中生成测试脚步的过程,可以通过图3中的步骤2041A-步骤2042A实现。
在步骤2041A中,对目标场景对应的多个流量信息进行分类处理,得到目标场景对应的目标流量信息。
示例性的,在时间段内有一定数量的用户对目标场景进行了点击,因此对由多个用户形成的流量信息进行分类,在分类后的流量信息中选出目标场景对应的目标流量信息。
在步骤2042A中,根据目标流量信息,生成用于测试目标场景的测试脚本。
这里,目标流量信息中包括一些关键的测试参数,例如请求路径,时间参数,根据目标流量信息中的关键测试参数,生成用于测试目标场景的测试脚本。
在一些实施例中,参见图11,图11是本申请实施例提供的确定目标场景对应的目标流量信息的一个流程示意图,图10示出的步骤2041A可以通过图8 中的步骤2041B-步骤2045B实现。
在步骤2041B中,根据流量信息的标识类别,对目标场景对应的多个流量信息进行分组处理,得到多个流量信息组,其中,多个流量信息组中任意一组流量信息组所包括的流量信息的标识类别相同。
示例性的,流量信息的标识类别包括流量信息的内容索引,根据流量信息的内容索引,将内容索引相同的流量信息分为同一组,根据流量信息的内容索引确定出多个流量信息组。
在步骤2042B中,将包括最多的流量信息对应的流量信息组,确定为候选流量信息组。
承接上例,多个流量信息组由于是根据内容索引相同进行同组分类的,因此,流量信息组之间包括的流量信息的数量是不固定的,进而将包括最多的流量信息对应的流量信息组,确定为候选流量信息组。
在步骤2043B中,对候选流量信息组中的流量信息进行文本相似度处理,得到候选流量信息组中的流量信息之间的文本相似度值。
这里,候选流量信息组中根据流量信息的内容索引进行第一次筛选后,候选流量信息组中的流量信息内容之间有较大的相似性。
在实际实施中,将候选流量信息组中的多个流量信息均转换为纯文本格式,并将纯文本格式的多个流量信息进行哈希编码处理后,得到哈希编码组,对哈希编码组进行加权、合并、降维后得到处理后的哈希编码组,对哈希编码组中的哈希编码进行汉明距离计算,得到汉明距离并将汉明距离转换为相似度值。例如哈希编码组包括两个字符串:
s1:0000011100110111111100010100000101011111001111011101101110110011,
s2:1001011110110001101101010101001101011111101101001001100110101011,
两个字符串有16处不同,因此汉明距离为16转化为相似度值为0.0047。
在步骤2044B中,根据文本相似度值,对候选流量信息组中的流量信息进行聚类处理,得到至少一个候选流量信息集。
承接上文,候选流量信息组中的多个流量信息两两之间均有对应的值,假设对候选流量信息组中的多个流量信息经过哈希编码处理、加权、合并、降维、汉明距离计算后得到了多个相似度值,d1(s1,s2)、d2(s1,s3)、d3(s1,s4)、 d4(s1,s5)、d5(s2,s5)、d6(s2,s4)、d7(s2,s3)、d8(s3,s5)、d9(s3, s4)、d10(s4,s5)。当相似度d1-d2之间的差值小于相似阈值时,将流量信息组中s1-s3对应的流量信息作为候选流量信息集。
需要说明的是,当相似度d1-d2之间的差值小于阈值时,将流量信息组中 s1-s3对应的流量信息作为候选流量信息集后,还需要将s2、s3涉及的相似度值进行确认,当s2、s3涉及的相似度值与d1-d2之间的差值也小于相似阈值时,将s2、s3涉及的相似度值对应的流量信息加入到候选流量信息集中,例如当d1 (s1,s2)、d2(s1,s3)、d6(s2,s4)之间的差值均小于相似阈值时,将流量信息组中s1-s4对应的流量信息作为候选流量信息集。
在步骤2045B中,根据至少一个候选流量信息集,确定目标场景对应的目标流量信息。
示例性的,在确定多个候选流量信息集后,对多个候选流量信息集按照进行排序处理,其中排序处理可以根据候选流量信息集包括的流量信息的数量,排序处理还可以根据对候选流量信息集包括的流量信息的信息内容大小。
在一些实施例中,将包括最多的流量信息对应的候选流量信息集,确定为目标流量信息集;从目标流量信息集中选取一个流量信息,作为目标场景对应的目标流量信息。
示例性的,多个候选流量信息集Q、P、O中对应的流量信息为x1、x2、 x3,其中x1>x2>x3,故将候选流量信息集Q作为目标流量信息集,进而从目标流量信息集中任意的选取一个流量信息,将任意选取的流量信息作为目标场景对应的目标流量信息。
需要说明的是,从目标流量信息集中选取一个流量信息的方式还包括:对目标流量信息集中的多个流量信息按照相似度阈值的大小进行排序,从排序结果中确定出目标场景对应的目标流量信息
在一些实施例中,参见图12,图12是本申请实施例提供的根据替换后的测试模板生成用于测试目标场景的测试脚本的一个流程示意图,图10示出的步骤2042A可以通过图13中的步骤2041C-步骤2043C实现。
在步骤2041C中,获取测试模板。
这里,测试模板为符合测试标准的测试代码,测试代码包括临时代码模板,对临时代码模板中关键的参数信息进行替换而不改变代码的行文逻辑。
在步骤2042C中,获取目标流量信息中参数信息,将测试模板中的内容替换成参数信息,得到替换后的测试模板。
这里,参数信息包括请求路径、响应文件参数,将测试模板中包括的临时代码模板的关键参数信息进行替换,得到替换后的测试模板的具体过程可以理解为将带有参数信息的一组文本嵌入另一组文本模版中,得到替换后的测试模板。
在步骤2043C中,对替换后的测试模板进行编译处理,生成用于测试目标场景的测试脚本。
示例性的,在指定的目录生成这个接口的测试文件代码,即通过特定的自动化测试接口实现数据驱动,生成用于测试目标场景的测试脚本。
需要说明的是,通过从目标场景中确定出对应的流量信息,并根据流量信息自动生成好测试脚本,从而减少了编写测试用例、拉取数据、构造测试脚本的时间,进而有效的提升了在不同测试场景下编写测试用例、测试脚本的效率及质量。
在一些实施例中,参见图13,图13是本申请实施例提供的确定筛选后的部分候选场景的一个流程示意图,图3示出的步骤203还可以通过图13中的步骤2021B-步骤2024B对候选场景进行赋权处理。
在步骤2021B中,获取每个候选场景的评估分数和每个候选场景的排序分数,其中,评估分数表征对象对候选场景的偏好程度,排序分数表征对象对候选场景的排序次序的偏好程度。
这里,每个候选场景的评估分数是由对象对候选场景的主观打分,即对象对候选场景在使用过程中出现次数的判定,其中对候选场景主观打分的对象,包括用户或者计算机。
在步骤2022B中,根据每个候选场景的评估分数、每个候选场景的排序分数、对象的数量、以及候选场景的数量对多个候选场景进行评估,得到评估结果。
在一些实施例中,对候选场景的评估分数以及候选场景的排序分数进行加权求和处理,得到对象针对候选场景的评估分值。将多个对象针对候选场景的评估分值进行加和,得到加和结果。确定对象的数量与候选场景的数量的乘积,并将加和结果与乘积的比值作为评估结果。
在实际实施中,根据每个候选场景的评估分数A和评估分数对应的第一权重a,确定每个候选场景的评估分值,根据每个候选场景的排序分数B和排序分数对应的第二权重b,确定每个候选场景的排序分值xi,其中,第一权重与第二权重的和等于1,确定评估分值和排序分值的和,作为对象的中间分值,将每个对象的中间分值求和,得到中间评估结果,确定对象的数量与候选场景的数量的乘积,并将中间评估结果与乘积的比值作为评估结果。
在步骤2023B中,根据评估结果对多个候选场景进行筛选处理,得到筛选后的部分候选场景。
示例性的,根据评估结果将多个候选场景进行升序处理,将升序结果中前 k个候选场景,作为筛选后的部分候选场景,其中k为自然数。
在步骤2024B中,对筛选后的部分候选场景进行加权处理。
需要说明的是,在对多个候选场景进行筛选后,将筛选后的部分候选场景进行加权处理,也就是说,在得到筛选后的部分候选场景后,将在步骤203中的技术特征替换为对筛选后的部分候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景。
需要说明的是,通过对候选场景的主观性评价、以及基于从候选场景中找到合适排序情况所需的时间成本,对多个候选场景建立统一的评分体系,从而从赋权后的候选场景中客观的确定出目标场景。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例可以基于集成开发环境(IDE,Integrated Development Environment)插件实现多种交互场景,例如IDE插件内嵌页面和命令行交互方式等。下面以IDE插件内嵌页面场景为例进行说明:
相关技术中,通常将原始接口文档进行格式化操作,获得格式化接口文档后基于该格式化接口文档生成测试用例或者基于编程语言(Golang)的流量录制回放工具,在生产环境中录制流量,将录制流量的进行回放测试,其中双引擎回归平台(doom),将线上真实的流量复制用于自动回归测试的平台,通过系统聚焦录制、回放、比对,但在相关技术中均缺少热点集成测试场景识别、缺少流量自动构造集成测试用例以及缺少自动生成同源集成测试代码的技术方案。
为了解决上述问题,本申请实施例提出一种数据处理方案。参见图14,图 14是本申请实施例提供的一个数据处理原理示意图,图15是本申请实施例提供的数据处理层次原理示意图。
如图14所示,在一些实施例中,首先对终端录制流量通过协议中台进行解析得到流量数据,并对解析后的流量数据存储到流量中台中,将存储在流量中台的流量数据进行清洗得到相应的接口序列(即筛选测试用例),并通过改进后的PrefixSpan数据挖掘算法(包括挖掘和加权处理)对得到的接口序列进行处理,挖掘出其中的集成测试场景(即多个候选场景),最后基于集成测试场景中的热点场景(即目标场景)对应的最高频流量对应的流量转用例,进而生成测试代码,最后通过测试代码在后台自动化测试平台中对特定的业务服务进行测试。
需要说明的是,协议中台能够对测试代码中的关键参数进行解析、替换从而对测试代码进行更新,实现对不同的业务服务进行测试。
如图15所示,在一些实施例中,技术框架可以是录制接入、数据生成、流量解析、流量清洗、场景定义、流量筛选、数据储蓄、代码生成,其中录制接入包括通过测试版程序或者直接进行录制流量数据,进而将生成的线上流量数据和开发/测试人员调试数据根据协议类型(包括网络协议、无线统一协议、超文本协议、请求推送协议、通信协议等)进行解析,解析后的流量进行实时计算/增量更新、数据去重以及序列切分后存储在协议中台,接着根据我们的集成测试场景识别算法通过序列模式挖掘、文本生成NLP出来和alpha+概率分析确定出热点场景,并对热点场景对应的流量信息进行流量相似度分析、流量频率分析以及流量填充,并且将处理后的流量信息存储到电信数据存储库或者分布式文件数据库中,可以由搜索引擎对存储的流量信息进行查找,最后将热点场景对应的目标流量信息进行解析后,按照Go代码标准生产测试代码,进而可以通过协议中台发包在本地进行调试/流水线执行,并将测试结果的数据进行上报。
需要说明的是,将热点场景对应的目标流量信息进行解析后,还可以按照 C++代码标准生产测试代码或者按照JAVA代码标准生产测试代码。
在一些实施例中,参见图16,图16是本申请实施例提供的数据处理方法的一个流程示意图。
步骤401、对流量进行录制,并通过协议中台对录制流量进行解析,得到解析结果(即流量信息)。
示例性的,通过终端alpha版本将对流量进行录制,录制流量会经过协议中台进行解析,将录制流量进行解析后存储至流量中台。
需要说明的是,协议中台通过协议对录制流量进行解析得到解析结果,其中,协议包括trpc、qmf、wup等。
步骤402、对录制流量的解析结果进行筛选处理,以终端用户标识聚合后根据时间字段进行序列化处理(即分割处理),提取接口名信息,对接口名信息进行长序列切分,得到切分后的接口名信息序列(即候选场景)。
这里,由于alpha体验版本流量数量比较大,可以通过PySpark的模块来处理流量大数据,其中,流量大数据包括请求数据以及响应数据,请求数据包括请求统一资源定位器(URL,Uniform Resource Locator)、计算机端口(ip port)、原始标题名称(rawHeaderNames)、方法(method)、标题(headers)、主体(body) 等信息,响应文件包括ipport、raw HeaderNames、状条码(status Code)、状态信息(status Message)、headers、大小(size)、body等信息。
需要说明的是,提取接口名信息后,对接口名信息进行长序列切分用于将各个用户的使用场景进行区分。
在一些实施例中,参见图17,图17是本申请实施例提供的根据解析结果得到切分后的接口名信息序列的一个流程示意图,图16示出的步骤402中对对录制流量的解析结果进行筛选处理过程,可以通过图17中的步骤4021-步骤 4023实现。
步骤4021、根据各个用户唯一标识进行区分,对每个用户的流量进行区分。
步骤4022、针对用户的流量集合,根据每个流量的接口标识,按照接口的操作的时间进行排序,得到排序结果。
示例性的,用户A去买东西吃,扫描付款二维码(接口1),获取付款方式 (接口2),选择付款方式并输入密码支付(接口3),支付成功刷新最新余额(接口4)…拆开买的东西吃起来(这里过了30秒),刷朋友圈(接口5),给人点个赞(接口6),刷新朋友圈(接口7)。
步骤4023、对排序后排序结果进行切分,得到切分后的接口名信息序列。
示例性的,根据步骤4022得到的排序结果,例如排序结果中包括接口1-7 等,对排序结果进行切分,例如当判断接口4、5之间间隔超过间隔阈值,将序列进行切分得到两个序列:(接口1-4)、(接口5-7)。
步骤403、对集成测试场景(即候选场景)进行评估。
需要说明的是,在流量中挖掘/生成的集成测试场景提供给开发用户时,开发用户根据自身对业务的理解进行选择合适的集成测试场景生成测试样例,占一定的主观判断成分,很难有相应的程序方式去直接判断。
示例性的,参见公式2-3,公式2-3为本申请实施例提供的一个对集成测试场景的评估方法。
需要说明的是,公式2-3中的参数r为最后的度量分数,S(u,i)是指用户对第i个集成测试场景的评估打分(即候选场景的评估分数),主要考察是否能够找到想要且合理的集成测试场景。C(u,i)是指用户对第i个集成测试场景的排序得分(即候选场景的排序分数),主要考察是否能够快速找到集成测试场景得分,a是调整两个打分维度的权重系数,此处默认为0.8。N为打分用户数量,用于取均值。M为A3集成测试场景的接口数量,用于取均值。
需要说明的是,这里S(u,i)是主观打分得到的,假设我们A、B、C是音乐的开发同学,对现在上面场景的识别结果(排序展示给我们看)场景1:获取音乐信息—收藏音乐—获取音乐收藏列表,…,场景31:修改用户名称—播放 MV放获取音乐收藏列表
这里,对象A可以对场景1打分95分(就是我想要的场景),场景31打分50分(不是我想要的结果),S(A,1)=95,S(A,31)=50;C(A,1)=排序得分(对象B可以对场景1打分90分(也是他想要的场景),场景31打分60分(不是他想要的结果但不是太差),S(A,1)=90,S(A,31)=60。
步骤404、根据场景识别算法对切分后的接口名信息序列进行识别,确定出加权后的接口名信息序列。
这里,以业务X为例,X业务有300个后台接口,那接口链路长度为3的集成测试场景可能数量则有2700万个,而长度为4则可能有8100万个,所以这里是可能存在着上千万、亿个集成测试场景,需要场景识别算法识别出其中的热点场景,本实施例中通过改进的PrefixSpan、前缀投影的模式挖掘 (Prefix-Projected Pattern Growth)算法来识别流量序列数据里的紧密关联接口数据。
示例性的,以接口“收藏音乐”为例,当前接口存在的集成测试场景可能性为27万个,需要通过算法来识别出其中的热点场景,例如识别出热点场景:“获取音乐信息—收藏音乐—获取音乐收藏列表”。
在一些实施例中,参见图18,图18是本申请实施例提供的对接口名信息序列进行挖掘和加权的一个流程示意图,图16示出的步骤403中对接口名信息序列进行识别,确定出热点场景,可以通过图18中的步骤4031-步骤4032实现。
步骤4031、对接口名信息序列进行挖掘处理,得到挖掘后的接口名信息序列。
下面针对,参加图19,图19是本申请实施例提供的一种接口名信息挖掘流程的示意图。
如图19所示,对序列挖掘方案进行说明,每个用户有对应的序列数据,比如A是获取音乐信息接口,B是收藏音乐接口,C是获取音乐收藏列表接口。根据序列模式挖掘算法(PrefixSpan),进行递归树形挖掘其集成测试场景,逐个进行序列挖掘。均衡挖掘策略:先提取接口集合,轮流对含接口数据提取然后轮训挖掘,保证最后的集成测试场景结果能挖掘含有各个接口。
步骤4032、对挖掘后的接口名信息序列进行加权处理,得到加权后的接口名信息序列。
自适应权重:将挖掘序列结果的计数改由距离加权计算结果,能有效挖掘更加紧密的集成测试场景。
示例性的,参见公式4,公式4为本申请实施例提供的一个测试场景的权重计算方法。
需要说明的是,公式4中的参数M是测试场景的接口数量,例如A-B-C,则M=3,A-B-C-D-E,则M=5。N是命中了场景的用户数量,例如图这里的右下角的A-B-C,则有3个用户都命中了该场景,而A-F-C则有用户2和用户3 两个用户命中该场景。以A-B-C为例:W=(1/1+1/1)/2+(1/2+1/1)/2+(1/2+1/2) /2=2.25,参数M为3,所以每个都除以(3-1)d(k,i),(k,j):k表示用户这里表示第几个用户,第i个接口,第j个接口,d(k,i),(k,j)表示某用户接口之间的距离,例如k=2(用户2),i=1,j=2,这里表示用户2的A-B距离,所以d(k,i),(k,j)=d(2,1),(2,2)=2。
步骤405、对加权后的接口名信息序列对应的流量进行筛选及填充。
这里,对集成测试场景而言会有一定数量的用户信息,而集成的集成测试场景流量,通过流量的近似度计算筛选算法确定并填充一条合适的流量,这里通过列文斯坦(Levenshtein)距离和汉明(SimHash)距离计算方式的文本相似度算法进行实验对比分析。参见表1,表1是本申请实施例提供的实验结果对比示意表。
表1
需要说明的是,两种算法的比较第一步都会先比较具体内容(Body)(即候选流量信息组中的流量信息)的一级key是否相同,如果不同,直接判定为不同流量,一级索引标识(key)(即流量信息的标识类别)相同才开始基于两种算法进行Body的相似度的计算,Body指的是流量的具体内容,一级key只的是最外层的索引接口,例如:获取音乐信息,具体内容为:
{
“singer”:“周杰伦”,
“musicName”:”晴天”,
“music”:{
“lyrics”:“歌词,从出生那年就飘着童年的荡秋千随记忆一直晃到现…”,
“封面”:www.baidu.com
}
}
这里,一级key则为{“singer”,“musicName”,“music”}。
需要说明的是,流量筛选及填充的过程是对流量进行分类,然后找到最相似的那类流量,然后填充这个最高频的流量。
示例性的,当场景为:获取音乐信息-收藏音乐--获取音乐收藏列表,有100 个用户的流量,经过相似度计算后发现有70条相似,归类A,20条相似归类B, 10条相似归类C,即A的70条是类似的,则A这里的任意1条能代表70条,填充这条流量(即目标场景对应的流量)。
步骤406、生成测试代码。
根据公司Golang代码标准、发包测试代码模版生成代码,生成测试代码与测试用例进行文件分离,断言代码只断言了接口请求是否成功,相关自定义断言信息仍需自定义补充。
这里,通过标准的测试代码,并将这份标准的测试代码抽象出标准(template) 代码模板,提取模板中的可替换内容,这里例如请求URL、具体的Body参数。
需要说明的是,Golang的template包实现了数据驱动的用于生成文本输出的模板,也就是说,将一组文本嵌入另一组文本模版中,返回一个你期望的文本,并指定的目录生成这个接口的测试文件代码。
本申请实施例提出一种集成测试场景的方案。参见图20A-20B,图20A-20 B是本申请实施例提供的通过集成环境(IDE)插件内嵌页面方式来交互选择相关的集成测试场景示意图。
图20A显示的对象打开插件页面示意图,图20B显示的是对象填写相关参数信息生成测试用例,如图20A所示的测试插件的页面按钮2001,用户在点击按钮2001后进入测试插件页面后,在点击如图20A所示的流量转用例工具栏2 002后,可以将录制的流量信息转换为测试用例,并点击如图20A所示的场景生成页面按钮20023,进入场景生成页面,在此页面中选择对应业务接口名称,并生成对应的测试场景,进而如图20B所示的生成用例界面2004,进而用户可以在生成用例界面2004中自动的生成测试用例对对应的测试场景进行测试。
需要说明的是,用户在数据序列化的格式(yaml)文件上填写好接口名信息等,在命令行交互工具上直接执行命令,并命令行上选择想要的集成测试场景,工具会在目录下自动生成好测试代码及测试用例。
本申请上述实施例有如下有益技术效果:
(1)基于数据挖掘算法的集成测试场景识别方案,能够识别集成测试场景并根据终端录制的流量进行离线分析,可从一个业务其中上亿个可能的集成测试场景识别出其中的热点场景几万个,同时对于业务是无感知的。
(2)通过SimHash文本相似度计算方案来计算集成测试流量,对不类似的流量分别进行统计,然后选择最高频且同一个体验用户的线上真实操作场景流量进行生成测试用例,从而实现自动构造测试用例。
(3)基于Golang代码模版及公司相关发包工具、协议平台,自动生成同源测试代码,开发者可以直接进行测试,提升集成测试的效率。
可以理解的是,在本申请实施例中,涉及到的用户数据等相关的数据,当本申请实施例运用到具体产品和技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
下面继续说明本申请实施例提供的数据处理装置555的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器240的数据处理装置555中的软件模块可以包括:
接口序列化模块5551,用于分别对多个流量信息进行接口序列化处理,得到与每个流量信息对应的接口序列,其中,流量信息包括至少一个接口;候选场景确定模块5552,用于基于每个音频帧的多个基音周期,对每个音频帧的多个采样特征进行自相关处理,得到基音周期对应的相关特征;目标场景确定模块5553,用于对候选场景进行赋权处理,并从赋权后的候选场景中确定目标场景;测试脚本确定模块5554,用于根据目标场景对应的流量信息,生成用于测试目标场景的测试脚本。
在一些实施例中,接口序列化模块还用于针对多个流量信息中的任意一个流量信息执行以下处理:从流量信息中获取每个接口的属性信息,其中,属性信息包括接口标识和时序标识,时序标识用于表征接口被调用时的时间信息;根据时间信息的先后顺序对每个接口信息进行排序,并根据排序结果生成与流量信息对应的接口序列。
在一些实施例中,接口序列化模块还用于当排序结果中任意接口与相邻的前一接口之间的时间信息的差值大于时间间隔阈值时,以任意接口为分割点,对排序结果进行分割处理,得到与流量信息对应的多个接口序列。
在一些实施例中,候选场景确定模块还用于根据多个接口序列中任意接口序列的第1接口标识,对多个接口序列进行分割,得到多个第一中间接口序列;根据任意第i中间接口序列中的第i+1接口标识,对多个第i中间接口序列进行分割,得到多个第i+1中间接口序列,其中,i为依次递增的正整数、且i小于任意接口序列中接口的数量;对第1接口标识、第i+1接口标识、以及多个第i +1中间接口序列进行拼接处理,得到子接口序列。
在一些实施例中,目标场景确定模块还用于根据多个候选场景被使用的次数和多个候选场景中接口的数量,确定每个候选场景的权重值;将权重值最大的候选场景,作为目标场景。
在一些实施例中,测试脚本确定模块还用于对目标场景对应的多个流量信息进行分类处理,得到目标场景对应的目标流量信息;根据目标流量信息,生成用于测试目标场景的测试脚本。
在一些实施例中,测试脚本确定模块还用于根据流量信息的标识类别,对目标场景对应的多个流量信息进行分组处理,得到多个流量信息组,其中,多个流量信息组中任意一组流量信息组所包括的流量信息的标识类别相同;将包括最多的流量信息对应的流量信息组,确定为候选流量信息组;对候选流量信息组中的流量信息进行文本相似度处理,得到候选流量信息组中的流量信息之间的文本相似度值;根据文本相似度值,对候选流量信息组中的流量信息进行聚类处理,得到至少一个候选流量信息集;根据至少一个候选流量信息集,确定目标场景对应的目标流量信息。
在一些实施例中,测试脚本确定模块还用于将包括最多的流量信息对应的候选流量信息集,确定为目标流量信息集;从目标流量信息集中选取一个流量信息,作为目标场景对应的目标流量信息。
在一些实施例中,测试脚本确定模块还用于获取测试模板;获取目标流量信息中参数信息,将测试模板中的内容替换成参数信息,得到替换后的测试模板;对替换后的测试模板进行编译处理,生成用于测试目标场景的测试脚本。
在一些实施例中,目标场景确定模块还用于在对候选场景进行赋权处理之前,获取每个候选场景的评估分数和每个候选场景的排序分数,其中,评估分数表征对象对候选场景的偏好程度,排序分数表征对象对候选场景的排序次序的偏好程度;根据每个候选场景的评估分数、每个候选场景的排序分数、对象的数量、以及候选场景的数量对多个候选场景进行评估,得到评估结果;根据评估结果对多个候选场景进行筛选处理,得到筛选后的部分候选场景;对筛选后的部分候选场景进行加权处理。
在一些实施例中,目标场景确定模块还用于针对任一候选场景执行以下处理:对候选场景的评估分数以及候选场景的排序分数进行加权求和处理,得到对象针对候选场景的评估分值;将多个对象针对候选场景的评估分值进行加和,得到加和结果;确定对象的数量与候选场景的数量的乘积,并将加和结果与乘积的比值作为评估结果。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的数据处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的数据处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,包括:
分别对多个流量信息进行接口序列化处理,得到与每个所述流量信息对应的接口序列,其中,所述流量信息包括至少一个接口;
对多个所述接口序列进行分割处理,得到多个子接口序列,并将每个所述子接口序列对应的场景作为候选场景;
对所述候选场景进行赋权处理,并从赋权后的所述候选场景中确定目标场景;
根据所述目标场景对应的流量信息,生成用于测试所述目标场景的测试脚本。
2.根据权利要求1所述的方法,其特征在于,所述分别对多个流量信息进行接口序列化处理,得到与每个所述流量信息对应的接口序列,包括:
针对所述多个流量信息中的任意一个所述流量信息执行以下处理:
从所述流量信息中获取每个所述接口的属性信息,其中,所述属性信息包括接口标识和时序标识,所述时序标识用于表征所述接口被调用时的时间信息;
根据所述时间信息的先后顺序对每个所述接口信息进行排序,并根据排序结果生成与所述流量信息对应的接口序列。
3.根据权利要求2所述的方法,其特征在于,所述根据排序结果生成与所述流量信息对应的接口序列,包括:
当所述排序结果中任意所述接口与相邻的前一接口之间的所述时间信息的差值大于时间间隔阈值时,以任意所述接口为分割点,对所述排序结果进行分割处理,得到与所述流量信息对应的多个接口序列。
4.根据权利要求1所述的方法,其特征在于,所述对多个所述接口序列进行分割处理,得到多个子接口序列,包括:
根据多个所述接口序列中任意接口序列的第1接口标识,对多个所述接口序列进行分割,得到多个第一中间接口序列;
根据任意第i中间接口序列中的第i+1接口标识,对多个所述第i中间接口序列进行分割,得到多个第i+1中间接口序列,其中,所述i为依次递增的正整数、且i小于所述任意接口序列中接口的数量;
对所述第1接口标识、所述第i+1接口标识、以及多个所述第i+1中间接口序列进行拼接处理,得到所述子接口序列。
5.根据权利要求1所述的方法,其特征在于,所述对所述候选场景进行赋权,并从赋权后的所述候选场景中确定目标场景,包括:
根据多个所述候选场景被使用的次数和多个所述候选场景中接口的数量,确定每个所述候选场景的权重值;
将所述权重值最大的候选场景,作为所述目标场景。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标场景对应的流量信息,生成用于测试所述目标场景的测试脚本,包括:
对所述目标场景对应的多个流量信息进行分类处理,得到所述目标场景对应的目标流量信息;
根据所述目标流量信息,生成用于测试所述目标场景的测试脚本。
7.根据权利要求6所述的方法,其特征在于,所述对所述目标场景对应的流量信息进行分类处理,得到所述目标场景对应的目标流量信息,包括:
根据所述流量信息的标识类别,对所述目标场景对应的多个流量信息进行分组处理,得到多个流量信息组,其中,多个所述流量信息组中任意一组流量信息组所包括的所述流量信息的标识类别相同;
将包括最多的流量信息对应的所述流量信息组,确定为候选流量信息组;
对所述候选流量信息组中的流量信息进行文本相似度处理,得到所述候选流量信息组中的所述流量信息之间的文本相似度值;
根据所述文本相似度值,对所述候选流量信息组中的流量信息进行聚类处理,得到至少一个候选流量信息集;
根据至少一个所述候选流量信息集,确定所述目标场景对应的目标流量信息。
8.根据权利要求7所述的方法,其特征在于,所述根据至少一个所述候选流量信息集,确定所述目标场景对应的目标流量信息,包括:
将包括最多的流量信息对应的所述候选流量信息集,确定为目标流量信息集;
从所述目标流量信息集中选取一个所述流量信息,作为所述目标场景对应的目标流量信息。
9.根据权利要求6所述的方法,其特征在于,所述根据所述目标流量信息,生成用于测试所述目标场景的测试脚本,包括:
获取测试模板;
获取所述目标流量信息中参数信息,将所述测试模板中的内容替换成所述参数信息,得到替换后的所述测试模板;
对替换后的所述测试模板进行编译处理,生成用于测试所述目标场景的测试脚本。
10.根据权利要求1所述的方法,其特征在于,
在所述对所述候选场景进行加权处理之前,所述方法还包括:
获取每个所述候选场景的评估分数和每个所述候选场景的排序分数,其中,所述评估分数表征对象对所述候选场景的偏好程度,所述排序分数表征所述对象对所述候选场景的排序次序的偏好程度;
根据每个所述候选场景的评估分数、每个所述候选场景的排序分数、所述对象的数量、以及所述候选场景的数量对多个所述候选场景进行评估,得到评估结果;
根据所述评估结果对多个所述候选场景进行筛选处理,得到筛选后的部分候选场景;
所述对所述候选场景进行加权处理,包括:
对所述筛选后的部分候选场景进行加权处理。
11.根据权利要求10所述的方法,其特征在于,所述根据每个所述候选场景的评估分数、每个所述候选场景的排序分数、所述对象的数量、以及所述候选场景的数量对多个所述候选场景进行评估,得到评估结果,包括:
针对任一所述候选场景执行以下处理:
对所述候选场景的评估分数以及所述候选场景的排序分数进行加权求和处理,得到所述对象针对所述候选场景的评估分值;
将多个所述对象针对所述候选场景的评估分值进行加和,得到加和结果;
确定所述对象的数量与所述候选场景的数量的乘积,并将所述加和结果与所述乘积的比值作为所述评估结果。
12.一种数据处理装置,其特征在于,所述装置包括:
接口序列化模块,用于分别对多个流量信息进行接口序列化处理,得到与每个所述流量信息对应的接口序列,其中,所述流量信息包括至少一个接口;
候选场景确定模块,用于对多个所述接口序列进行分割处理,得到多个子接口序列,并将每个所述子接口序列对应的场景作为候选场景;
目标场景确定模块,用于对所述候选场景进行赋权处理,并从赋权后的所述候选场景中确定目标场景;
测试脚本确定模块,用于根据所述目标场景对应的流量信息,生成用于测试所述目标场景的测试脚本。
13.一种数据处理设备,其特征在于,所述数据处理设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至11任一项所述的方法。
15.一种计算机程序产品,包括计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764354.8A CN117349145A (zh) | 2022-06-29 | 2022-06-29 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210764354.8A CN117349145A (zh) | 2022-06-29 | 2022-06-29 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117349145A true CN117349145A (zh) | 2024-01-05 |
Family
ID=89354537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210764354.8A Pending CN117349145A (zh) | 2022-06-29 | 2022-06-29 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117349145A (zh) |
-
2022
- 2022-06-29 CN CN202210764354.8A patent/CN117349145A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11550856B2 (en) | Artificial intelligence for product data extraction | |
CN110688553A (zh) | 基于数据分析的信息推送方法、装置、计算机设备及存储介质 | |
US20170109636A1 (en) | Crowd-Based Model for Identifying Executions of a Business Process | |
CN110502677B (zh) | 一种设备识别方法、装置及设备、存储介质 | |
CN113761219A (zh) | 基于知识图谱的检索方法、装置、电子设备及存储介质 | |
CN109285024B (zh) | 在线特征确定方法、装置、电子设备及存储介质 | |
CN112199411B (zh) | 应用于云计算通信架构的大数据分析方法及人工智能平台 | |
CN112115326B (zh) | 一种以太坊智能合约的多标签分类和漏洞检测方法 | |
CN115830649A (zh) | 一种网络资产指纹特征的识别方法、装置及电子设备 | |
CN114416573A (zh) | 一种应用程序的缺陷分析方法、装置、设备及介质 | |
CN113918794A (zh) | 企业网络舆情效益分析方法、系统、电子设备及存储介质 | |
CN112101484B (zh) | 基于知识巩固的增量事件识别方法、系统、装置 | |
US11567851B2 (en) | Mathematical models of graphical user interfaces | |
CN113806647A (zh) | 识别开发框架的方法及相关设备 | |
CN112416800A (zh) | 智能合约的测试方法、装置、设备及存储介质 | |
CN114356744A (zh) | 基于机器学习的应用程序界面遍历方法及设备 | |
CN112070559A (zh) | 状态获取方法和装置、电子设备和存储介质 | |
CN115292571B (zh) | 一种App数据采集方法及系统 | |
CN117349145A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN116958622A (zh) | 数据的分类方法、装置、设备、介质及程序产品 | |
CN114580533A (zh) | 特征提取模型的训练方法、装置、设备、介质及程序产品 | |
CN114528908A (zh) | 网络请求数据分类模型训练方法、分类方法及存储介质 | |
CN114610590A (zh) | 作业运行时长确定方法、装置、设备及存储介质 | |
CN110674020B (zh) | App智能推荐方法、装置及计算机可读存储介质 | |
CN113535594B (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 |