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);
无接口文档,不是网页操作无法看到接口,抓包获取接口和参数
fiddler抓包获取
如在word文档中点击打印选择打印机后,调用了驱动打印接口,fiddler抓取到接口。
fiddler导出curl有bug缺少body,手动复制请求头和body。

复制所有的请求头

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

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


右侧点击生成curl,将curl导入到jmeter,导入后注意修改参数token、签名、文件等数据。
相关文章:
jmeter接口导入方式
curl直接导入 1、操作页面后,F12查看接口,右击接口-copy-copy as cURL 2、jmeter 工具-import from cURL,粘贴上面复制的curl 根据接口文档导入 1、接口文档示例如下: Path: /api/jobs/xps/exec Method…...
设计模式(行为型设计模式——状态模式)
设计模式(行为型设计模式——状态模式) 状态模式 基本定义 对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。 模式结构 Context(环境类)&…...
【Flutter学习笔记】10.3 组合实例:TurnBox
参考资料:《Flutter实战第二版》 10.3 组合实例:TurnBox 这里尝试实现一个更为复杂的例子,其能够旋转子组件。Flutter中的RotatedBox可以旋转子组件,但是它有两个缺点: 一是只能将其子节点以90度的倍数旋转二是当旋转…...
性能测试入门 —— 什么是性能测试PTS?
性能测试PTS(Performance Testing Service)是一款简单易用,具备强大的分布式压测能力的SaaS压测平台。 PTS可以模拟复杂的业务场景,并快速精准地调度不同规模的流量,同时提供压测过程中多维度的监控指标和日志记录。您…...
【机器学习】基于变色龙算法优化的BP神经网络分类预测(SSA-BP)
目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】变色龙优化算法(CSA)原理及实现 2.设计与实现 数据集: 数据集样本总数2000 多输入多输出:样本特征24ÿ…...
pytorch中tensor类型转换的几个函数
目录 IntTensor转FloatTensor FloatTensor转IntTensor Tensor类型变为python的常规类型 IntTensor转FloatTensor .float函数: FloatTensor转IntTensor .int函数 Tensor类型变为python的常规类型 item函数...
深入理解Elasticsearch高效原理
在当今数据驱动的世界中,能够快速有效地存储、搜索和分析庞大数据集变得至关重要。Elasticsearch是一个强大的开源搜索和分析引擎,专为云计算中心而设计,能够提供快速的搜索功能,并且能够扩展到包含数百个服务器的集群,…...
http和socks5代理哪个隐蔽性更强?
HTTP代理和SOCKS5代理各有其优缺点,但就隐蔽性而言,SOCKS5代理通常比HTTP代理更隐蔽。以下是它们的比较: HTTP代理: 透明性较高:HTTP代理在HTTP头中会透露原始客户端的IP地址,这使得它相对不太隐蔽。…...
邮箱的正则表达式
一、 背景 项目中要给用户发送邮件,这时候需要校验用户输入的邮箱的有有效性,这肯定用正则呀。 虽然没有统一的邮箱账号格式,但是所有邮箱都符合“名称域名”的规律。对于名称和域名的字符限制,我们可以根据项目的情况定义一个&a…...
blender插件笔记
目录 文件拖拽导入 smpl导入导出 好像可以导入动画 smpl_blender_addon导入一帧 保存pose 导入导出完整代码 文件拖拽导入 https://github.com/mika-f/blender-drag-and-drop 支持格式: *.abc*.bvh*.dae*.fbx*.glb*.gltf*.obj*.ply*.stl*.svg*.usd*.usda*.…...
解释关系型数据库和非关系型数据库的区别
一、解释关系型数据库和非关系型数据库的区别 关系型数据库和非关系型数据库在多个方面存在显著的区别。 首先,从数据存储方式来看,关系型数据库采用表格形式,数据存储在数据表的行和列中,且数据表之间可以关联存储,…...
YAML-02-yml 配置文件 java 整合使用 yamlbeans + snakeyaml + jackson-dataformat-yaml
java 中处理 yml 的开源组件是什么? 在Java中处理YAML(YAML Aint Markup Language)格式的开源组件有很多,其中一些比较常用的包括: SnakeYAML: SnakeYAML 是一个Java库,用于解析和生成YAML格式…...
【综述+LLMs】国内团队大语言模型综述:A Survey of Large Language Models (截止2023.11.24)
Github主页: https://github.com/RUCAIBox/LLMSurvey 中文版v10:https://github.com/RUCAIBox/LLMSurvey/blob/main/assets/LLM_Survey_Chinese.pdf 英文版v13: https://arxiv.org/abs/2303.18223 解析:大语言模型LLM入门看完你就懂了(一&…...
开始喜欢上了runnergo,JMeter out了?
RunnerGo是一款基于Go语言、国产自研的测试平台。它支持高并发、分布式性能测试。和JMeter不一样的是,它采用了B/S架构,更灵活、更方便。而且,除了API测试和性能测试,RunnerGo还加上了UI测试和项目管理等实用功能,让测…...
LLM - 大语言模型的分布式训练 概述
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/136924304 大语言模型的分布式训练是一个复杂的过程,涉及到将大规模的计算任务分散到多个计算节点上。这样做的目的是为了处…...
Spring Cloud Alibaba 整合Seata分布式事务
目录 前言步骤引入相关maven依赖添加相关配置Client端配置注册中心Server端配置注册中心Seata-Server相关配置启动seata-server 使用方法Seata AT 模式整体机制 步骤初始化表结构标记注解GlobalTransactional 总结 前言 在数字化转型的浪潮下,企业业务系统的复杂度…...
unity 多屏幕操作
想了解基础操作请移步:(重点是大佬写的好,这里就不再赘述) Unity 基础 之 使用 Display 简单的实现 多屏幕显示的效果_unity display-CSDN博客 在panel上也可以通过获取 Canvas,来达到切换多屏幕的操作, …...
4、Jenkins持续集成-用户权限和凭证管理
文章目录 一、用户权限管理1、安装用户权限管理插件2、开启权限全局安全配置3、创建角色4、创建用户5、给用户分配角色6、创建项目测试权限二、凭证管理1、安装凭证管理插件2、安装Git插件和工具2.1 用户密码类型2.2 SSH密钥类型一、用户权限管理 利用Role-based Authorizatio…...
K8s-网络原理-中篇
引言 本文是《深入剖析 K8s》的学习笔记,相关图片和案例可从https://github.com/WeiXiao-Hyy/k8s_example中获取,欢迎 ⭐️! 上篇主要介绍了 Flannel 插件为例,讲解了 K8s 里容器网络和 CNI 插件的主要工作原理。还有一种“纯三层”的网络方…...
vue基础——java程序员版(vue路由)
1、引入路由 在控制台执行vue ui,在插件市场里可以找到vue-router并导入。 一般情况下,vue会自动在main,js中引入vue-router,如下: import Vue from vue import App from ./App.vue import ./plugins/element.js import rou…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
