通过Shell实现MeterSphere Signature签名

编者注:

本文为公众号博主Wolfberry的原创文章。

原文链接:

https://mp.weixin.qq.com/s/4Nj8isNI2l0zInqxSDsvvw

本文将分享在MeterSphere开源持续测试平台中如何通过Shell生成Signature签名,并实现对MeterSphere API的调用操作。

最近在将MeterSphere与DevOps的CI/CD集成起来,主要是通过CI/CD流水线触发MeterSphere中的自动化接口用例和场景用例,第一步需要解决调用API所涉及的鉴权认证。

对于Java的实现,可以参考公众号文章:《在MeterSphere中使用预执行脚本功能生成接口认证签名》(教程丨在MeterSphere中使用预执行脚本功能生成接口认证签名 – 技术博客 – FIT2CLOUD 飞致云)。然而在有些情况下,对MeterSphere API的调用需要通过Shell脚本来实现,即通过Shell生成Signature签名并调用接口。

根据上面链接中文章的描述,在通过API调用MeterSphere接口时,需要在请求头中传入accessKey和Signature。其中,accessKey为创建API Key时生成的Access Key,Signature通过如下加密算法得出:

通过Shell实现MeterSphere Signature签名

通过Shell生成Signature

除了上述方法,我们还可以通过Shell来生成Signature。对于Shell,显然没有高级语言那样有丰富的类库,但Shell也能通过丰富的Linux命令和工具实现复杂的功能。对于本案例,可以利用OpenSSL命令生成该加密签名:

openssl enc -e -aes-128-cbc -base64 -K <加密密钥> -iv <加密向量>

另外,Shell也能十分便捷地用一条命令就能得到加密字符串所需的13位Unix时间戳,用符号“|” 将accessKey与Unix时间戳连接起来,就可以得到加密字符串。

操作示例

根据指定的MeterSphere项目名称,返回相应的项目ID:

传入accessKey、secretKey、projectName和MeterSphere服务器地址,实时生成Signature:


执行上述脚本:


得到返回结果:


这证明接口已能成功调通,对于CI/CD流水线而言,只需将调用的API换成相应的触发测试计划或测试场景的接口即可。在需要的时候,也可以根据MeterSphere的Swagger接口文档,调用其他接口,实现更为强大而丰富的功能。

来源:FIT2CLOUD飞致云

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月15日
下一篇 2022年6月15日

相关推荐