System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种云服务的测试方法及相关设备技术_技高网

一种云服务的测试方法及相关设备技术

技术编号:40647930 阅读:9 留言:0更新日期:2024-03-13 21:27
本申请提供了一种云服务的测试方法,包括:构建云服务的应用程序编程接口API知识图谱,该API知识图谱中包括API参数与资源对象的指代关系,然后根据API参数与资源对象的指代关系识别API依赖关系,接着根据API依赖关系对云服务进行测试,获得测试结果。该方法基于API参数与资源对象的指代关系识别API依赖关系,即使API参数名称不匹配,也能够基于指向的同一资源对象精准识别API依赖关系,提高了云服务测试的准确率,具有通用性,能够满足业务的需求。

【技术实现步骤摘要】

本申请涉及软件测试,尤其涉及一种云服务的测试方法、装置、计算设备集群、计算机可读存储介质、计算机程序产品。


技术介绍

1、随着云计算技术的发展,软件系统从单体架构逐渐演化到微服务架构。微服务架构指的是将大型复杂系统按功能或者业务需求垂直切分成更小的子系统,这些子系统以独立部署的子进程(也可以称作微服务)存在,它们之间通过轻量级的、跨语言的同步或者异步(消息)网络调用进行通信。例如,微服务之间可以通过表现层状态转换(representational state transfer,rest)进行通信,或者通过远程过程调用(remoteprocedure call,rpc)如grpc进行通信。

2、云服务是包括大量微服务如万级微服务的分布式系统。由测试人员主观进行测试设计的传统测试方法难以满足如此复杂的分布式系统漏洞测试。目前,业界正在探索采用智能化的模糊测试(fuzz testing,fuzzing)来充分挖掘分布式系统的漏洞。其中,模糊测试是将自动或半自动生成的随机数据输入到一个程序(如上述分布式系统)中,并监视程序异常,如崩溃、断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。

3、具体地,测试工具可以通过匹配云服务的应用程序接口(applicationprogramming interface,api)定义中的请求(request)参数名和响应(response)参数名,分析api依赖关系,并生成api依赖图。例如,api a中存在request参数名跟api b中response参数名完全一致,则api a依赖于api b。然后测试工具可以遍历api依赖图,按依赖顺序生成api执行序列,对api执行序列中的各个参数随机模糊,以发现漏洞。

4、然而,上述api参数命名无法定义统一标准,使用api参数名匹配方式进行测试的准确率较低,并且不具备通用性,难以满足业务需求。


技术实现思路

1、本申请提供了一种云服务的测试方法,该方法通过构建api知识图谱,基于api知识图谱中api参数与资源对象的指代关系,精准识别api依赖关系,由此提高了云服务测试的准确率,具有通用性,能够满足业务的需求。本申请还提供了对应的云服务的测试系统、计算设备集群、计算机可读存储介质以及计算机程序产品。

2、第一方面,本申请提供一种云服务的测试方法。该方法可以由云服务的测试系统执行。云服务的测试系统可以是软件系统,该软件系统可以部署在计算设备集群中,计算设备集群通过执行软件系统的程序代码,以执行本申请的云服务的测试方法。云服务的测试系统也可以是硬件系统,该硬件系统运行时,执行本申请的云服务的测试方法。在一些示例中,该硬件系统可以是具有云服务测试功能的计算设备集群。

3、具体地,云服务的测试系统构建云服务的应用程序编程接口api知识图谱,根据api知识图谱中api参数与资源对象的指代关系识别api依赖关系,然后根据api依赖关系对云服务进行测试,获得测试结果。

4、该方法中,云服务的测试系统基于api参数与资源对象的指代关系识别api依赖关系,即使api参数名称不匹配,也能够基于指向的同一资源对象精准识别api依赖关系,提高了云服务测试的准确率,具有通用性,能够满足业务的需求。

5、在一些可能的实现方式中,当api参数与资源对象的指代关系表征第一api的api请求参数与第二api的api响应参数指向相同的资源对象,则云服务的测试系统可以确定第一api依赖第二api。

6、相较于传统的基于api参数的名称识别api依赖关系的方式,该方法可以解决api参数命名风格不统一,导致api依赖关系漏识别或者误识别,提高了识别精度,进而提高云服务测试的准确度。

7、在一些可能的实现方式中,云服务的测试系统可以按照提取规则从云服务的数据源提取知识,例如,不同数据源的提取规则可以定义该数据源中需要提取的字段,云服务的测试系统从数据源中提取相应字段的字段值,从而提取结构化的知识,然后云服务的测试系统可以根据知识以及云服务的领域模型,构建api知识图谱。

8、该方法通过将云服务的各种结构化或非结构化的数据以api知识图谱的形式组织,可以从中挖掘api参数之间的联系,进而识别api依赖关系,为生成云服务的测试用例提供参考,进而为云服务的测试提供帮助。

9、在一些可能的实现方式中,云服务的测试系统还可以向用户呈现配置界面,然后接收用户通过配置界面配置的数据源的地址、提取规则和领域模型。相应地,云服务的测试系统根据数据源的地址访问数据源,根据提取规则从数据源提取知识。

10、该方法支持用户自定义云服务的数据源、提取规则或领域模型,如此可以实现对不同云服务的api知识图谱的构建,并基于该api知识图谱识别api依赖关系,进而根据api依赖关系实现对不同云服务的测试,具有通用性。

