当前位置: 首页 > news >正文

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

参数名称参数值是否必须示例备注
Authorizationtokentoken权限认证
access_signxxx访问签名

Body

参数名称参数类型是否必须示例备注
titletext测试标题作业标题
fileSuffixtextdocx文件类型
clientIptext172.1.1.1打印机ip
printProperties.driverNametextxsp虚拟驱动驱动名称
printProperties.portSharedtext0不共享,1共享端口是否共享
printProperties.terminalTypetextWindows终端类型
printProperties.pageCounttext10页数总量
printProperties.copyCounttext1复印数量
printProperties.papertextA4页的大小
printProperties.duplexingtextOneSided(单面)单双面
printProperties.colortextMonochrome(黑白)颜色
printProperties.pageOrientationtextportrait页方向
printProperties.documentNametext测试.docx文档名字
printProperties.isPSDrivertexttrue是否ps驱动
filefile文件文件

2、jmeter创建测试计划-线程组

2-1、线程组下面添加HTTP请求

根据接口文档输入协议、ip、端口、请求类型、接口路径、参数等
在这里插入图片描述
接口中有file类型参数,需要上传文件
在这里插入图片描述

2-2、HTTP请求下添加配置原件-请求头管理器

接口文档中请求头有权限认证的token、签名(签名每次请求都要生成新的)
在这里插入图片描述
在这里插入图片描述
签名如何生成,下方讲解

3、生成签名

3-1、线程组下面添加beanShell Sampler

在这里插入图片描述

3-2、根据签名规则编写脚本

生成访问签名
参数名说明示例值备注
clientId签名ID0ca6eaf66cbf4f2bb1db6902c9c8d915
clientSecret签名秘钥8c0a5f3388154e2c959f2bd44fc2dd66
timestamp时间戳1706859156428当前时间戳
uuid唯一ID12345678唯一值,一个签名只能使用一次
访问签名生成逻辑

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

相关文章:

  • 鸿蒙 ohpm 的异常报错
  • STM32 ESP8266模块的曲折探索
  • 聚类分析|基于层次的聚类方法及其Python实现
  • Vue.js:构建高效且灵活的Web应用的利器
  • 黑客(网络安全)技术30天速成
  • 二进制源码部署mysql8.0.35
  • c++初阶------c++代码模块
  • c语言文件操作(下)
  • WEB测试之兼容性测试
  • cinder学习小结
  • JS——9大陷阱
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第3篇:静态结构搭建和分类实现,1. 整体结构创建【附代码文档】
  • 一键部署开源舆情系统
  • 开源博客项目Blog .NET Core源码学习(11:App.Core项目结构分析)
  • React 18中hook函数详解之useState和useEffect
  • python3.6+scrapy+mysql 爬虫实战
  • [数据结构]链表的实现在PHP中
  • docker python 配置
  • JavaScript HTML DOM
  • Java编程基础24——递归练习
  • java第三方包学习之lombok
  • leetcode386. Lexicographical Numbers
  • Node + FFmpeg 实现Canvas动画导出视频
  • vue自定义指令实现v-tap插件
  • 阿里云应用高可用服务公测发布
  • 搞机器学习要哪些技能
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 通过npm或yarn自动生成vue组件
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (70min)字节暑假实习二面(已挂)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET BackgroundWorker
  • .net core Swagger 过滤部分Api
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 设计一套高性能的弱事件机制
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET开发人员必知的八个网站
  • @Bean, @Component, @Configuration简析
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • [20170705]diff比较执行结果的内容.txt
  • [BUG]Datax写入数据到psql报不能序列化特殊字符
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [C#] 我的log4net使用手册
  • [CareerCup] 12.3 Test Move Method in a Chess Game 测试象棋游戏中的移动方法
  • [EULAR文摘] 脊柱放射学持续进展是否显著影响关节功能
  • [HTML API]HTMLCollection