一种基于接口自动生成的IAM接口权限验证方法和装置制造方法及图纸

技术编号:33119369 阅读:54 留言:0更新日期:2022-04-17 00:15
本发明专利技术提供一种基于接口自动生成的IAM接口权限验证方法,该方法包括:根据符合结构化数据格式的接口文档自动生成接口;根据接口文档中对接口入参的定义构造对应数据类型的随机接口入参;结合随机参数遍历所有自动生成的接口完成接口调用;将服务端返回的接口响应与所配置的接口权限策略对比,验证对应接口的权限是否与预期一致,从而验证当前测试用户对接口是否具有访问权限。本发明专利技术实现了接口权限验证的全流程自动化,整个接口验证流程不需要手工操作,可有效减少验证测试的人力投入,提升测试效率;当接口发生变更时,只需要提供对应的接口文档即可适配最新的接口完成验证测试,不需要额外的维护成本。不需要额外的维护成本。不需要额外的维护成本。

【技术实现步骤摘要】
一种基于接口自动生成的IAM接口权限验证方法和装置


[0001]本专利技术涉及接口权限验证
,尤其涉及一种基于接口自动生成的IAM接口权限验证方法和装置。

技术介绍

[0002]IAM(identity access management)即身份识别与访问管理。在云计算
,IAM的总体建设目标是配合实现企业IT治理,实现对云资源的集中授权(Authorization),可根据用户所在部门或者角色授权其可访问的资源范围,做到一次配置,全局生效;在客户购买云计算产品后,通过IAM权限配置实现对不同用户分配不同的产品服务权限等需求。
[0003]在云计算领域,IAM需要管理的接口数量庞大,涉及的权限策略组合场景复杂,在进行IAM功能软件测试时,测试任务量繁重,迭代测试时重复工作量较大,有必要通过自动化测试技术减轻测试人员执行IAM功能测试的压力。
[0004]在传统的接口自动化测试方案中,自动化测试编写的接口代码数量随着产品接口数量的增加而同步增加,当产品接口变动时,自动化接口维护成本较高。基于接口自动生成的测试方案以接口文档作为开发和测试之间衔接的桥梁,可有效解决上述问题。
[0005]接口自动生成的自动化接口测试方案难点主要在于适配不同的接口参数类型,针对不同的参数类型包括多种参数类型嵌套的复杂数据结构,测试框架须能准确适配,并能构造出对应类型的随机参数。
[0006]中国专利文献CN113064585提供了一种基于JSON模式的实时报文接口自动生成方法。该方法根据传输协议定义数据类型,生成数据结构体;将数据结构体转换成JSON Schema文件;对生成的JSON Schema文件进行校验;将经校验后的JSON Schema文件转化为QTui文件;利用Qtui文件生成静态报文接口。该方法主要解决了接口测试的验证不够直观和充分、从而影响接口开发和联试效率的问题。该专利只是通过结构化的数据来优化接口的维护,提升接口测试交互性,并未涉及接口的自动测试。
[0007]中国专利文献CN202110458096.6提供了一种接口自动化测试的方法及装置,涉及自动化测试领域,可应用于金融领域和其他领域,所述方法包含:通过负载均衡服务器获得有效交易报文,对所述有效交易报文按预设关键字段拆分提取后,通过预设格式拼接生成测试数据;根据用户选择的交易场景生成测试请求,根据所述测试请求解析获得对应的字段信息;根据所述字段信息匹配所述测试数据,根据匹配结果中的所述测试数据生成交易请求,将所述交易请求提供至负载均衡服务器进行接口测试。该专利通过抓包的方式获取接口信息,再来构造接口请求完成接口测试,此类方法依赖于历史的接口请求数据,当产品的接口发生变化时,需要对该接口执行过调用该方法才能抓包分析接口信息,有一定的局限性。
[0008]中国专利文献CN202110341348.7提供了一种基于日志分析的接口测试方法及装置,可应用于金融领域,方法包括:从获取的应用程序日志中抽取接口日志;将接口日志的格式进行转换并解析接口日志后,将接口日志加载至MySQL数据库中;通过预先建立的接口
检查模型对加载至MySQL数据库中的接口日志的进行检查测试。该方法对海量应用日志进行清洗、抽取,然后建立数据仓库,以父子节点的模式进行数据加载,通过梳理接口核对规则建立接口检查模型,对数据仓库中的数据进行分析生成接口检查结果,实时判断检查结果与预期结果是否一致。该专利技术接口自动化测试领域,但是仍受限于接口的历史执行记录,服务器上需要有接口的执行记录,才能完成接口的解析和测试。
[0009]以上三项专利文献都涉及软件接口测试技术,均旨在通过自动化测试技术来提升接口测试的效率;目前,针对云计算IAM接口权限测试领域,并没有高效、成熟的自动化测试解决方案。
[0010]因此,如何提供一种接口权限的自动化验证方法,实现接口权限快速验证的同时降低接口开发和维护成本,成为亟待解决的技术问题。

技术实现思路

