MeterSphere入参加密踩坑记录

2023-11-09

需求:应公司要求需把项目接口接入MeterSphere,Jenkins部署时实现接口自动化测试。项目接口有统一加密方式,所以想写一个统一的前置脚本,减少工作量。 

ps:我想实现的效果是body里放明文参数,经过前置脚本操作后,把处理后的参数放入body里。本来以为MeterSphere应该和Yapi,Apifox差不多,应该会有获取body参数与放入的方法,结果竟然没有(!!!),需要导入其他jar包。

登录MeterSphere后,点击系统设置-->环境管理-->找到要加入全局前置脚本的项目,点击编辑

 然后点击“单个请求步骤前执行”,(ps:单个接口前置脚本都可以用多个语言编写,全局前置脚本只能用beanshell编写,不知道是不是版本问题)

然后就可以按照获取body明文数据-->将数据加密-->加密后数据重新置入body里的思路来进行了。

import org.apache.jmeter.config.Arguments;
import org.apache.commons.codec.binary.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

String accessKey = "加密key";
String secretKey = "偏移量";

//获取接口请求body里数据
Arguments args = sampler.getArguments();
String requestBody = args.getArgument(0).getValue();
log.info(requestBody);

//加密方法
public static String aesEncrypt(String src, String secretKey, String iv) throws Exception {
    byte[] raw = secretKey.getBytes("UTF-8");
    SecretKeySpec secretKeySpec = new SecretKeySpec(raw, "AES");
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
    IvParameterSpec iv1 = new IvParameterSpec(iv.getBytes());
    cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, iv1);
    byte[] encrypted = cipher.doFinal(src.getBytes("UTF-8"));
    return Base64.encodeBase64String(encrypted);
}