11、在一些可能的实现方式中,所述数据源包括所述云服务的api文档、需求分析库、特性设计库、产品文档库、服务日志库和测试用例库中的一种或多种。在一些示例中,数据源至少包括云服务的api文档,api文档中可以定义api参数。云服务的测试系统中可以从中提取api参数,构建api参数与资源对象的指代关系,从而为识别api依赖关系提供帮助。

12、在一些可能的实现方式中,云服务的测试系统可以根据api依赖关系,生成api执行序列,并对api执行序列进行变异,获得多个测试用例。多个测试用例中的每个测试用例对应一个api执行序列。然后,云服务的测试系统可以执行所述多个测试用例,获得测试结果。

13、在该方法中,云服务的测试系统不仅基于api依赖关系生成api执行序列,还通过对api执行序列进行变异,从而覆盖较多可能的测试场景,满足测试需求,保障测试效果。

14、在一些可能的实现方式中,云服务的测试系统可以根据api知识图谱进行接口规格分析和参数规格分析,获得接口规格分析结果和参数规格分析结果。相应地,云服务的测试系统根据接口规格分析结果和参数规格分析结果,结合变异策略,对api执行序列进行变异。例如,云服务的测试系统可以在参数规格内对api参数按步长增大或减小。

15、该方法通过结合接口规格分析结果、参数规格分析结果对api执行序列进行变异,可以使得变异的api更接近真实场景,能够模拟真实场景的效果,提高测试结果的可信度。

16、在一些可能的实现方式中,所述测试结果包括响应结果以及覆盖代码。云服务的测试系统可以对所述响应结果和覆盖代码进行分析,获得分析结果。分析结果可以包括上述依赖关系的回报价值和变异策略的回报价值。具体地,云服务的测试系统可以根据响应结果和代码覆盖计算得到的api执行序列的稀有度,进而计算出依赖关系的回报价值和变异策略的回报价值。

17、上述分析结果可以作为反馈信息,反馈至人工智能(artificial intelligence,ai)模型。云服务本文档来自技高网...

【技术保护点】

1.一种云服务的测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述API参数与资源对象的指代关系识别API依赖关系,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述构建云服务的应用程序编程接口API知识图谱,包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求3或4所述的方法,其特征在于,所述数据源包括所述云服务的API文档、需求分析库、特性设计库、产品文档库、服务日志库和测试用例库中的一种或多种。

6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述API依赖关系对所述云服务进行测试,获得测试结果,包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述测试结果包括响应结果以及覆盖代码,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述AI模型包括强化学习模型或贝叶斯模型。

10.根据权利要求6至9任一项所述的方法,其特征在于,所述方法还包括:

11.一种云服务的测试系统,其特征在于,所述系统包括:

12.根据权利要求11所述的系统,其特征在于,所述API依赖分析子系统具体用于:

13.根据权利要求11或12所述的系统,其特征在于,所述API依赖分析子系统具体用于:

14.根据权利要求13所述的系统,其特征在于,所述API依赖分析子系统还用于:

15.根据权利要求13或14所述的系统,其特征在于,所述数据源包括所述云服务的API文档、需求分析库、特性设计库、产品文档库、服务日志库和测试用例库中的一种或多种。

16.根据权利要求11至15任一项所述的系统,其特征在于,所述智能生成子系统具体用于:

17.根据权利要求16所述的系统,其特征在于,所述API依赖分析子系统还用于:

18.根据权利要求17所述的系统,其特征在于,所述测试结果包括响应结果以及覆盖代码,所述智能生成子系统还用于:

19.根据权利要求18所述的系统,其特征在于,所述AI模型包括强化学习模型或贝叶斯模型。

20.根据权利要求16至19任一项所述的系统,其特征在于,所述系统还包括:

21.一种计算设备集群,其特征在于,所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如权利要求1至10中任一项所述的方法。

22.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至10任一项所述的方法。

23.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至10任一项所述的方法。

...

【技术特征摘要】

1.一种云服务的测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述api参数与资源对象的指代关系识别api依赖关系,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述构建云服务的应用程序编程接口api知识图谱,包括:

4.根据权利要求3所述的方法,其特征在于,所述方法还包括:

5.根据权利要求3或4所述的方法,其特征在于,所述数据源包括所述云服务的api文档、需求分析库、特性设计库、产品文档库、服务日志库和测试用例库中的一种或多种。

6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述api依赖关系对所述云服务进行测试,获得测试结果,包括:

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

8.根据权利要求7所述的方法,其特征在于,所述测试结果包括响应结果以及覆盖代码,所述方法还包括:

9.根据权利要求8所述的方法,其特征在于,所述ai模型包括强化学习模型或贝叶斯模型。

10.根据权利要求6至9任一项所述的方法,其特征在于,所述方法还包括:

11.一种云服务的测试系统,其特征在于,所述系统包括:

12.根据权利要求11所述的系统,其特征在于,所述api依赖分析子系统具体用于:

13.根据权利要求11或12所述的系统,其特征在于,所述api依赖分析子系统具体用于:

14.根...

【专利技术属性】
技术研发人员:林嘉栋张森
申请(专利权)人:华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1