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

Jmeter自动化实战

一、前言

由于系统业务流程很复杂,在不同的阶段需要不同的数据,且数据无法重复使用,每次造新的数据特别繁琐,故想着能不能使用jmeter一键造数据

二、创建录制模板

可参考:jmeter录制接口
首先创建一个录制模板
因为会有各种请求头,cookies,签名,认证信息等原因,导致手动复制粘贴的的全面导致接口调用失败,当然如果你对系统特别熟悉,可以忽略这个步骤

录制后可以复制请求到线程组中,这样就可以直接复制
在这里插入图片描述

三、 新增线程组

在这里插入图片描述
修改线程组名称
在这里插入图片描述

2.1给线程组添加用户定义变量

在这里插入图片描述
定义多个用户定义变量,给不同的模块使用
在这里插入图片描述

2.2新增查看结果树

在这里插入图片描述

2.3新增测试片段

在这里插入图片描述
在这里插入图片描述
上图测试片段,按照不同的模块创建不同的片段,因为执行的时候,我们只需要把数据流转到某个阶段就行了, 创建测试片段,可以对不同模块的接口统一管理,不需要禁用这个测试片段就行了
在这里插入图片描述

四、新增http请求

在测试片段下新增http请求

在这里插入图片描述

五、对http请求的处理

对http请求会遇到以下这些问题

  • 登入
  • 添加请求头,认证信息,签名,随机数等
  • 请求参数加密
  • 响应结果解析并应用到下一次请求
  • 请求的执行顺序
  • 响应断言

5.1登入

登入http请求
在这里插入图片描述

添加前置处理器JSR223 PreProcessor
用于获取时间戳,随机数,生成签名
在这里插入图片描述
在这里插入图片描述
下面含有md5加密,可参考Jmeter使用js对入参使用MD5加密

load("md5.js")
// 时间戳
var timestamp = new Date().getTime();
// 随机数
var nonce = Math.round(Math.random() * 100000);
// 生成签名
var signature =  hex_md5(timestamp + "=" + nonce + "function");
vars.put("timestamp", timestamp);
vars.put("nonce", nonce);
vars.put("signature", signature);

添加http请求头
在这里插入图片描述
在这里插入图片描述
添加JSON提取器获取登入后的token信息

解析返回参数,可参考Jmeter对请求结果进行解析

通过下面的json提取器可以获取到登入后返回的token,这个token是一个变量,可以用于下一次请求
在这里插入图片描述
在查询接口的请求头中使用token
在这里插入图片描述

5.2请求参数加密

可参考Jmeter使用js对入参使用MD5加密

5.3响应结果解析并应用到下一次请求

可参考:Jmeter对请求结果进行解析

5.4请求的执行顺序

如何保证请求的执行顺序呢?

http请求是可以拖动移动顺序的,展示的顺序,就是执行的先后顺序,建议命名的时候加上需要,这样在多个接口同事执行的时候能够快速的定位到时哪一个接口
在这里插入图片描述

5.5响应断言

在这里插入图片描述

六、整理流程展示

在这里插入图片描述

七、特殊场景处理

场景1:附件上传

参考:jmeter附件上传

场景2:当前接口需要需要上一个接口的返回值

第一个接口,当创建一个项目后,返回一个项目id
第二个接口,需要获取项目id作为入参去提交项目

创建接口
创建入参
在这里插入图片描述
JSR233 获取请求头信息
在这里插入图片描述
设置请求头
在这里插入图片描述
JSON提取器,获取创建成功的项目id
在这里插入图片描述

延迟3s,保证接口调用的先后顺序
在这里插入图片描述
提交接口

在这里插入图片描述

场景3:从form表单提取参数,作为下一个接口的入参

前一个接口的JSR223 后置处理器

// 获取响应数据
var response = prev.getResponseDataAsString();
// 解析 JSON 数据
var data = JSON.parse(response);
// 获取变量(这是个对象,不是一个字符串)
var designPeoples = data.data.designPeoples;
// 项目名称
var itemName = data.data.item.name;
var itemId = data.data.item.id;
// 使用 for 循环遍历数组并修改每个元素
for (var i = 0; i < designPeoples.length; i++) {designPeoples[i].linkusername = "诸葛亮";designPeoples[i].linkway = "13888888888";
}
vars.put("itemId", itemId);
vars.put("itemName", itemName);
// 应为是一个对象,使用JSON.stringify把对象转化为字符串,在使用的时候应该为 ${designPeoples} 而不是 '${designPeoples}' 不需要引号
vars.put("designPeoples", JSON.stringify(designPeoples));

