CN113778879B - 接口的模糊测试方法及装置 - Google Patents
接口的模糊测试方法及装置 Download PDFInfo
- Publication number
- CN113778879B CN113778879B CN202111066532.1A CN202111066532A CN113778879B CN 113778879 B CN113778879 B CN 113778879B CN 202111066532 A CN202111066532 A CN 202111066532A CN 113778879 B CN113778879 B CN 113778879B
- Authority
- CN
- China
- Prior art keywords
- data
- tampering
- interface
- service
- fuzzy test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010998 test method Methods 0.000 title claims abstract description 15
- 238000012360 testing method Methods 0.000 claims abstract description 219
- 238000004088 simulation Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002159 abnormal effect Effects 0.000 description 14
- 230000004044 response Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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/3676—Test management for coverage analysis
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
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)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种接口的模糊测试方法。该方法包括:通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据;通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。本申请可降低测试成本。
Description
技术领域
本申请涉及软件测试领域,尤其涉及一种接口的模糊测试方法及装置。
背景技术
移动终端中安装的app(应用程序)在遇到如下场景时经常会崩溃:1)机器负载过高,请求压力过大,计算任务复杂,导致服务不可用;2)某个依赖子服务宕机,服务Panic不可用;3)获取某个参数获取失败,得到一个NULL空值,导致服务崩溃;4)某个参数本来是int32,用户输入了int64的值,导致服务崩溃;5)接口返回超时,服务Panic不可用;6)输入/返回数据过大,导致服务Panic不可用。
现有技术中,为了减少app在使用时发生崩溃的几率,在app上线之前,会对app的接口进行模糊测试(fuzz testing)。通常,我们会采用AFL,SPIKE等测试工具对app进行模糊测试。然而,发明人发现,这些测试工具集成度高,无法应用于app的接口response(响应)的场景进行异常测试。当需要对这种场景进行测试时,通常需要通过用户手动构造各种异常数据;然后,将异常数据返回给app;最后,通过观察app是否发生异常来得到测试结果。这种测试方式的成本非常高,需要大量的人力投入才能实现。
发明内容
有鉴于此,现提供一种接口的模糊测试方法、装置、计算机设备及计算机可读存储介质,以解决现有的测试方式的成本非常高,需要大量的人力投入才能实现的问题。
本申请提供了一种接口的模糊测试方法,应用于模糊测试***中,所述模糊测试***包括模拟数据服务、模糊测试服务及待测试应用程序,所述方法包括:
通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;
通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据;
通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;
通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。
可选地,所述方法还包括:
通过所述模糊测试服务提供的配置界面配置所述目标接口的数据篡改策略。
可选地,所述数据篡改策略包括接口字段黑名单,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务判断所述实时数据中是否包含有接口字段黑名单中的字段数据;
若所述实时数据中包含有所述接口字段黑名单中的字段数据,则通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
可选地,所述数据篡改策略还包括多种篡改规则及每一种篡改规则对应的权重值,通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务根据各种篡改规则对应的权重值确定所述实时数据中包含的所述字段数据的篡改规则;
通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
可选地,所述目标接口的类型包括rpc接口及http接口,通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务确定所述目标接口的类型;
若所述目标接口为rpc接口,则通过所述模糊测试服务根据所述多种篡改规则中的预设篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据;
若所述目标接口为http接口,则通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
可选地,所述数据篡改策略包括接口字段白名单,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务对所述实时数据中不属于所述接口字段白名单的字段数据进行篡改,得到篡改后的数据。
可选地,所述实时数据包含多个不同字段的数据,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据中包含的多个不同字段的数据中的至少一个字段的数据进行篡改,得到篡改后的数据。
可选地,通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务包括:
通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据解析成预设格式的数据;
通过所述模拟数据服务将所述预设格式的数据发送给所述模糊测试服务;
所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序包括:
所述模拟数据服务将从所述模糊测试服务接收到的数据进行编码,得到具有原始数据格式的数据;
所述模拟数据服务将所述具有原始数据格式的数据返回给所述待测试应用程序。
本申请还提供了一种接口的模糊测试装置,应用于模糊测试***中,所述模糊测试***包括模拟数据服务、模糊测试服务及待测试应用程序,所述接口的模糊测试装置包括:
拦截模块,用于通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;
篡改模块,用于通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据;
返回模块,用于通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;
监测模块,用于通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。
本申请还提供了一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本实施例通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据;通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。本申请通过模糊测试服务根据模拟数据服务拦截到的实时数据智能生成各种异常数据,同时监控app是否崩溃,从而大大降低了app的接口异常测试的成本,且相比测试人员手动的测试方案,通过模糊测试服务中的种子数据(篡改数据)和数据篡改策略能够覆盖更多的异常场景,提高测试覆盖率。
附图说明
图1为本申请实施例的接口的模糊测试方法的环境示意图;
图2为本申请所述的接口的模糊测试方法的一种实施例的流程图;
图3为本申请一实施方式中通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据的步骤细化流程示意图;
图4为本申请一实施方式中通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据的步骤细化流程示意图;
图5为本申请一实施方式中通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据的步骤细化流程示意图;
图6为本申请所述的接口的模糊测试装置的一种实施例的程序模块图;
图7为本申请实施例提供的执行接口的模糊测试方法的计算机设备的硬件结构示意图。
具体实施方式
以下结合附图与具体实施例进一步阐述本申请的优点。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
图1示意性示出了根据本申请实施例的接口的模糊测试方法的应用环境示意图。在示例性的实施例中,该应用环境的***可包括模拟数据服务10、模糊测试服务20及待测试应用程序30及服务端40。其中,模拟数据服务10与待测试应用程序30形成无线或有线连接,模糊测试服务20与模拟数据服务10形成无线或有线连接,待测试应用程序30及服务端40形成无线或有线连接。在本实施例中,待测试应用程序30会通过目标接口向服务端40发送网络请求,服务端40接收到该网络请求后,会对该网络请求进行响应,并通过该目标接口将响应数据返回给待测试应用程序30。其中,在服务端通过目标接口将响应数据返回给待测试应用程序30的过程中,模拟数据服务10会拦截该响应数据,并将拦截到的响应数据发送给模糊测试服务20。模糊测试服务20在接收到该响应数据后,会对该响应数据进行篡改,并将篡改后的响应数据返回给模拟数据服务10。模拟数据服务10在接收到模糊测试服务20返回的数据后,会将该数据返回通过该目标接口返回给待测试应用程序30,从而实现对目标应用程序的目标接口的测试。
参阅图2,其为本申请一实施例的接口的模糊测试方法的流程示意图。本申请的接口的模糊测试方法可以应用于模糊测试***中,所述模糊测试***包括模拟数据服务、模糊测试服务及待测试应用程序,可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。从图中可以看出,本实施例中所提供的接口的模糊测试方法包括:
步骤S20、通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务。
具体地,所述模拟数据服务(mock server)是一种可以提供虚拟数据的服务,其可以在服务被调用方没有开发好的情况下,自己定义接口的返回数据。在本实施例中,所述模拟数据服务还可以拦截服务端通过目标接口返回的所述待测试应用程序的实时数据,并可以将该实时数据发送给所述模糊测试服务。
其中,待测试应用程序可以为各种类型的移动端APP,比如为视频类APP,游戏类APP,新闻类APP、直播类APP等,在本实施例中不作限定。
所述目标接口为所述待测试应用中需要进行模糊测试的接口,所述目标接口可以为所述待测试应用中包含的所有接口,也可以为部分接口,在本实施例中不作限定。在本实施例中,所述目标接口可以进行预先设定,比如,预先设定接口A、接口B为所述目标接口,则所述模拟数据服务只会拦截所述待测试应用程序的接口A及接口B的实时数据。
所述实时数据可以为所述待测试应用通过所述目标接口向服务端发送网络请求后,服务端根据该网络请求进行响应后返回的数据,所述实时数据也可以为所述待测试应用通过所述目标接口向服务端发送网络请求后,由mock服务端对该网络请求进行响应返回的mock数据。
所述模糊测试服务(fuzz serve)是一种可以构造异常测试数据的服务,其可以根据接收到的数据进行数据篡改,以将接收到的数据篡改为其他数据。
在一实施方式中,当所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据后,为了便于所述模糊测试服务进行数据篡改,所述模拟数据服务在拦截到所述实时数据后,会先将拦截到的实时数据解析成预设格式的数据。其中,所述预设格式可以为json格式,XML格式等,在本实施例中,所述预设格式优选为json格式。
在所述模拟数据服务完成将所述实时数据解析为预设格式的数据后,会将该预设格式的数据返回给所述模糊测试服务。
在一示例性的实施方式中,由于目标接口可能为http接口,也可能为rpc接口,而当目标接口为rpc接口时,此时拦截到的实时数据是二进制数据。因此,当目标接口为rpc接口时,所述模拟数据服务在将接收到的实时数据解析为预设格式的数据之前,需要对实时数据进行反序列化处理,之后才会将反序列化处理后得到的数据进行解析,实现将接收到的实时数据转换为预设格式的数据。
需要说明的是,本实施例中的模糊测试(fuzz testing)是一种软件测试技术。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。模糊测试常常用于检测软件或计算机***的安全漏洞。
步骤S21,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据。
具体地,所述数据篡改策略为用于对所述实时数据进行篡改的规则。在本实施例中,所述数据篡改策略可以为默认的策略,也可以为用户根据实际情况进行配置的策略。
在一示例性的实施方式中,为了后续模糊测试服务可以对接收到的数据进行篡改,所述模糊测试服务可以提供一个配置界面,以便用户可以通过所述模糊测试服务提供的配置界面配置所述目标接口的数据篡改策略。
在一具体场景中,用户可以首先通过该配置界面配置需要进行模糊测试的目标接口,目标接口对应的接口路径。之后,用户可以为目标接口配置数据篡改策略。
可以理解的是,用户可以为不同的目标接口配置相同的数据篡改策略,也可以为不同的目标接口配置不同的数据篡改策略,在本实施例中不作限定。
在本实施例中,为了简化用户对目标接口的数据篡改策略进行配置,在本实施例中的配置界面中可以提供默认的数据篡改策略供用户选择,当用户选定该默认的数据篡改策略后,用户将不需要再为每一个待进行模糊测试的目标接口一一配置对应的数据篡改策略。
其中,默认的数据篡改策略是在所述模糊测试服务预先设定的策略。在一实施方式中,该默认的数据篡改策略可以为当实时数据中包含有多个不同字段的数据时,可以随机选择一个或者多个字段的数据进行篡改。
在一示例性的实施方式中,当用户配置的数据篡改策略为所述默认的数据策略时,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据中包含的多个不同字段的数据中的至少一个字段的数据进行篡改,得到篡改后的数据。
作为示例,假设所述模糊测试服务从所述模拟数据服务接收到的实时数据包括如下所示的三个字段数据:
{"code":0,"msg":"success","data":{"url":"http:xxx.mp4"}}。
所述模糊测试服务在进行数据篡改时,可以随机中"code"字段、"msg"字段及"data"字段中选择一个字段的数据进行篡改,比如,选定对"code"字段的数据“0”进行篡改。所述模糊测试服务在进行数据篡改时,可以随机中"code"字段、"msg"字段及"data"字段中选择二个字段的数据进行篡改,比如,选定对"msg"字段及"data"字段的数据进行篡改,即可以对"msg"字段的数据"success"进行篡改,以及对"data"字段的数据{"url":"http:xxx.mp4"}进行篡改。所述模糊测试服务在进行数据篡改时,也可以同时对"code"字段、"msg"字段及"data"字段中的数据进行篡改,即可以对"code"字段的数据“0”进行篡改,对"msg"字段的数据"success"进行篡改,以及对"data"字段的数据{"url":"http:xxx.mp4"}进行篡改。
在本实施例中,在对选定的各个字段的数据进行篡改时,可以将待篡改的数据篡改为相同类型的数据,也可以将待篡改的数据篡改为不同类型的数据,其篡改规则也是默认的。比如,默认的篡改规则为只允许篡改为相同类型的数据,则在"code"字段的数据“0”进行篡改,由于"code"字段的数据“0”是整型数据,因此,在对"code"字段的数据“0”进行篡改时,只能将数据“0”篡改为其他整型数据,比如篡改为“2”。在本实施例中,在进行数据篡改时,可以从预设的种子库中随机选定或者按照顺序进行选定一个种子数据,并采用该选定的种子数据来对待篡改的数据进行篡改操作。其中,种子库中存储有多个用于做篡改操作的种子数据。
在一实施方式中,在对各个字段数据进行篡改时,也可以针对不同类型的目标接口设定不同的默认篡改规则,比如,针对http接口设定的篡改规则可以为允许篡改为相同类型的数据,也允许篡改为不同类型的数据;针对rpc接口设定的篡改规则可以为只允许篡改为相同类型的数据。
需要说明的是,http接口包括基于http协议的post和get接口。rpc(RemoteProcedure Call Protocol)接口是一种基于远程过程调用协议的接口。
在一示例性的实施方式中,所述数据篡改策略不是默认的篡改规则,而是所述数据篡改规则包括接口字段黑名单,参阅图3,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据可以包括:
步骤S30,通过所述模糊测试服务判断所述实时数据中是否包含有接口字段黑名单中的字段数据。
具体地,所述接口字段黑名单为用户通过配置界面针对目标接口所配置的需要进行篡改的字段。比如,接口字段黑名单中包括:"code"字段及"msg"字段,则表明需要对这两个字段的字段数据进行篡改。
在本实施例中,在模糊测试服务获取到所述实时数据之后,可以对该实时数据进行解析,以得到该实时数据中具体包括哪些字段。
作为示例,假设实时数据是{"code":0,"msg":"success","data":{"url":"http:xxx.mp4"}},模糊测试服务对这个实时数据进行解析,可以找到以下三个字段:"code":0,"msg":"success","data.url":"http:xxx.mp4"。在得到三个字段后,会将这三个字段与接口字段黑名单中包含的字段进行匹配,以判断是否存在与接口字段黑名单中的字段相匹配的字段。在判定出存在匹配的字段,则判定所述实时数据中包含有接口字段黑名单中的字段数据。
步骤S31,若所述实时数据中包含有所述接口字段黑名单中的字段数据,则通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
具体地,在判定出实时数据中包含有所述接口字段黑名单中的字段数据,则可以对字段数据进行篡改。
参照上述示例,可以判定出实时数据中包含有所述接口字段黑名单中的字段数据0及"success"。之后,所述模糊测试服务可以对这两个字段数据进行篡改,具体的篡改规则可以采用默认的篡改规则,也可以采用用户配置的篡改规则,在本实施例中不作限定。
作为示例,假设将字段数据0篡改为1,将字段数据"success"篡改为“succ”,则得到的篡改后的数据为{"code":1,"msg":"succ","data":{"url":"http:xxx.mp4"}}。
在一示例性的实施方式中,用户在通过配置界面针对目标接口进行数据篡改策略的配置时,还可以从可供配置的所有篡改规则中选择配置多种篡改规则及每一种篡改规则对应的权重值。
作为示例,假设总共有第一篡改规则、第二篡改规则、第三篡改规则及第四篡改规则可以供用户进行配置,则在具体配置时,用户可以配置第一篡改规则对应的第一权重值、第二篡改规则对应的第二权重值、第三篡改规则对应的第三权重值及第四篡改规则对应的第四权重值。可以理解的是,用户也可以只配置第一篡改规则对应的第一权重值、第二篡改规则对应的第二权重值。在本实施例中,用户具体配置的篡改规则数量在本实施例中不作限定。
其中,第一篡改规则可以为easy规则,代表只能对一个预设字段(例如"date"字段)的数据进行篡改,比如,当前有2个字段的数据进行篡改,分别为"code"字段及"date"字段的数据需要进行篡改,则在篡改规则为该第一规则时,最终只会对"date"字段的数据进行篡改。
第二篡改规则可以为sensitive规则,代表只做同类型的篡改,例如,int类型的字段的数据只能篡改成int类型的数据。
第三篡改规则可以为strong规则,代表强力篡改,可以做不同类型的篡改,例如,可以将string类型的字段的数据替换成数组,int等类型的数据。
第四篡改规则可以为bang规则,代表最强篡改,可以做不同数据格式的篡改及数据的添加及删除操作,例如,可以将json格式的数据篡改为非json的结构,二进制流数据等等,或者可以将待篡改的数据进行删除,或者添加一下字段数据等。
在本实施例中,用户在配置数据篡改策略时,可以配置各个篡改规则所对应的权重值,比如,分别配置第一权重值、第二权重值、第三权重值及第四权重值都为0.25,那么,代表在真实进行数据篡改操作时,每一种篡改规则都具有25%的概率被选中。同理,若配置第一权重值、第二权重值及第四权重值为0,而第三权重值为1时,则代表在真实进行数据篡改操作时,会100%选中第三篡改规则来对数据进行篡改操作。
参阅图4,通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据可以包括:步骤S40,通过所述模糊测试服务根据各种篡改规则对应的权重值确定所述实时数据中包含的所述字段数据的篡改规则;步骤S41,通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
具体地,在对数据进行篡改操作时,会先根据各种篡改规则对应的权重值来选定当前对字段数据进行篡改操作的篡改规则,假设,选定的篡改规则为第二篡改规则,则之后,所述模糊测试服务会对所有待篡改的字段数据做同类型的篡改操作,得到篡改后的字段数据。
需要说明的是,在进行篡改操作时,也是从对应的种子数据库中取出种子数据,并将该取出的种子数据来替换待篡改的数据的。
在一示例性的实施方式中,在进行数据篡改操作时,不同的类型的目标接口也可以采用不同的数据篡改策略。参阅图5,通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据可以包括:步骤S50,通过所述模糊测试服务确定所述目标接口的类型;步骤S51,若所述目标接口为rpc接口,则通过所述模糊测试服务根据所述多种篡改规则中的预设篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据;步骤S52,若所述目标接口为http接口,则通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
具体地,所述预设篡改规则预先从所有可供配置的篡改规则中选定的一种篡改规则,比如,所述预设篡改规则为第二篡改规则。
在进行数据篡改操作之前,可以先确定目标接口的类型,以确定当前的目标接口是rpc接口还是http接口。在本实施例中,只有目标接口为http接口,才能采用确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据;当目标接口为rpc接口时,不管确定的篡改规则是否为预设篡改规则,都会采用预设篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。也就是说,在本实施例中,对于rpc接口的实时数据,只能进行相同类型的数据篡改操作,对于http接口的实时数据,才能进行各种类型的数据篡改操作。
在一示例性的实施方式中,所述数据篡改策略不是默认的篡改规则,而是所述数据篡改规则包括接口字段白名单,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据可以包括:通过所述模糊测试服务对所述实时数据中不属于所述接口字段白名单的字段数据进行篡改,得到篡改后的数据。
具体地,所述接口字段白名单为用户通过配置界面针对目标接口所配置的不能进行篡改的字段。比如,接口字段白名单中包括:"code"字段,则表明不能对"code"字段的字段数据进行篡改。
在本实施例中,在模糊测试服务获取到所述实时数据之后,可以对该实时数据进行解析,以得到该实时数据中具体包括哪些字段。
作为示例,假设实时数据是{"code":0,"msg":"success","data":{"url":"http:xxx.mp4"}},模糊测试服务对这个实时数据进行解析,可以找到以下三个字段:"code":0,"msg":"success","data.url":"http:xxx.mp4"。在得到三个字段后,会将这三个字段与接口字段白名单中包含的字段进行匹配,以判断是否存在与接口字段白名单中的字段相匹配的字段。在判定出存在匹配的字段,则判定所述实时数据中包含有接口字段白名单中的字段数据。
在判定出实时数据中不包含有所述接口字段白名单中的字段数据,则可以对所有字段的字段数据进行篡改。在判定出实时数据中包含有所述接口字段白名单中的字段数据,则可以对所述实时数据中不属于所述接口字段白名单的字段数据进行篡改。
参照上述示例,可以判定出实时数据中包含有所述接口字段白名单中的字段数据0。之后,所述模糊测试服务除了不能对字段数据0进行篡改之外,对其他两个字段的字段数据都可以进行篡改,具体的篡改规则可以采用默认的篡改规则,也可以采用用户配置的篡改规则,在本实施例中不作限定。
作为示例,假设将字段数据"success"篡改为“succ”,则得到的篡改后的数据为{"code":0,"msg":"succ","data":{"url":"http:xxx.mp4"}}。
需要说明的是,在本实施例中进行数据篡改操作时,也可以按照上述实施例中对包含有接口字段黑名单的字段数据的篡改规则对待篡改数据进行篡改操作,在本实施例中不再赘述。
步骤S22,通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序。
具体地,所述模糊测试服务在完成数据的篡改操作之后,会将篡改后得到的数据返回给模拟数据服务,以便模拟数据服务可以将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序,实现对应用程序的目标接口进行模糊测试。
在一示例性的实施方式中,当所述模拟数据服务在拦截到实时数据后,对该实时数据进行了格式转换操作,即将所述实时数据转换成预设格式的数据,通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志则所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序包括:所述模拟数据服务将从所述模糊测试服务接收到的数据进行编码,得到具有原始数据格式的数据;所述模拟数据服务将所述具有原始数据格式的数据返回给所述待测试应用程序。
具体地,所述原始数据格式为模拟数据服务拦截到的实时数据的初始数据格式。假设实时数据的初始数据格式为非json格式,而模拟数据服务在拦截到该实时数据之后,将其转换成了json格式,则当模拟数据服务将待返回的数据返回给应用程序时,则需要将待返回的数据编码为初始的非json格式后,才可以将该数据返回给所述待测试应用程序。
步骤S23,通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。
具体地,待测试应用程序发送崩溃时,会上报异常日志到日志中心。本实施例中,所述模糊测试服务可以通过实时监测日志中心中是否存在该异常日志的方式来监测所述待应用程序是否发生崩溃,若监测到所述待测试应用程序发生崩溃,可以生成崩溃日志。
其中,所述崩溃日志中可以记录目标接口信息、异常数据信息以及错误堆栈等,即记录当前是哪条数据,哪一个接口,以及具体的错误堆栈是什么。
本实施例通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据;通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。本申请通过模糊测试服务根据模拟数据服务拦截到的实时数据智能生成各种异常数据,同时监控app是否崩溃,从而大大降低了app的接口异常测试的成本,且相比测试人员手动的测试方案,通过模糊测试服务中的种子数据(篡改数据)和数据篡改策略能够覆盖更多的异常场景,提高测试覆盖率。
参阅图6所示,是本申请接口的模糊测试装置60一实施例的程序模块图。
本实施例中,所述接口的模糊测试装置60应用于模糊测试***中,所述模糊测试***包括模拟数据服务、模糊测试服务及待测试应用程序,所述接口的模糊测试装置60包括一系列的存储于存储器上的计算机程序指令,当该计算机程序指令被处理器执行时,可以实现本申请各实施例的接口的模糊测试功能。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,接口的模糊测试装置60可以被划分为一个或多个模块,具体可以划分的模块如下:
拦截模块61,用于通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;
篡改模块62,用于通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据;
返回模块63,用于通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;
监测模块64,用于通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。
在一示例性的实施方式中,接口的模糊测试装置60还包括配置模块。
所述配置模块,用于通过所述模糊测试服务提供的配置界面配置所述目标接口的数据篡改策略。
在一示例性的实施方式中,所述数据篡改策略包括接口字段黑名单,篡改模块62,还用于通过所述模糊测试服务判断所述实时数据中是否包含有接口字段黑名单中的字段数据;若所述实时数据中包含有所述接口字段黑名单中的字段数据,则通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
在一示例性的实施方式中,所述数据篡改策略包括接口字段白名单,篡改模块62,还用于通过所述模糊测试服务对所述实时数据中不属于所述接口字段白名单的字段数据进行篡改,得到篡改后的数据。
在一示例性的实施方式中,所述实时数据包含多个不同字段的数据,篡改模块62,还用于通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据中包含的多个不同字段的数据中的至少一个字段的数据进行篡改,得到篡改后的数据。
在一示例性的实施方式中,所述数据篡改策略还包括多种篡改规则及每一种篡改规则对应的权重值,篡改模块62,还用于通过所述模糊测试服务根据各种篡改规则对应的权重值确定所述实时数据中包含的所述字段数据的篡改规则;通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
在一示例性的实施方式中,所述目标接口的类型包括rpc接口及http接口,篡改模块62,还用于通过所述模糊测试服务确定所述目标接口的类型;若所述目标接口为rpc接口,则通过所述模糊测试服务根据所述多种篡改规则中的预设篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据;若所述目标接口为http接口,则通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
在一示例性的实施方式中,拦截模块61,还用于通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据解析成预设格式的数据;通过所述模拟数据服务将所述预设格式的数据发送给所述模糊测试服务。
返回模块63,还用于所述模拟数据服务将从所述模糊测试服务接收到的数据进行编码,得到具有原始数据格式的数据;所述模拟数据服务将所述具有原始数据格式的数据返回给所述待测试应用程序。
本实施例通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据;通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志。本申请通过模糊测试服务根据模拟数据服务拦截到的实时数据智能生成各种异常数据,同时监控app是否崩溃,从而大大降低了app的接口异常测试的成本,且相比测试人员手动的测试方案,通过模糊测试服务中的种子数据(篡改数据)和数据篡改策略能够覆盖更多的异常场景,提高测试覆盖率。
图7示意性示出了根据本申请实施例的适于实现接口的模糊测试方法的计算机设备7的硬件架构示意图。本实施例中,计算机设备7是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,计算机设备7至少包括但不限于:可通过***总线相互通信链接存储器120、处理器121、网络接口122。其中:
存储器120至少包括一种类型的计算机可读存储介质,该可读存储介质可以是易失性的,也可以是非易失性的,具体而言,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器120可以是计算机设备7的内部存储模块,例如该计算机设备7的硬盘或内存。在另一些实施例中,存储器120也可以是计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器120还可以既包括计算机设备7的内部存储模块也包括其外部存储设备。本实施例中,存储器120通常用于存储安装于计算机设备7的操作***和各类应用软件,例如接口的模糊测试方法的程序代码等。此外,存储器120还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器121在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它接口的模糊测试芯片。该处理器121通常用于控制计算机设备7的总体操作,例如执行与计算机设备7进行数据交互或者通信相关的控制和处理等。本实施例中,处理器121用于运行存储器120中存储的程序代码或者处理数据。
网络接口122可包括无线网络接口或有线网络接口,该网络接口122通常用于在计算机设备7与其它计算机设备之间建立通信链接。例如,网络接口122用于通过网络将计算机设备7与外部终端相连,在计算机设备7与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯***(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图7仅示出了具有部件120~122的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器120中的接口的模糊测试方法可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器121)所执行,以完成本申请。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的接口的模糊测试方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作***和各类应用软件,例如实施例中的接口的模糊测试方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要筛选出其中的部分或者全部模块来实现本申请实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行篡改,或者对其中部分或者全部技术特征进行等同替换;而这些篡改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种接口的模糊测试方法,应用于模糊测试***中,其特征在于,所述模糊测试***包括模拟数据服务、模糊测试服务及待测试应用程序,所述方法包括:
通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;
通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据,所述数据篡改策略为默认的策略或用户通过配置界面配置的策略,所述数据篡改策略还包括多种篡改规则及每一种篡改规则对应的权重值;
通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;
通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志;
通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务确定所述目标接口的类型,所述目标接口的类型包括rpc接口及http接口;
若所述目标接口为rpc接口,则通过所述模糊测试服务根据多种篡改规则中的预设篡改规则对所述实时数据进行篡改,得到篡改后的数据;
若所述目标接口为http接口,则通过所述模糊测试服务根据各种篡改规则对应的权重值确定的篡改规则对所述实时数据进行篡改,得到篡改后的数据。
2.根据权利要求1所述的接口的模糊测试方法,其特征在于,所述方法还包括:
通过所述模糊测试服务提供的配置界面配置所述目标接口的数据篡改策略。
3.根据权利要求1所述的接口的模糊测试方法,其特征在于,所述数据篡改策略包括接口字段黑名单,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务判断所述实时数据中是否包含有接口字段黑名单中的字段数据;
若所述实时数据中包含有所述接口字段黑名单中的字段数据,则通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
4.根据权利要求3所述的接口的模糊测试方法,其特征在于,通过所述模糊测试服务对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务根据各种篡改规则对应的权重值确定所述实时数据中包含的所述字段数据的篡改规则;
通过所述模糊测试服务根据确定的所述篡改规则对所述实时数据中包含的所述字段数据进行篡改,得到篡改后的数据。
5.根据权利要求1所述的接口的模糊测试方法,其特征在于,所述数据篡改策略包括接口字段白名单,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务对所述实时数据中不属于所述接口字段白名单的字段数据进行篡改,得到篡改后的数据。
6.根据权利要求1所述的接口的模糊测试方法,其特征在于,所述实时数据包含多个不同字段的数据,通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据包括:
通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据中包含的多个不同字段的数据中的至少一个字段的数据进行篡改,得到篡改后的数据。
7.根据权利要求6所述的接口的模糊测试方法,其特征在于,通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务包括:
通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据解析成预设格式的数据;
通过所述模拟数据服务将所述预设格式的数据发送给所述模糊测试服务;
所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序包括:
所述模拟数据服务将从所述模糊测试服务接收到的数据进行编码,得到具有原始数据格式的数据;
所述模拟数据服务将所述具有原始数据格式的数据返回给所述待测试应用程序。
8.一种接口的模糊测试装置,应用于模糊测试***中,其特征在于,所述模糊测试***包括模拟数据服务、模糊测试服务及待测试应用程序,所述接口的模糊测试装置包括:
拦截模块,用于通过所述模拟数据服务拦截所述待测试应用程序的目标接口的实时数据,并将所述实时数据发送给所述模糊测试服务;
篡改模块,用于通过所述模糊测试服务根据所述目标接口对应的数据篡改策略对所述实时数据进行篡改,得到篡改后的数据,所述数据篡改策略为默认的策略或用户通过配置界面配置的策略,所述数据篡改策略还包括多种篡改规则及每一种篡改规则对应的权重值;
返回模块,用于通过所述模糊测试服务将所述篡改后的数据返回给所述模拟数据服务,以使所述模拟数据服务将从所述模糊测试服务接收到的数据通过所述目标接口返回给所述待测试应用程序;
监测模块,用于通过所述模糊测试服务监测所述待测试应用程序是否发生崩溃,若发生崩溃,则生成崩溃日志;
篡改模块,还用于通过所述模糊测试服务确定所述目标接口的类型,所述目标接口的类型包括rpc接口及http接口;若所述目标接口为rpc接口,则通过所述模糊测试服务根据多种篡改规则中的预设篡改规则对所述实时数据进行篡改,得到篡改后的数据;若所述目标接口为http接口,则通过所述模糊测试服务根据各种篡改规则对应的权重值确定的篡改规则对所述实时数据进行篡改,得到篡改后的数据。
9.一种计算机设备,所述计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111066532.1A CN113778879B (zh) | 2021-09-13 | 2021-09-13 | 接口的模糊测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111066532.1A CN113778879B (zh) | 2021-09-13 | 2021-09-13 | 接口的模糊测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113778879A CN113778879A (zh) | 2021-12-10 |
CN113778879B true CN113778879B (zh) | 2024-03-08 |
Family
ID=78842676
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111066532.1A Active CN113778879B (zh) | 2021-09-13 | 2021-09-13 | 接口的模糊测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113778879B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116647845A (zh) * | 2022-02-15 | 2023-08-25 | 中兴通讯股份有限公司 | 空口协议安全漏洞的挖掘方法、装置、移动终端 |
CN116303101B (zh) * | 2023-05-19 | 2023-08-15 | 建信金融科技有限责任公司 | 测试案例生成方法、装置和设备 |
CN116662207A (zh) * | 2023-07-24 | 2023-08-29 | 北京银联金卡科技有限公司 | 一种针对区块链网络进行模糊测试的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108268375A (zh) * | 2018-01-12 | 2018-07-10 | 深圳壹账通智能科技有限公司 | 应用程序测试方法、装置、计算机设备和存储介质 |
US10452522B1 (en) * | 2015-06-19 | 2019-10-22 | Amazon Technologies, Inc. | Synthetic data generation from a service description language model |
US10489224B1 (en) * | 2018-07-30 | 2019-11-26 | International Business Machines Corporation | Managing application programming interface requests |
CN110730107A (zh) * | 2019-09-02 | 2020-01-24 | 深圳壹账通智能科技有限公司 | 测试数据生成方法、装置、计算机设备和存储介质 |
CN111309620A (zh) * | 2020-02-24 | 2020-06-19 | 腾讯科技(成都)有限公司 | 一种游戏协议测试方法、装置、电子设备和存储介质 |
CN112565026A (zh) * | 2021-02-20 | 2021-03-26 | 支付宝(杭州)信息技术有限公司 | 测试帧的生成方法、装置及设备 |
CN112685301A (zh) * | 2020-12-28 | 2021-04-20 | 浙江国利网安科技有限公司 | 模糊测试方法及装置 |
CN112948232A (zh) * | 2019-12-10 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 一种游戏协议测试方法、装置、电子设备和存储介质 |
CN113111351A (zh) * | 2020-01-10 | 2021-07-13 | 中国电信股份有限公司 | 测试方法、装置和计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529699B2 (en) * | 2013-06-11 | 2016-12-27 | Wipro Limited | System and method for test data generation and optimization for data driven testing |
US11321219B2 (en) * | 2020-01-13 | 2022-05-03 | Microsoft Technology Licensing, Llc | Intelligently fuzzing data to exercise a service |
-
2021
- 2021-09-13 CN CN202111066532.1A patent/CN113778879B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10452522B1 (en) * | 2015-06-19 | 2019-10-22 | Amazon Technologies, Inc. | Synthetic data generation from a service description language model |
CN108268375A (zh) * | 2018-01-12 | 2018-07-10 | 深圳壹账通智能科技有限公司 | 应用程序测试方法、装置、计算机设备和存储介质 |
US10489224B1 (en) * | 2018-07-30 | 2019-11-26 | International Business Machines Corporation | Managing application programming interface requests |
CN110730107A (zh) * | 2019-09-02 | 2020-01-24 | 深圳壹账通智能科技有限公司 | 测试数据生成方法、装置、计算机设备和存储介质 |
WO2021042914A1 (zh) * | 2019-09-02 | 2021-03-11 | 深圳壹账通智能科技有限公司 | 测试数据生成方法、装置、计算机设备和存储介质 |
CN112948232A (zh) * | 2019-12-10 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 一种游戏协议测试方法、装置、电子设备和存储介质 |
CN113111351A (zh) * | 2020-01-10 | 2021-07-13 | 中国电信股份有限公司 | 测试方法、装置和计算机可读存储介质 |
CN111309620A (zh) * | 2020-02-24 | 2020-06-19 | 腾讯科技(成都)有限公司 | 一种游戏协议测试方法、装置、电子设备和存储介质 |
CN112685301A (zh) * | 2020-12-28 | 2021-04-20 | 浙江国利网安科技有限公司 | 模糊测试方法及装置 |
CN112565026A (zh) * | 2021-02-20 | 2021-03-26 | 支付宝(杭州)信息技术有限公司 | 测试帧的生成方法、装置及设备 |
Non-Patent Citations (5)
Title |
---|
BigFuzz: efficient fuzz testing for data analytics using framework abstraction Authors:;Qian Zhang等;35th IEEE/ACM International Conference on Automated Software Engineering;722-733 * |
RESTful_API接口Fuzz测试关键技术研究;于海峰;中国优秀硕士学位论文全文数据库 信息科技辑;I138-323 * |
基于HTTP代理的模糊测试技术研究;孙歆;姚一杨;卢新岱;刘雪娇;吴永涵;;网络与信息安全学报(第02期);75-86 * |
基于网络协议的模糊测试工具设计;赵鑫;巫忠跃;易冬阳;付枭;;通信技术(第11期);2819-2828 * |
模糊测试技术研究综述;张雄等;计算机科学;1-8、26 * |
Also Published As
Publication number | Publication date |
---|---|
CN113778879A (zh) | 2021-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113778879B (zh) | 接口的模糊测试方法及装置 | |
CN111459794B (zh) | 通信网络测试方法、装置、计算机设备和存储介质 | |
CN105303112B (zh) | 组件调用漏洞的检测方法及装置 | |
CN107436844B (zh) | 一种接口用例合集的生成方法及装置 | |
CN110046073B (zh) | 一种日志采集方法及装置、设备、存储介质 | |
CN112988485B (zh) | 电力物联网设备模拟测试方法及装置 | |
CN108241580B (zh) | 客户端程序的测试方法及终端 | |
CN106209503B (zh) | Rpc接口测试方法及*** | |
CN107800783B (zh) | 远程监控服务器的方法及装置 | |
US20180357143A1 (en) | Testing computing devices | |
CN105306414A (zh) | 端口漏洞的检测方法、装置及*** | |
CN102123058A (zh) | 一种对网络协议解码器进行测试的测试设备和方法 | |
CN113542029A (zh) | 一种网络设备的业务稳定性测试方法、***及工具 | |
CN111611140A (zh) | 埋点数据的上报验证方法、装置、电子设备及存储介质 | |
CN111901147A (zh) | 一种网络访问的控制方法和装置 | |
CN114168429A (zh) | 报错分析方法、装置、计算机设备及存储介质 | |
CN112699034B (zh) | 虚拟登录用户构建方法、装置、设备及存储介质 | |
US20090161559A1 (en) | Error identification in a computer-based network | |
CN111723017A (zh) | ***容量测试方法、装置、计算机设备及存储介质 | |
CN108307414A (zh) | 应用程序的Wi-Fi连接异常处理方法、装置、终端及存储介质 | |
CN114003918A (zh) | 一种云安全运营方法、装置、电子设备以及存储介质 | |
CN105827447A (zh) | 一种业务报警方法和装置 | |
CN111107552A (zh) | 一种识别伪基站的方法及*** | |
CN110519293A (zh) | 一种报文测试方法、装置、设备及存储介质 | |
CN113395235B (zh) | 一种IoT***远程测试方法、***和设备 |
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 |