try {
    //调用加密算法生成签名
    String signature = aesEncrypt(requestBody, secretKey, accessKey);
    log.info(signature);
    //将加密后的数据重新放入body里
    args.getArgument(0).setValue(signature);
} catch (Exception e) {
    e.printStackTrace();
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MeterSphere入参加密踩坑记录 的相关文章

  • MySQL - 一文了解MySQL的基础架构及各个组件的作用

    1 概述 不管是开运 运维 测试 都或多或少的要接触MySQL 了解MySQL的基础架构及各个组件之间的关系 有助于我们更加深入的理解MySQL 下面由一张MySQL基础架构图来一起走进MySQL MySQL可以基本划分为Server层和存
  • helm的安装、使用以及自定义Chart

    Helm概述 Helm 是一个 Kubernetes 的包管理工具 类似 Linux 的包管理器 如RedHat系的yum Debian的apt 可以很方便的将之前打包好的 yaml 文件部署到 Kubernetes 上 Helm主要解决以
  • Open3D 基于法线的双边滤波

    目录 一 算法原理 1 算法概述 2 计算步骤 3 参考文献 二 代码实现 三 结果展示 1 原始点云 2 滤波结果 四 相关链接 一 算法原理 1 算法概述 Fleishman 等人提出一种网格双边滤波器 双边滤波器最早应用于灰度图像 该
  • Linux下挂在SATA硬盘时的诡异现象

    ata1 SATA link down SStatus 1 SControl 300 ata1 EH complete ata1 exception Emask 0x10 SAct 0x0 SErr 0x4000000 action 0xa
  • Windows下配置Mask-RCNN环境(各种踩过的坑)

    Windows下配置Mask RCNN pytorch环境 各种踩过的坑 安装Anaconda 1 1 下载和安装Anaconda 安装maskrcnn benchmark项目 2 1 官方建议的安装需求 2 2 逐步安装过程 1 创建虚拟
  • TCP通讯客户端怎样判断与服务器端断开,该如何处理

    TCP通讯客户端怎样判断与服务器端断开 大虾们 神们 C winform里面 采用多线程监听端口 接收方式为阻塞式 创建单一线程进行监听函数 这样阻塞时只阻塞单一线程 对主线程没有影响 并使用异步通信模式 来一个连接后回调函数进行解析入库
  • 动态修改模板字符串中图片--简单解决

    document addEventListener error function e var elem e target if elem id toLowerCase imgurl infowindow 在这内部可以发请求拿到动态的地址 i
  • IP地址,子网掩码、默认网关,DNS的设置和工作原理(总结)

    概念 1 概述 IP地址 人们在Internet上为了区分数以亿计的主机而给每台主机分配的一个专门的地址 通过IP地址就可以访问到每台主机 子网掩码 不能单独存在 它必须结合IP地址一起使用 子网掩码只有一个作用 就是将某个IP地址划分成网
  • Blender教程之魔方全自动特效教学

    魔方玩家在我看来分为三种 一是不懂原理的佛系玩家 三阶魔方可能都要拧很久才能还原 第二种是明白怎么玩的玩家 其实还原一个被打乱的魔方就是做一道层先法的数学题 而第三种就是像我这样虽然不懂解密 但会用Blender做一个魔方来让它 自动还原
  • Android Bluetooth

    Android Bluetooth 使用Android蓝牙API来进行蓝牙通信的四个任务 设置蓝牙 检索周围匹配的或者可用的设备 连接设备 设备间传输数据 所有蓝牙APIs在android bluetooth 包中 创建蓝牙连接所要用到的类
  • 一、人脸识别starter-需求分析

    一 需求来源 对于一些需要本人刷脸认证的场景 比如注册时需要刷脸认证 要求上传身份证必须是本人的 等此场景 二 需求分析 考虑到这是个单独并且可复用的模块 所以决定写一个springboot starter来实现 starter可以上传到自
  • 定位、浮动

    Position 定位 一 position 1 属性描述 设置或获取元素的定位方式 2 版本变更 有 3 语法模板 position static relative absolute fixed 4 默认值 static 尽量避开影响其他
  • C++编译知识笔记(一)——基本知识

    文章目录 一 编译的基本步骤 1 1 预处理阶段 1 2 编译阶段 1 3 汇编阶段 1 4 链接阶段 二 核心常用基本概念 2 1 o目标文件 2 2 符号 2 3 静态链接库 2 4 动态链接库 三 链接和加载 3 1 o文件和静态库的

随机推荐

  • python 内置函数——enumerate( )函数

    发音 nu m re t 枚举 列举 enumerate 是python的内置函数 适用于python2 x和python3 x 用来将一个可迭代对象转化为枚举对象 利用它可以同时获得每个元素的索引下标和值 即需要 index 和 valu
  • Ueditor富文本编辑器客制化功能添加

    文章目录 ueditor简介 主要配置文件 要实现的功能展示 实现过程 修改 ueditor all js 配置页面的内容 setcellattribute html 添加多语言配置 添加CSS样式 ueditor css 开放属性白名单
  • Say0l的安全开发-弱口令扫描工具-My-crack【红队工具】

    写在前面 终于终于 安全开发也练习一年半了 有时间完善一下项目 写写中间踩过的坑 安全开发的系列全部都会上传至github 欢迎使用和star 工具链接地址 https github com SAY0l my crack 预览 My Cra
  • 【GD32F427开发板试用】USB FS 键盘

    本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动 更多开发板试用活动请关注极术社区网站 作者 Charles 一 试用介绍 GD32F427RK支持USBFS和USBHS 我试用的是USBFS功能 所以在此只关注FS相关特
  • Python常考基础面试题

    文章目录 Python基础面试题 1 Python 数据结构有哪些 2 Python 中列表和元组的区别是什么 元组是不是真的不可变 3 什么是生成器和迭代器 它们之间有什么区别 迭代器 生成器 4 什么是闭包 装饰器又是什么 装饰器有什么
  • [心得]python pip私人库安装部署经验总结

    背景 pip打包 setuptools pip支持从wheel安装 卸载 依赖覆盖 列出已装的包 以及pep438过渡发布 而easy install则支持egg安装 修改系统路径 多版本安装 egg 是一个包含所有包数据的文件包 在理想情
  • 利用lineRender画射线

    using System Collections using System Collections Generic using UnityEngine public class makeRay MonoBehaviour private L
  • matplotlib学习笔记(二)

    上面简单学习了如何绘制一个折线图 总觉得这个折线图特别的丑 下面对图形进行下装饰 1 深入一点学习plt plot plt plot x y color marker linestyle color 线条颜色 可以设置为颜色名称 如 red
  • linux工具——PPTP搭建及配置

    简介 安装 配置 客户端配置 1 安装软件包 yum install y ppp pptp pptp setup 2 运行 pptpsetup create test server IP username 用户 password 密码 en
  • mybatis查询结果按sql字段顺序返回。

    1 返回结果用resutlType接受 resultType java util LinkedHashMap 2 mybatis plus增加如下配置 mybatis plus configuration call setters on n
  • 个人python笔记

    个人PYTHON记录 更新中 前言 一 个人对python及C uibot的评价 二 python使用包与函数的记录 1 环境的配置anaconda与pycharm 2 py打包为exe 3 excel表格相关包xlwings 4 re正则
  • 根据ID获取问题

    定义接口 根据问题的ID查询一个问题数据 Question getQuestionById Integer id 实现接口 Override public Question getQuestionById Integer id select
  • Web基础知识

    为啥我啥都不知道 在计算机网络技术中 通常涉及两张网 Network和Web Network 主要指硬件网络 包括了TCP IP Transmission Control Protocol Internet Protocol 四层网络体系中
  • tf.nn.conv2d() 参数说明

    tf nn conv2d用法详解 tf nn conv2d 我们已经知道这个函数是用于做二维卷积的 但是他容易和tf layers conv2d 混淆 对于初学者来说 他的参数也不是那么容易理解 只是了解到一点皮毛 并不能一下子就记住 下面
  • Java测试(7)---项目篇

    需求 项目 1 项目启动 了解项目背景 2 需求分析 功能需求 1 文件类型 支持所有文件 2 压缩文件个数 最多压缩100个文件 3 压缩大小 不超过5G 性能需求 1 压缩 解压缩文件不超过30分钟 2 安全需求 带有病毒感染的文件不能
  • 代码随想录算法训练营第四天

    LeetCode 24力扣 两两交换链表节点 采用原地交换 使用tmp节点进行交换前临时节点存储即可 三个一组 package algor trainingcamp import algor junior algor list ListNo
  • MIPI信号简单介绍

    1 MIPI介绍 MIPI是由ARM Nokia ST IT等公司成立的一个联盟 旨在把手机内部的接口如存储接口 显示接口 射频 基带接口等标准化 减少兼容性问题并简化设计 MIPI联盟通过不同的工作组 分别定义一系列手机内部的接口标准 如
  • 字节流与字符流的区别及相互转换

    先来看一下流的概念 在程序中所有的数据都是以流的方式进行传输或保存的 程序需要数据的时候要使用输入流读取数据 而当程序需要将一些数据保存起来的时候 就要使用输出流完成 程序中的输入输出都是以流的形式保存的 流中保存的实际上全都是字节文件 字
  • EL表达式javaweb

    一 JavaBean JavaBean是Java开发语言中一个可以重复使用的软件 它本质上就是一个Java类 为了规范 JavaBean 的开发 Sun 公司发布了 JavaBean 的规范 它要求一个标准的 JavaBean 组件需要道循
  • MeterSphere入参加密踩坑记录

    需求 应公司要求需把项目接口接入MeterSphere Jenkins部署时实现接口自动化测试 项目接口有统一加密方式 所以想写一个统一的前置脚本 减少工作量 ps 我想实现的效果是body里放明文参数 经过前置脚本操作后 把处理后的参数放