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

相关推荐
追寻向上18 小时前
软件性能测试深度解析(进阶篇):JMeter高阶应用与性能工程体系构建
功能测试·jmeter
爱学测试的雨果1 天前
Jmeter+ant+jenkins接口自动化测试
运维·jmeter·jenkins
川石课堂软件测试1 天前
涨薪技术|JMeter异步接口测试实战
服务器·数据库·sql·功能测试·jmeter·xss·安全性测试
一只小H呀の2 天前
金融项目实战
jmeter·金融
测试19982 天前
Jmeter进行http接口测试详解
自动化测试·软件测试·网络协议·测试工具·jmeter·http·测试用例
北珣.2 天前
使用JMeter(组件详细介绍+使用方式及步骤)
测试工具·jmeter
joker_zsl3 天前
Jmeter的脚本录制
jmeter
大霞上仙3 天前
jmeter阶梯式压测
jmeter
程序员三藏3 天前
Jmeter简单的压力测试
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
Hi~晴天大圣5 天前
Jmeter日志打印
jmeter·jsr223·日志打印