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

相关推荐
糖果店的幽灵21 天前
软件测试接口测试从入门到精通:JMeter接口测试
软件测试·jmeter·接口测试·压力测试·性能测试
1candobetter22 天前
JMeter 性能压测监控实战
jmeter
wenying_4432374423 天前
软件测试—JMeter—跨线程组关联
jmeter·压力测试
川石课堂软件测试23 天前
UI自动化测试|下拉选择框&弹出框&滚动条操作实践
开发语言·python·jmeter·ui·docker·单元测试·harmonyos
测试19981 个月前
Jmeter性能压测:TPS与QPS
自动化测试·软件测试·python·jmeter·测试用例·压力测试·性能测试
川石课堂软件测试1 个月前
UI自动化测试|XPath元素定位实践
功能测试·测试工具·jmeter·microsoft·ui·postman·harmonyos
wenying_443237441 个月前
软件测试—Jmeter后置处理器—XPath提取器
jmeter
wenying_443237441 个月前
软件测试—Jmeter后置处理器—正则表达式提取器
jmeter·压力测试