[0011]有鉴于此,本专利技术提供一种基于接口自动生成的IAM接口权限验证方法和装置以及应用,旨在解决IAM接口测试场景组合多且复杂、手工测试工作量繁重的问题。
[0012]一方面,本专利技术提供一种接口自动生成方法,包括:根据符合结构化数据格式的接口文档自动生成接口方法名称;根据接口文档中对接口入参的描述定义接口方法的入参结构体;根据接口文档中对接口返回值的描述定义接口方法的返回值结构体。
[0013]进一步地,所述根据符合结构化数据格式的接口文档自动生成接口方法名称,包括:将json文件转化为json格式的结构化接口数据;接口自动生成框架加载json格式的结构化接口数据,根据每个接口的http method、uri、input_shape和output_shape自动生成对应的接口函数;采用模块名+uri字段+http method字段对接口函数的命名唯一指定,每个接口函数对应一个http请求。
[0014]进一步地,所述根据接口文档中对接口入参(input_shape)的描述定义接口方法的入参结构体,包括:接口测试框架根据接口入参数据类型的不同,定义不同的数据格式,每一种数据格式为一个类,每个类包含一个example方法或包含members和example两个方法。
[0015]进一步地,所述根据接口文档中对接口入参的描述定义接口方法的入参结构体,还包括:当接口入参为整数类型的数据,采用IntegerShape作为数据格式的描述,IntegerShape类的example方法通过random.randint函数生成随机整型参数;当接口入参为小数类型的数据,采用FloatShape作为数据格式的描述,FloatShape类的example方法通过random.uniform函数生成随机浮点型参数;当接口入参为布尔类型的数据,采用BoolShape作为数据格式的描述,BoolShape类的example方法通过random.choice函数生成随机True / False值;当接口入参为字符串类型的数据,采用StringShape作为数据格式的描述,StringShape类的example方法通过random.choice函数生成随机字符串参数;
当接口入参为列表类型的数据,采用ListShape作为数据格式的描述;members方法用于描述列表每个子元素的数据类型,并最终将每一子元素对应到一种简单数据类型;example方法根据列表元素的数据类型通过random函数生成对应类型的随机参数;当接口入参为字典类型的数据,采用DictShape作为数据格式的描述;members方法用于描述字典每个子元素的数据类型,并最终将每一子元素对应到一种简单数据类型;example方法根据字典key

value的数据类型通过random函数生成对应类型的随机参数;当接口入参为结构体类型,采用StructureShape作为数据格式的描述;members方法用于描述结构体类型的每个子元素本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种接口自动生成方法,其特征在于,所述接口自动生成方法包括:根据符合结构化数据格式的接口文档自动生成接口方法名称;根据接口文档中对接口入参的描述定义接口方法的入参结构体;根据接口文档中对接口返回值的描述定义接口方法的返回值结构体。2.根据权利要求1所述的接口自动生成方法,其特征在于,所述根据符合结构化数据格式的接口文档自动生成接口方法名称,包括:将json文件转化为json格式的结构化接口数据;接口自动生成框架加载json格式的结构化接口数据,根据每个接口的http method、uri、input_shape和output_shape自动生成对应的接口函数;采用模块名+uri字段+http method字段对接口函数的命名唯一指定,每个接口函数对应一个http请求。3.根据权利要求1所述的接口自动生成方法,其特征在于,所述根据接口文档中对接口入参的描述定义接口方法的入参结构体,包括:接口测试框架根据接口入参数据类型的不同,定义不同的数据格式,每一种数据格式为一个类,每个类包含一个example方法或包含members和example两个方法。4.根据权利要求3所述的接口自动生成方法,其特征在于,所述根据接口文档中对接口入参的描述定义接口方法的入参结构体,还包括:当接口入参为整数类型的数据,采用IntegerShape作为数据格式的描述,IntegerShape类的example方法通过random.randint函数生成随机整型参数;当接口入参为小数类型的数据,采用FloatShape作为数据格式的描述,FloatShape类的example方法通过random.uniform函数生成随机浮点型参数;当接口入参为布尔类型的数据,采用BoolShape作为数据格式的描述,BoolShape类的example方法通过random.choice函数生成随机True / False值;当接口入参为字符串类型的数据,采用StringShape作为数据格式的描述,StringShape类的example方法通过random.choice函数生成随机字符串参数;当接口入参为列表类型的数据,采用ListShape作为数据格式的描述;members方法用于描述列表每个子元素的数据类型,并最终将每一子元素对应到一种简单数据类型;example方法根据列表元素的数据类型通过random函数生成对应类型的随机参数;当接口入参为字典类型的数据,采用DictShape作为数据格式的描述;members方法用于描述字典每个子元素的数据类型,并最终将每一子元素对应到一种简单数据类型;example方法根据字典key

value的数据类型通过random函数生成对应类型的随机参数;当接口入参为结构体类型,采用StructureShape作为数据格式的描述;members方法用于用于描述结构体类型的每个子元素的数据类型,通过递归将每一级子元素最终对应到一种简单数据类型;example方法将递归得到的每一级子元素根据简单数据类型的example方法生成对应的随机参数。5.根据权利要求1所述的接口自动生成...

【专利技术属性】
技术研发人员:田飞傅俪婕张杭
申请(专利权)人:中电云数智科技有限公司
类型:发明
国别省市:

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

1