jmeter接口导入方式

curl直接导入

1、操作页面后,F12查看接口,右击接口-copy-copy as cURL
在这里插入图片描述
2、jmeter 工具-import from cURL,粘贴上面复制的curl
在这里插入图片描述

根据接口文档导入

1、接口文档示例如下:

Path: /api/jobs/xps/exec

Method: POST

接口描述:

file 文件类型:   MultipartFile

请求参数

Headers

参数名称 参数值 是否必须 示例 备注
Authorization token token 权限认证
access_sign xxx 访问签名

Body

参数名称 参数类型 是否必须 示例 备注
title text 测试标题 作业标题
fileSuffix text docx 文件类型
clientIp text 172.1.1.1 打印机ip
printProperties.driverName text xsp虚拟驱动 驱动名称
printProperties.portShared text 0不共享,1共享 端口是否共享
printProperties.terminalType text Windows 终端类型
printProperties.pageCount text 10 页数总量
printProperties.copyCount text 1 复印数量
printProperties.paper text A4 页的大小
printProperties.duplexing text OneSided(单面) 单双面
printProperties.color text Monochrome(黑白) 颜色
printProperties.pageOrientation text portrait 页方向
printProperties.documentName text 测试.docx 文档名字
printProperties.isPSDriver text true 是否ps驱动
file file 文件 文件

2、jmeter创建测试计划-线程组

2-1、线程组下面添加HTTP请求

根据接口文档输入协议、ip、端口、请求类型、接口路径、参数等
在这里插入图片描述
接口中有file类型参数,需要上传文件
在这里插入图片描述

2-2、HTTP请求下添加配置原件-请求头管理器

接口文档中请求头有权限认证的token、签名(签名每次请求都要生成新的)
在这里插入图片描述
在这里插入图片描述
签名如何生成,下方讲解

3、生成签名

3-1、线程组下面添加beanShell Sampler

在这里插入图片描述

3-2、根据签名规则编写脚本

生成访问签名
参数名 说明 示例值 备注
clientId 签名ID 0ca6eaf66cbf4f2bb1db6902c9c8d915
clientSecret 签名秘钥 8c0a5f3388154e2c959f2bd44fc2dd66
timestamp 时间戳 1706859156428 当前时间戳
uuid 唯一ID 12345678 唯一值,一个签名只能使用一次
访问签名生成逻辑

1、签名值= 签名ID+“:”+签名秘钥+“:”+时间戳+“:”+唯一ID

2、 生成算法:AES ,签名参数:ECB PKCS7 128bits

3、 AES算法秘钥(aesKey):#iSn##s$olu.@@sm

4、 access_sign生成规则:用AES算法对签名值进行加密

签名脚本
// Import the Base64 class
import org.apache.commons.codec.binary.Base64;

// 参数
var clientId = "0ca6eaf66cbf4f2bb1db6902c9c8d915";
var clientSecret = "8c0a5f3388154e2c959f2bd44fc2dd66";
var timestamp = new Date().getTime();
var uuid = new java.util.Random().nextInt(90000000) + 10000000;


// 计算签名值
var signValue = clientId + ":" + clientSecret + ":" + timestamp + ":" + uuid;

// 加密签名值
var aesKey = "#iSn##s$olu.@@sm";
var cipher = javax.crypto.Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, new javax.crypto.spec.SecretKeySpec(aesKey.getBytes(), "AES"));
var encryptedSign = cipher.doFinal(signValue.getBytes());

// 生成访问签名 (使用 Commons Codec)
var accessSign = new String(Base64.encodeBase64(encryptedSign));

// 将访问签名存储到变量中
vars.put("access_sign", accessSign);

// 打印访问签名
System.out.println("access_sign: " + accessSign);


相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 21:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 21:44:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 21:44:03       82 阅读
  4. Python语言-面向对象

    2024-03-22 21:44:03       91 阅读

热门阅读

  1. 设计模式 抽象工厂

    2024-03-22 21:44:03       51 阅读
  2. 两个一元多项式相乘

    2024-03-22 21:44:03       43 阅读
  3. 利用python进行键盘模拟输入

    2024-03-22 21:44:03       41 阅读
  4. 静态页面负载均衡

    2024-03-22 21:44:03       40 阅读
  5. package.json详解

    2024-03-22 21:44:03       45 阅读
  6. canvas基础应用

    2024-03-22 21:44:03       39 阅读
  7. Flink1.18 如何配置算子级别的TTL

    2024-03-22 21:44:03       39 阅读