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、签名、文件等数据。

相关推荐
lllsure12 小时前
【快速入门】JMeter
jmeter
天才测试猿20 小时前
Jmeter基础知识详解
自动化测试·软件测试·测试工具·jmeter·测试用例·接口测试·性能测试
islandzzzz2 天前
使用JMeter进行API性能压测(执行篇)
jmeter
张永清-老清2 天前
每周读书与学习->JMeter主要元件详细介绍(三)逻辑控制器
测试工具·jmeter·压力测试·性能调优·jmeter性能测试·性能分析·每周读书与学习
xiecoding.cn2 天前
Apache JMeter下载和安装图文教程(附安装包,适合新手)
jmeter·apache jmeter·jmeter下载·jmeter 下载·jmeter下载安装·jmeter官网下载·jmeter工具下载
胜天半月子5 天前
性能测试 | 性能测试工具JMeter直连数据库和逻辑控制器的使用
数据库·测试工具·jmeter·性能测试
网易测试开发猿7 天前
资深测试整理,性能测试-平均并发数+评估系统TPS/并发数(详情)
软件测试·软件测试工程师·jmeter·压力测试·性能测试·负载测试·jmeter性能测试
M.Blog8 天前
JMETER+ANT接口自动化测试环境搭建实战讲解
jmeter
卓码软件测评8 天前
第三方软件课题结题验收测试机构【使用JMeter的Web应用负载测试】
功能测试·jmeter·负载均衡·压力测试