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算法对签名值进行加密

签名脚本
java 复制代码
// 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);

无接口文档,不是网页操作无法看到接口,抓包获取接口和参数

fiddler抓包获取

如在word文档中点击打印选择打印机后,调用了驱动打印接口,fiddler抓取到接口。

fiddler导出curl有bug缺少body,手动复制请求头和body。

复制所有的请求头

获取传参,name是参数名称,value是参数值

postman中输入请求方式、ip+接口、将上面复制的请求头粘贴、传参手动输入

右侧点击生成curl,将curl导入到jmeter,导入后注意修改参数token、签名、文件等数据。

相关推荐
banyoyo6 天前
jmeter测试使用方法
jmeter
汪汪8888887 天前
jmeter压测下载功能影响本地内存的方案
jmeter
跨境数据猎手7 天前
跨境电商系统JMeter 和 Gatling 分工
jmeter
han68899 天前
jmeter操作数据库
数据库·jmeter
川石课堂软件测试11 天前
涨薪技术|0到1学会性能测试第8课-Analysis分析图
服务器·数据库·python·sql·jmeter·mysql·容器
川石课堂软件测试11 天前
JMeter异步接口测试实战
数据库·python·jmeter·mysql·kubernetes·测试用例·prometheus
zuozewei13 天前
第02篇-k6-脚本结构与生命周期
软件测试·jmeter·性能测试·k6·ai 编程
fen_fen13 天前
Jmeter5.1.1连接oracle数据库的错误复盘
数据库·jmeter·oracle
川石课堂软件测试17 天前
自动化测试|持续集成Git使用详解
git·python·jmeter·mysql·ci/cd·容器·kubernetes
wuhuhuan19 天前
JMeter 连接数据库并取值(JDBC 实战)
数据库·jmeter