后一个接口的入参

{"item": {"id": "${itemId}","mainid": "${mainId}","name": "${itemName}","type": "项目"},"designPeoples": ${designPeoples}
}

相关文章:

Jmeter自动化实战

一、前言 由于系统业务流程很复杂,在不同的阶段需要不同的数据,且数据无法重复使用,每次造新的数据特别繁琐,故想着能不能使用jmeter一键造数据 二、创建录制模板 可参考:jmeter录制接口 首先创建一个录制模板 因为会有各种请求头,cookies,签名,认证信息等原因,导致手动复制…...

构建高效的Java SOCKS5代理:从零开始的网络转发实现

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…...

spring-boot(绑定配置文件及应用)

配置文件 SpringBoot使用一个全局的配置文件&#xff0c;配置文件名是固定的&#xff1b; application.properties application.yml 配置文件的作用&#xff1a;修改SpringBoot自动配置的默认值&#xff1b;SpringBoot在底层都给我们自动配置好&#xff1b; YAML&#x…...

Mac OS 搭建MySQL开发环境

Mac OS 搭建MySQL开发环境 文章目录 Mac OS 搭建MySQL开发环境一、安装Mysql&#xff1a;二、配置环境变量三、安装Navicat 本地环境&#xff1a; Mac OS Sequoia15.0.1&#xff08;M3 Max) 目标状态&#xff1a; 下载安装Mysql&#xff0c;配置相关环境。 一、安装Mysql&…...

windows下安装python库wordCloud报错

换电脑安装wordcloud半天安装失败&#xff0c;记录一下遇到的坑&#xff0c;也给大家节省点时间。 方法1&#xff1a; 错误呢就是下面这个&#xff0c;说没c编译器&#xff0c;要不就去他给的地址上安装一下&#xff0c;我安装了一下好像没什么用&#xff0c;也没太敢勾选&am…...

Spring IOC 自动装配(注入)

注解⽅式注⼊ Bean 对于 bean 的注⼊&#xff0c;除了使⽤ xml 配置以外&#xff0c;可以使⽤注解配置。注解的配置&#xff0c;可以简化配置⽂件&#xff0c; 提⾼开发的速度&#xff0c;使程序看上去更简洁。对于注解的解释&#xff0c;Spring对于注解有专⻔的解释器&#…...

Go使用SIMD指令——以string转为整数为例

本文Go使用SIMD指令采用如下方式&#xff1a; C编写对应的程序clang编译成汇编c2goasm将上述生成的汇编转为go的汇编 准备工具 clang。直接使用apt-get install clang安装即可c2goasm。 go get -u github.com/minio/c2goasm来进行安装asm2plan9s。 go get -u github.com/min…...

分享资源合集

为了方便临时使用到的一些软件&#xff0c;提供百度网盘下载。 通过百度网盘分享的文件&#xff1a;WinHex 21.2 SR-2_x86_x64.exe 链接&#xff1a;https://pan.baidu.com/s/19RAnHl_VcKUcIKADU9z9Gw?pwd6666 提取码&#xff1a;6666 通过百度网盘分享的文件&#xff1a;Zi…...

C#/WinForm 鼠标穿透自定义区域截图(后续实现录屏)

效果 窗体截图录屏 git地址&#xff1a;https://gitee.com/feng-cai/screenshot-recording...

基于SpringBoot的“社区维修平台”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“社区维修平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 管理员登录页面 住户管理页面 社区公关管理页面 维…...

图书管理系统汇报

【1A536】图书管理系统汇报 项目介绍1.用户登录注册功能1. 1用户角色管理2.图书管理功能2.1 添加图书2.2 编辑图书2.3 删除图书 3.图书搜索和筛选3.1 图书搜索3.2 图书筛选 4.图书借阅、图书归还4.1 图书借阅4.2 图书归还 5.用户信息管理5.1上传头像5.2修改头像5.3 修改密码 项…...

【发版通知】FormMaking 表单设计器新版发布,赋能企业实现低代码开发!

FormMaking 介绍 FormMaking 是基于 Vue 的可视化表单设计器&#xff0c;赋能企业实现低代码开发模式&#xff1b;帮助开发者从传统枯燥的表单代码中解放出来&#xff0c;更多关注业务&#xff0c;快速提高效率&#xff0c;节省研发成本。目前已经在OA系统、考试系统、报表系统…...

