CN113157559A - 流量筛选方法及装置 - Google Patents
流量筛选方法及装置 Download PDFInfo
- Publication number
- CN113157559A CN113157559A CN202110264759.0A CN202110264759A CN113157559A CN 113157559 A CN113157559 A CN 113157559A CN 202110264759 A CN202110264759 A CN 202110264759A CN 113157559 A CN113157559 A CN 113157559A
- Authority
- CN
- China
- Prior art keywords
- flow
- data
- traffic
- type
- code
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012216 screening Methods 0.000 title claims abstract description 44
- 238000012360 testing method Methods 0.000 claims abstract description 35
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011990 functional testing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/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/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种流量筛选方法及装置,可用于金融领域或其他领域。方法包括:根据多条流量数据的基本信息,确定各流量数据的类型;根据各流量数据的类型生成对应的流量ID,将流量ID写入流量数据中,得到标记后的流量数据;对标记后的流量数据进行流量回放,利用代码覆盖率工具,得到标记后的流量数据在流量回放过程中流经的代码详细信息;根据代码详细信息,确定测试流量集。本发明通过对海量流量数据进行流量标记,得到流量所经路径记录,计算有效测试流量集,实现对海量流量的筛选,很好地解决了流量回放采集的海量流量的冗余和不确定问题,解决了流量数据的准确性和完备性,提高了流量数据的利用率,优化了测试流程和成本,提高流量筛选效率及准确性。
Description
技术领域
本发明涉及流量回放技术领域,尤指一种流量筛选方法及装置。
背景技术
现有针对海量流量的筛选主要都是通过大数据处理平台根据特定的特征进行流量的筛选,设定固定特征的方式实现流量重复的剔除和筛选,最后等到需求的有效流量集。也还有一些采用人工智能方式的分析海量流量特征,形成流量筛选模型,使用模型来获取所需流量,对比上一个方案降低一定的手工操作,但还是存在一些问题。
使用大数据平台固定特征值的方式进行流量的筛选无疑存在很多繁杂的手工操作,包括提取特征值,通过特征值书写hql批量脚本。工作量巨大,采用人工智能的方式虽然降低了复杂的手工操作带来的工作量,但是人工智能的模型逻辑基本是不可解释的,所以也无法直接修改。其预测结果允许存在一定的误差,但是这个对于测试流量来说是致命的,测试流量需要具备的条件就是准确性和完备性。以上的两种方式都不能很好的同时满足这两项要求,特征提取筛选可以准确的筛选流量但是需要人工去分析特征,要达到完备性又要对比程序接口比对流量是否完备。人工智能方式解决了人工,但是又可能破坏了基本需求。因此,提出一种更为可靠的海量流量中自动选取有效流量的方法,就显得尤为重要。
发明内容
针对现有技术中存在的问题,本发明实施例的主要目的在于提供一种流量筛选方法及装置,提升海量流量筛选的准确性和完备性,有效降低人工分析处理成本。
为了实现上述目的,本发明实施例提供一种流量筛选方法,所述方法包括:
根据获取的多条流量数据的基本信息,确定各流量数据的类型;
根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据;
对标记后的流量数据进行流量回放,并利用代码覆盖率工具,得到标记后的流量数据在流量回放过程中流经的代码详细信息;
根据所述代码详细信息,确定测试流量集。
可选的,在本发明一实施例中,所述流量数据的类型包括HTTP类型及RPC类型。
可选的,在本发明一实施例中,所述根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据包括:
若所述流量数据的类型为HTTP类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的Head中,得到标记后的流量数据。
可选的,在本发明一实施例中,所述根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据包括:
若所述流量数据的类型为RPC类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的预留参数中,得到标记后的流量数据。
可选的,在本发明一实施例中,所述根据所述代码详细信息,利用贪心算法确定测试流量集包括:
根据各流量数据对应的代码详细信息中的代码行、代码类名及函数名,利用贪心算法,确定数据量最小且代码覆盖率最大的流量集合,将所述流量集合作为测试流量集。
本发明实施例还提供一种流量筛选装置,所述装置包括:
流量数据类型模块,用于根据获取的多条流量数据的基本信息,确定各流量数据的类型;
流量数据标记模块,用于根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据;
代码详细信息模块,用于对标记后的流量数据进行流量回放,并利用代码覆盖率工具,得到标记后的流量数据在流量回放过程中流经的代码详细信息;
流量数据筛选模块,用于根据所述代码详细信息,确定测试流量集。
可选的,在本发明一实施例中,所述流量数据的类型包括HTTP类型及RPC类型。
可选的,在本发明一实施例中,所述流量数据标记模块还用于若所述流量数据的类型为HTTP类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的Head中,得到标记后的流量数据。
可选的,在本发明一实施例中,所述流量数据标记模块还用于若所述流量数据的类型为RPC类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的预留参数中,得到标记后的流量数据。
可选的,在本发明一实施例中,所述流量数据筛选模块还用于根据各流量数据对应的代码详细信息中的代码行、代码类名及函数名,利用贪心算法,确定数据量最小且代码覆盖率最大的流量集合,将所述流量集合作为测试流量集。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
本发明通过对海量流量数据进行流量标记,得到流量所经路径记录,再通过贪心算法计算有效测试流量集,实现了对海量流量的筛选,很好地解决了流量回放采集的海量流量的冗余和不确定问题,也解决了流量数据的准确性和完备性,提高了流量数据的利用率,优化了测试流程和成本,提高流量筛选效率及准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种流量筛选方法的流程图;
图2为本发明实施例中应用流量筛选方法的系统工作示意图;
图3为本发明实施例一种流量筛选装置的结构示意图;
图4为本发明一实施例所提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供一种流量筛选方法及装置,可用于金融领域或其他领域,需要说明的是,本发明的流量筛选方法及装置可用于金融领域,也可用于除金融领域之外的任意领域,本发明的流量筛选方法及装置应用领域不做限定。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示为本发明实施例一种流量筛选方法的流程图,本发明实施例提供的流量筛选方法的执行主体包括但不限于计算机。图中所示方法包括:
步骤S1,根据获取的多条流量数据的基本信息,确定各流量数据的类型。
其中,可通过进行流量回放的应用,获取待回放的多条流量数据的基本信息,例如,HTTP类型的流量有url、head、body三要素,作为流量数据的基本信息。由此可以判断流量数据的类型,包括HTTP类型及RPC类型。
步骤S2,根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据。
具体的,如果流量数据的类型是HTTP式的流量,可按照对应的回放应用和uuid(随机唯一id)拼接成流量ID填写到HTTP的head中,作为标记后的流量数据,并调用httpclient访问对应的回放应用。如果流量数据的类型是RPC类型,同样的方式拼接成流量ID,填写到RPC预留参数中,作为标记后的流量数据,并调用泛化接口访问对应的回放应用。
步骤S3,对标记后的流量数据进行流量回放,并利用代码覆盖率工具,得到标记后的流量数据在流量回放过程中流经的代码详细信息。
其中,将标记后的流量数据进行流量回放至对应的回放应用中,利用代码覆盖率工具对回放应用进行流量监控,在HTTP或RPC接口进行拦截。具体的,可以采用jacoco的agent方式截取获取标记后的流量数据经过代码行的详细相关信息。将流量的ID和运行所经过的代码一一对应记录下来,这样所有标记后的流量数据将会获得所能经过的运行代码详情的相关信息,即代码详细信息。具体的,例如,流量ID:1,detail:{invoke:1、2、3、4、12,detai:1,2,3,4}。此外,对相关信息进行保存。
步骤S4,根据所述代码详细信息,确定测试流量集。
其中,根据所述代码详细信通过贪心算法计算局部最优解,获取最小数据最大覆盖率流量集合,作为测试流量集。具体的,经过记录各条流量数据对应的代码详细信息后,可知此条流量的经过了哪些代码行(如:流量ID:1,代码记录:[class.user 17、18、19、24)、xxxx]。根据贪心原则求全局最优解为局部最优解的和,其中,全局最优是覆盖程序的所有类的所有代码行,拆解成每个类经过所有类中代码的解是什么,再把问题对焦到类,能覆盖这这个类中代码的流量的最小集合是哪些。经过这个类的流量列出,继续往下贪经过行数最多的可能是最小流量集中的一条,以此为基准获取结果。获取到局部最优后在对比各个类的流量,流量ID相同即为重复,进行剔重,最后就得到了局部最优的近似全局最优解。也就是最小的流量集合[1、5、72、356等]覆盖所有的代码。由此形成测试流量集,可用于精准的流量回放测试和功能测试全覆盖数据集。
作为本发明的一个实施例,所述流量数据的类型包括HTTP类型及RPC类型。
其中,可通过进行流量回放的应用,获取待回放的多条流量数据的基本信息,例如,HTTP类型的流量有url、head、body三要素,作为流量数据的基本信息。由此可以判断流量数据的类型,包括HTTP类型及RPC类型。
具体的,超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
RPC是远程过程调用(Remote Procedure Call)的缩写形式。SAP系统RPC调用的原理其实很简单,有一些类似于三层构架的C/S系统,第三方的客户程序通过接口调用SAP内部的标准或自定义函数,获得函数返回的数据进行处理后显示或打印。
在本实施例中,根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据包括:若所述流量数据的类型为HTTP类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的Head中,得到标记后的流量数据。
其中,如果流量数据的类型是HTTP式的流量,可按照对应的回放应用和uuid(随机唯一id)拼接成流量ID填写到HTTP的head中,作为标记后的流量数据,并调用httpclient访问对应的回放应用。
在本实施例中,根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据包括:若所述流量数据的类型为RPC类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的预留参数中,得到标记后的流量数据。
其中,如果流量数据的类型是RPC类型,同样的方式拼接成流量ID,填写到RPC预留参数中,作为标记后的流量数据,并调用泛化接口访问对应的回放应用。
作为本发明的一个实施例,根据所述代码详细信息,利用贪心算法确定测试流量集包括:根据各流量数据对应的代码详细信息中的代码行、代码类名及函数名,利用贪心算法,确定数据量最小且代码覆盖率最大的流量集合,将所述流量集合作为测试流量集。
其中,根据所述代码详细信通过贪心算法计算局部最优解,获取最小数据最大覆盖率流量集合,作为测试流量集。具体的,经过记录各条流量数据对应的代码详细信息后,可知此条流量的经过了哪些代码行(如:流量ID:1,代码记录:[class.user 17、18、19、24)、xxxx]。根据贪心原则求全局最优解为局部最优解的和,其中,全局最优是覆盖程序的所有类的所有代码行,拆解成每个类经过所有类中代码的解是什么,再把问题对焦到类,能覆盖这这个类中代码的流量的最小集合是哪些。经过这个类的流量列出,继续往下贪经过行数最多的可能是最小流量集中的一条,以此为基准获取结果。获取到局部最优后在对比各个类的流量,流量ID相同即为重复,进行剔重,最后就得到了局部最优的近似全局最优解。也就是最小的流量集合[1、5、72、356等]覆盖所有的代码。由此形成测试流量集,可用于精准的流量回放测试和功能测试全覆盖数据集。
在本发明一具体实施例中,如图2所示为本发明实施例中应用流量筛选方法的系统工作示意图,图中所示系统具体包括:
流量存储模块(数据库):负责存储海量流量数据和其他程序代码及配置相关信息,程序运行逻辑的数据持久层。
流量回放模块,用于在回放流量在http头或者rpc的预留字段加上流量ID标志位,并进行流量回放到应用程序的工作。
基于jacoco的流量记录采集模块,用于回放流量进入程序代码后,跟踪其id所走程序代码路径并记录下来保存到后端。
后端接收存储模块,用于接收各个部署到程序中的jacoco采集的信息,将信息反序列化格式化后存入到流量存储模块中。
数据分析模块,用于将处理好的信息使用贪心算法计算出最少流量最大程序覆盖面流量组成有效流量集合。然后覆盖面信息和源代码模块信息比较。计算其覆盖面得出覆盖面报告。根据报告数据可添加数据使其完善至100%。
其中,本发明应用流量筛选方法的系统具体工作过程包括:基于httpclient和rpc泛化调用的流量染色方法,即通过通用接口发起方式在流量中添加专有标记流量ID,http流量接口可以将流量添加到报文头中,rpc可以添加到预留字段中,然后将流量回放采集的流量进行标记回放的。
此外,基于JAVA字节码技术实现的jacoco开源项目改造。采用jacoco的agent方式截取获取标记后的流量数据经过代码行的详细相关信息。将流量ID和运行所经过的代码一一对应记录下来,这样所有标记后的流量数据将会获得所能经过的运行代码详情的相关信息:如流量id:1,detail:{invoke:1、2、3、4、12,detai:1,2,3,4}。将相关信息保存到数据湖中。
其中,消息缓存队列是Jacoco使用一系列的不同的计数器来做覆盖率的度量计算。所有这些计数器都是从java的class文件中获取信息,这些class文件可以(可选)包含调试的信息在里面。即使在没有源码的情况下,这种方法也可以实时有效地对应用程序进行度量和分析。在大部分情况下,收集到的信息可以映射到源码,可视化到每一行代码的粒度。但这种方法还是有一些限制。这些class文件必须使用调试信息来编译,这样才可以计算行的覆盖率和提供出源码的高亮。
此外,字节码是编写的Java代码都是要被编译成字节码后才能放到JVM里执行的,而字节码一旦被加载到虚拟机中,就可以被解释执行。字节码文件(.class)就是普通的二进制文件,它是通过Java编译器生成的。而只要是文件就可以被改变,如果我们用特定的规则解析了原有的字节码文件,对它进行修改或者干脆重新定义。
进一步的,利用最小最优解算法,通过一个批量任务分析准备完毕后的流量数据,通过贪心算法找到能够覆盖尽量多的代码的局部最优解以获得全局最优解。目的在通过算法分析获得一个最小流量集合覆盖最大代码逻辑的数据集,并且能否分析出流量对于代码的整体覆盖情况。
其中,贪心算法具有贪心选择性质,具体的,所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每作一次贪心选择就将所求问题简化为规模更小的子问题。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。
本发明通过对海量流量数据进行流量标记,得到流量所经路径记录,再通过贪心算法计算有效测试流量集,实现了对海量流量的筛选,很好地解决了流量回放采集的海量流量的冗余和不确定问题,也解决了流量数据的准确性和完备性,提高了流量数据的利用率,优化了测试流程和成本,提高流量筛选效率及准确性。
如图3所示为本发明实施例一种流量筛选装置的结构示意图,图中所示装置包括:
流量数据类型模块10,用于根据获取的多条流量数据的基本信息,确定各流量数据的类型。
其中,可通过进行流量回放的应用,获取待回放的多条流量数据的基本信息,例如,HTTP类型的流量有url、head、body三要素,作为流量数据的基本信息。由此可以判断流量数据的类型,包括HTTP类型及RPC类型。
流量数据标记模块20,用于根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据
具体的,如果流量数据的类型是HTTP式的流量,可按照对应的回放应用和uuid(随机唯一id)拼接成流量ID填写到HTTP的head中,作为标记后的流量数据,并调用httpclient访问对应的回放应用。如果流量数据的类型是RPC类型,同样的方式拼接成流量ID,填写到RPC预留参数中,作为标记后的流量数据,并调用泛化接口访问对应的回放应用。
代码详细信息模块30,用于对标记后的流量数据进行流量回放,并利用代码覆盖率工具,得到标记后的流量数据在流量回放过程中流经的代码详细信息。
其中,将标记后的流量数据进行流量回放至对应的回放应用中,利用代码覆盖率工具对回放应用进行流量监控,在HTTP或RPC接口进行拦截。具体的,可以采用jacoco的agent方式截取获取标记后的流量数据经过代码行的详细相关信息。将流量的ID和运行所经过的代码一一对应记录下来,这样所有标记后的流量数据将会获得所能经过的运行代码详情的相关信息,即代码详细信息。具体的,例如,流量ID:1,detail:{invoke:1、2、3、4、12,detai:1,2,3,4}。此外,对相关信息进行保存。
流量数据筛选模块40,用于根据所述代码详细信息,确定测试流量集。
其中,根据所述代码详细信通过贪心算法计算局部最优解,获取最小数据最大覆盖率流量集合,作为测试流量集。具体的,经过记录各条流量数据对应的代码详细信息后,可知此条流量的经过了哪些代码行(如:流量ID:1,代码记录:[class.user 17、18、19、24)、xxxx]。根据贪心原则求全局最优解为局部最优解的和,其中,全局最优是覆盖程序的所有类的所有代码行,拆解成每个类经过所有类中代码的解是什么,再把问题对焦到类,能覆盖这这个类中代码的流量的最小集合是哪些。经过这个类的流量列出,继续往下贪经过行数最多的可能是最小流量集中的一条,以此为基准获取结果。获取到局部最优后在对比各个类的流量,流量ID相同即为重复,进行剔重,最后就得到了局部最优的近似全局最优解。也就是最小的流量集合[1、5、72、356等]覆盖所有的代码。由此形成测试流量集,可用于精准的流量回放测试和功能测试全覆盖数据集。
作为本发明的一个实施例,所述流量数据的类型包括HTTP类型及RPC类型。
在本实施例中,所述流量数据标记模块还用于若所述流量数据的类型为HTTP类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的Head中,得到标记后的流量数据。
在本实施例中,所述流量数据标记模块还用于若所述流量数据的类型为RPC类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的预留参数中,得到标记后的流量数据。
作为本发明的一个实施例,流量数据筛选模块还用于根据各流量数据对应的代码详细信息中的代码行、代码类名及函数名,利用贪心算法,确定数据量最小且代码覆盖率最大的流量集合,将所述流量集合作为测试流量集。
基于与上述一种流量筛选方法相同的申请构思,本发明还提供了上述一种流量筛选装置。由于该一种流量筛选装置解决问题的原理与一种流量筛选方法相似,因此该一种流量筛选装置的实施可以参见一种流量筛选方法的实施,重复之处不再赘述。
本发明通过对海量流量数据进行流量标记,得到流量所经路径记录,再通过贪心算法计算有效测试流量集,实现了对海量流量的筛选,很好地解决了流量回放采集的海量流量的冗余和不确定问题,也解决了流量数据的准确性和完备性,提高了流量数据的利用率,优化了测试流程和成本,提高流量筛选效率及准确性。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
如图4所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图4中所示的所有部件;此外,电子设备600还可以包括图4中没有示出的部件,可以参考现有技术。
如图4所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种流量筛选方法,其特征在于,所述方法包括:
根据获取的多条流量数据的基本信息,确定各流量数据的类型;
根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据;
对标记后的流量数据进行流量回放,并利用代码覆盖率工具,得到标记后的流量数据在流量回放过程中流经的代码详细信息;
根据所述代码详细信息,确定测试流量集。
2.根据权利要求1所述的方法,其特征在于,所述流量数据的类型包括HTTP类型及RPC类型。
3.根据权利要求2所述的方法,其特征在于,所述根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据包括:
若所述流量数据的类型为HTTP类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的Head中,得到标记后的流量数据。
4.根据权利要求2所述的方法,其特征在于,所述根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据包括:
若所述流量数据的类型为RPC类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的预留参数中,得到标记后的流量数据。
5.根据权利要求1所述的方法,其特征在于,所述根据所述代码详细信息,确定测试流量集包括:
根据各流量数据对应的代码详细信息中的代码行、代码类名及函数名,利用贪心算法,确定数据量最小且代码覆盖率最大的流量集合,将所述流量集合作为测试流量集。
6.一种流量筛选装置,其特征在于,所述装置包括:
流量数据类型模块,用于根据获取的多条流量数据的基本信息,确定各流量数据的类型;
流量数据标记模块,用于根据各流量数据的类型生成对应的流量ID,并将所述流量ID写入对应的流量数据中,得到标记后的流量数据;
代码详细信息模块,用于对标记后的流量数据进行流量回放,并利用代码覆盖率工具,得到标记后的流量数据在流量回放过程中流经的代码详细信息;
流量数据筛选模块,用于根据所述代码详细信息,确定测试流量集。
7.根据权利要求6所述的装置,其特征在于,所述流量数据的类型包括HTTP类型及RPC类型。
8.根据权利要求7所述的装置,其特征在于,所述流量数据标记模块还用于若所述流量数据的类型为HTTP类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的Head中,得到标记后的流量数据。
9.根据权利要求7所述的装置,其特征在于,所述流量数据标记模块还用于若所述流量数据的类型为RPC类型,则根据所述流量数据对应的流量回放应用生成流量ID,并将所述流量ID写入对应的流量数据的预留参数中,得到标记后的流量数据。
10.根据权利要求6所述的装置,其特征在于,所述流量数据筛选模块还用于根据各流量数据对应的代码详细信息中的代码行、代码类名及函数名,利用贪心算法,确定数据量最小且代码覆盖率最大的流量集合,将所述流量集合作为测试流量集。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110264759.0A CN113157559B (zh) | 2021-03-11 | 2021-03-11 | 流量筛选方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110264759.0A CN113157559B (zh) | 2021-03-11 | 2021-03-11 | 流量筛选方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157559A true CN113157559A (zh) | 2021-07-23 |
CN113157559B CN113157559B (zh) | 2024-02-09 |
Family
ID=76886613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110264759.0A Active CN113157559B (zh) | 2021-03-11 | 2021-03-11 | 流量筛选方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157559B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710542A (zh) * | 2022-03-23 | 2022-07-05 | 中国工商银行股份有限公司 | 一种基于rpc的泛化路由mock方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912783A (zh) * | 2019-12-18 | 2020-03-24 | 北京嘀嘀无限科技发展有限公司 | 流量回放方法、装置、电子设备及存储介质 |
CN112214395A (zh) * | 2020-09-02 | 2021-01-12 | 浙江大搜车融资租赁有限公司 | 基于流量数据的接口测试方法、电子装置及存储介质 |
-
2021
- 2021-03-11 CN CN202110264759.0A patent/CN113157559B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912783A (zh) * | 2019-12-18 | 2020-03-24 | 北京嘀嘀无限科技发展有限公司 | 流量回放方法、装置、电子设备及存储介质 |
CN112214395A (zh) * | 2020-09-02 | 2021-01-12 | 浙江大搜车融资租赁有限公司 | 基于流量数据的接口测试方法、电子装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114710542A (zh) * | 2022-03-23 | 2022-07-05 | 中国工商银行股份有限公司 | 一种基于rpc的泛化路由mock方法及装置 |
CN114710542B (zh) * | 2022-03-23 | 2023-12-26 | 中国工商银行股份有限公司 | 一种基于rpc的泛化路由mock方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113157559B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108319547B (zh) | 测试用例生成方法、装置和系统 | |
CN111045952B (zh) | 软件测试方法、流量回放装置、终端设备及可读存储介质 | |
US20200357007A1 (en) | Page data acquisition method, apparatus, server, electronic device and computer readable medium | |
CN107133174A (zh) | 测试用例代码自动生成装置与方法 | |
CN111949522B (zh) | 用户界面自动化测试方法及装置 | |
CN111782525B (zh) | Java方法远程调试方法及装置 | |
CN112463634A (zh) | 微服务架构下的软件测试方法及装置 | |
CN113268243B (zh) | 内存预测方法及装置、存储介质、电子设备 | |
CN112988601A (zh) | 测试脚本开发方法及装置 | |
CN111813629A (zh) | 一种Web页面的监控数据生成方法、装置及设备 | |
CN111694733A (zh) | 一种软件开发工具包sdk的api测试方法以及测试装置 | |
CN113157559B (zh) | 流量筛选方法及装置 | |
CN111324480A (zh) | 大型主机交易故障定位系统及方法 | |
CN114531345B (zh) | 流量比对结果存储方法、装置、设备及存储介质 | |
CN110837467B (zh) | 软件测试方法、装置以及系统 | |
CN113778890A (zh) | 代码测试方法、装置、电子设备及存储介质 | |
CN112463519A (zh) | 基于Flutter的页面使用行为数据无埋点统计方法、设备及存储介质 | |
CN116719736A (zh) | 一种用于测试软件界面的测试用例生成方法及装置 | |
CN111414168A (zh) | 基于思维导图的Web应用开发方法及装置、电子设备 | |
CN109995931B (zh) | 一种实现自动呼叫的方法及装置 | |
CN112860585B (zh) | 一种测试脚本断言生成方法及装置 | |
CN113626158A (zh) | 一种基于事件代理的埋点执行方法及装置 | |
CN113485919A (zh) | 测试方法、测试装置及计算机可读存储介质 | |
CN113051176B (zh) | 自动化测试数据的处理方法、装置、电子设备及存储介质 | |
CN113297095A (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 |