计算机科学与技术-毕业设计选题推荐

基于特定技术的系统设计与实现 基于深度学习的图像识别系统设计与实现基于区块链的数据安全保护技术研究与实现基于云计算的大数据处理平台设计与开发基于物联网的智能家居系统设计与实现基于机器学习的推荐算法研究与实现 面向实际应用的需求分析与开发 智慧医疗信息系统设…...

《C++音频频谱分析:开启声音世界的神秘之门》

在数字音频的广阔领域中&#xff0c;频谱分析是一项强大而引人入胜的技术。它能够将无形的声音转化为可视化的数据&#xff0c;让我们深入了解音频的特征和结构。那么&#xff0c;在 C这个强大的编程语言中&#xff0c;我们又该如何实现对音频的频谱分析呢&#xff1f; 音频频…...

GitHub 上传项目保姆级教程

构建项目仓库 登录 GitHub 并进入主页。点击右上角的 New 按钮&#xff0c;进入创建新仓库页面。输入仓库名称和描述&#xff08;可选&#xff09;&#xff0c;选择是否公开&#xff08;Public&#xff09;或私有&#xff08;Private&#xff09;。可以选择是否初始化仓库&…...

联想笔记本电脑睡眠后打开黑屏解决方法

下载联想机器睡眠无法唤醒修复工具 下载地址&#xff1a;https://tools.lenovo.com.cn/exeTools/detail/id/233/rid/6182522.html 使用完后重启电脑&#xff0c;问题解决。...

计算机网络:网络层 —— 路由选择与静态路由配置

文章目录 路由选择路由选择的基本概念路由选择算法路由选择策略 路由器的工作原理路由表静态路由配置默认路由特定主机路由 路由选择 路由选择&#xff08;Routing&#xff09;是网络层的一个关键功能&#xff0c;负责在源和目的地之间选择最佳路径&#xff0c;以确保数据包高…...

[LeetCode-55]基于贪心算法的跳跃游戏的求解(C语言版)

/* 题目出处&#xff1a;LeetCode 题目序号&#xff1a;55. 跳跃游戏 题目叙述&#xff1a;给你一个非负整数数组 nums &#xff0c;你最初位于数组的第一个下标位置 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标&#xff0c;如果可…...

C# 将批量图片转为PDF文件

目录 功能实现 范例运行环境 关键代码 组件库引入 ​将批量图片转换为PDF 总结 功能实现 功能实现主要使用 iTextSharp 库实现&#xff0c;将指定目录下的有序的一组图片&#xff0c;组合生成指定文件名的PDF文件。 范例运行环境 操作系统&#xff1a; Windows Server…...

大模型面试题63题(1-11)

扫一扫&#xff0c;实时跟踪面试题&#xff08;关注“算法狗”&#xff09;就可以啦 1. 什么是大型语言模型&#xff08;LLMs&#xff09;以及它们的工作原理是什么&#xff1f; 大型语言模型&#xff08;LLMs&#xff09;是设计用来理解、处理和生成类似人类文本的高级人工智…...

【Flask】二、Flask 路由机制

目录 什么是路由&#xff1f; Flask中的路由 基本路由 动态路由 路由中的HTTP方法 路由函数返回 在Web开发中&#xff0c;路由是将URL映射到相应的处理函数的过程。Flask是一个轻量级的Web应用框架&#xff0c;提供了简单而强大的路由机制&#xff0c;使得开发者能够轻松…...

Java项目实战II基于Spring Boot的交通管理在线服务系统设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着城市化…...

【PythonWeb开发】Flask-RESTful视图类基础知识

flask_restful 是一个扩展库&#xff0c;它为 Flask 提供了快速构建 RESTful API 的功能。使用 flask_restful 可以简化 RESTful API 的开发过程&#xff0c;减少样板代码&#xff0c;并且提供了一些高级特性&#xff0c;如 HTTP 方法的映射、资源路由的定义等。 在flask_restf…...

Kubernetes——part10-2 kubernetes 日志收集方案 EFK

一、EFK 1.1 EFK介绍 EFK为elasticsearch、fluentd、kibana的简称&#xff0c;本案例主要对kubernetes集群日志收集。 1.2 Fluentd介绍 fluentd是一款开源的日志收集工具&#xff0c;其于2016年11月8日被云原生计算基金会录取&#xff0c;并于2019年毕业。 Fluentd优势&…...

mockito+junit完成单元测试

一&#xff1a;单元测试的特点 配合断言使用&#xff08;可以杜绝System.out&#xff09;可以重复执行不依赖环境不会对数据产生影响spring的上下文环境不是必须的一般都需要配合mock类框架来实现 二&#xff1a;常用的mock类框架 mockito 官网&#xff1a;Mockito framew…...

基于web的便捷饭店点餐小程序的设计与实现(lw+演示+源码+运行)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…...

CUDA环境安装终极指南——Linux(其它系统也一样)

文章目录 前言检查驱动配置nvcc安装cudnn完活 前言 不用看其它文章了&#xff0c;这篇文章保你不踩任何坑&#xff0c;安装方法简单快速 检查驱动 检查驱动是否安装&#xff0c;输入以下命令 nvidia-smi如果驱动已经安装&#xff0c;则可跳过此步&#xff0c;否则&#xff…...

安卓开发之登录页面(跳转版)

目录 前言&#xff1a;基础夯实&#xff1a;效果展示&#xff1a;核心代码&#xff1a;网盘源码&#xff1a; 前言&#xff1a; 熟悉安卓开发的基础知识&#xff0c;了解&#xff0c;弹窗&#xff0c;两个页面进行跳转&#xff0c;页面的布局&#xff0c;按钮&#xff0c;文本…...

solidworks学习6吊环-20241030

solidworks学习6吊环 图 1 使用到的命名&#xff1a;拉伸曲面&#xff0c;旋转曲面&#xff0c;镜像实体&#xff0c;剪裁曲面&#xff0c; 前视基准面绘制 图 2 绘制旋转轴 图 3 旋转曲面 图 4 上视基准面绘制&#xff0c;标准圆边尺寸的时候需要按住shift键标注&#x…...

数据结构和算法-动态规划(3)-经典问题

动态规划常见问题 打家劫舍 题目 [力扣198] 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&…...

网站开发美工的任务/seo在线优化工具 si

Chrome默认禁用FlashPlayer&#xff0c;手动开启十分繁琐&#xff0c;下面介绍如何一键开启 开启方法&#xff1a;新建一个文本&#xff0c;复制代码到文本&#xff1b;更改文件后缀名为reg&#xff0c;双击运行&#xff0c;导入到注册表即可 Windows Registry Editor Versio…...

网站更改模板 seo/网站seo视频教程

香蕉派M64开发板简介&#xff1a; 香蕉派 BPI-M64是一块4核64位单板电脑。 其拥有2gb的内存和8gb的emcc&#xff0c;而且板载wifi和蓝牙bt。接口方面拥有两个标准usb接口&#xff0c;一个otg接口&#xff0c;一个hdmi接口&#xff0c;一个耳麦复合接口和一个直流电源接口。 作为…...

江苏建设监理协会网站/百度收录链接提交入口

2014.11.4 7:33 还有三天半就要NOIP&#xff0c;圈一下要背的知识点&#xff1a; 一、数论 1、素数判断 2、筛法求素数 3、求一个数的欧拉函数值 4、预处理欧拉函数 5、卡塔兰数递推式 6、快速幂(模素数的乘法逆元) 7、GCD 二、图论 1、最短路&#xff1a;①堆dijkstra ②spfa …...

可以找厂家的网站/网站如何推广

下面再来说下show slave status命令显示的参数具体含义。1)基于二进制日志复制的显示格式mysql> show slave status\G*************************** 1. row ***************************Slave_IO_State: Queueing master event to the relay logMaster_Host: 172.18.16.22Mas…...

北京网站建设公司现状/设计外包网站

【数据结构】——6.3 二叉搜索树 目录一、二叉搜索树的概念二、二叉搜索树的实现1. 存储结构和实现接口2. 方法的实现2.1 默认成员函数2.2 查找find2.3 插入insert2.4 删除erase2.5 中序遍历一、二叉搜索树的概念 二叉搜索树&#xff08;Binary Search Tree&#xff09;&#…...

如何做网站后台/百度关键词优化多少钱一年

1.Lua环境 这里直接给个官网的链接&#xff1a;LuaForWindows_v5.1.4-46.exe 双击安装即可&#xff0c;建议第一次接触lua的稍微看下教程吧&#xff0c;入门蛮简单的一门语言。 2.Love2d引擎 还是直接给链接&#xff1a; win64位&#xff1a;love-11.1-win64.exe win32位&…...