Jmeter压力测试教程(上)

news2025/1/20 3:33:48

JMeter压力测试

  • 一、 简介
    • 1.1优点
    • 1.2缺点
  • 二、安装
    • 2.1下载
    • 2.2解决中文乱码问题
    • 2.5配置环境变量
    • 2.4启动
    • 入门案例
  • 三、线程组相关
    • 3.1 创建多个线程组
    • 3.2 并发和顺序执行
    • 3.3 两个特殊的线程组(setUp/tearDown)
    • 线程细节设置
    • 默认http请求
  • 新增接口
    • 信息头管理器
  • 四、 参数化
    • 4.1用户定义变量
    • 4.2 CSV数据文件设置(推荐)
    • 4.3 用户参数
    • 函数
      • counter
      • Random
      • Time
  • 五、 直接连接数据库
      • 将查出来的数据放到百度上搜索

一、 简介

JMeter是Apache组织使用Java开发的一款测试工具

1、可以用于对服务器、网络或模拟巨大的负载
2、通过创建带有断言的脚本来验证程序是否能返回期望的结果

*:断言就是通过写一个程序,让这个程序帮我们判断实际结果与预期结果的关系。

1.1优点

1、开源、免费
2、跨平台
3、功能强大

1.2缺点

1、不支持IP欺骗
2、使用Jmeter无法验证JS程序,也无法验证页面UI,要配合Selenium来完成Web2.0应用测试

二、安装

2.1下载

前提条件:
由于JMeter是Java写的,必须安装Java环境
1):
1.JDK
2.JRE

2):
下载并安装JMeter:点我下载

安装:直接下载解压即可
在这里插入图片描述

2.2解决中文乱码问题

在找到bin目录下的jmeter.properties文件并打开
将此处的sampleresult.default.encoding的值改为UTF-8
在这里插入图片描述

2.5配置环境变量

1、如果计算机上卖弄没有JDK和JRE,是需要配置JDK和JRE的环境变量的。具体配置可以自行百度
2、配置JMeter环境变量:
新建变量名:JMETER_HOME
变量值:jmeter解压地址
编辑变量名:CLASSPATH
变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
直接复制,最后的分号也要复制,全部点击确定保存

2.4启动

两种方法:

1、在bin目录下找到ApacheJMeyer.jar点击运行

2、windows下点击jmeter.bat(黑窗口不要关闭)

看到如下界面,则环境变量配置成功
在这里插入图片描述

入门案例

大致界面:
在这里插入图片描述下面我们新建一个测试
1、右击测试计划>添加>线程组
在这里插入图片描述

接下来我们会进入到如下界面
在这里插入图片描述

2、进程组>取样器>HTTP请求
在这里插入图片描述
接下来我们会进入到如下界面

在这里插入图片描述

3、以我的接口为例,我的完整api是http://127.0.0.1:8080/user/getAllUser 获取所有用户信息。对应的设置如下
在这里插入图片描述

4、如果想要运行并查看结果的话,我们可以右击user>添加>监听器>查看结果树
在这里插入图片描述
然后点击绿色三角按钮
在这里插入图片描述

查看结果
在这里插入图片描述

三、线程组相关

3.1 创建多个线程组

在这里插入图片描述

接下来我们可以新建多个线程组,并在每个线程组内添加多个http请求。

其实我们可以把项目看成一个进程,把一个模块堪称是一个线程组,然后模块里面的一些功能看作是一个线程。
在这里插入图片描述

我们如果要查看整个项目的测试结果,需要右击项目>添加>监听器>查看结果树

然后点击绿色按钮
在这里插入图片描述
我们可以看到,中间部分全部报红了。那是因为我只是打个样,并没有填写对应的数据

3.2 并发和顺序执行

在这里插入图片描述

设置并发或顺序执行
点击项目(测试计划)>勾选独立运行。。。
在这里插入图片描述

3.3 两个特殊的线程组(setUp/tearDown)

在这里插入图片描述

setUp:最先执行的线程组
tearDown:最后执行的线程组

setUp:可以测试一些初始化的操作
tearDown:可以测试需要最后操作的线程,如退出登录等
在这里插入图片描述

线程细节设置

在这里插入图片描述

默认http请求

我们可以通过设置默认http请求来简化我们线程组内的http的一些配置
在这里插入图片描述
当我们在默认http内设置了请求方式、ip地址、端口号时,我们可以在http请求内省略这些配置
在这里插入图片描述

新增接口

信息头管理器

新增修改(insert/update)实现时提交的数据时JSON格式的,需要声明提交的数据的内容类型

添加信息头:

右击项目>添加>配置元件>http信息头管理器
在这里插入图片描述

然后进行配置

名称:Content-Type
值:application/json:charset=utf-8

在这里插入图片描述

四、 参数化

在这里插入图片描述

4.1用户定义变量

🎆调用格式:${变量名}

添加用户变量

右击项目>添加>配置元件>用户定义变量
在这里插入图片描述
设置
在这里插入图片描述

调用
在这里插入图片描述

4.2 CSV数据文件设置(推荐)

CSV可以是实现批量新增和批量修改操作
在这里插入图片描述

新建一个CSV文件
内容如下:
在这里插入图片描述

保存为utf-8的格式
在这里插入图片描述

添加CSV设置

1、新建CSV配置
在这里插入图片描述
2、选择数据源
在这里插入图片描述
3、设置其他参数

在这里插入图片描述

4、在请求中进行调用
在这里插入图片描述

4.3 用户参数

在这里插入图片描述

演示:
1、添加用户参数配置

添加人员>右击>前置处理器>用户参数
在这里插入图片描述
2、添加变量和用户
在这里插入图片描述
3、进行变量和用户的详细配置
在这里插入图片描述
4、应为设置了3条数据,因此需要设置线程

将线程数设置为3
在这里插入图片描述

函数

在这里插入图片描述

counter

1、添加counter函数
在这里插入图片描述

2、生成counter代码并复制代码
在这里插入图片描述
3、粘贴
在这里插入图片描述
4、运行
在这里插入图片描述

当函数参数为false时,结果如下
在这里插入图片描述

Random

1、添加counter函数
在这里插入图片描述

同理将代码复制给http请求设置里,运行结果:

在这里插入图片描述

Time

1、添加Time函数
在这里插入图片描述

复制代码并运行结果
在这里插入图片描述

注意:如果时间函数参数不设置任何的format格式,则会生成一个时间戳

五、 直接连接数据库

在这里插入图片描述

1、加载jdbc驱动,我这里是Oracle的

在这里插入图片描述

添加JDBC请求
在这里插入图片描述
我们需要配置数据库连接池
在这里插入图片描述

2、此时我们应该添加一个JDBC Connection Configuration

在这里插入图片描述
下面的 mypool则是上面的JDBC Connection Configuration的参数值

在这里插入图片描述

在这里插入图片描述

在SQL框内输入SQL语句:select * from VDMS_USER

数据库连接成功!
在这里插入图片描述

3、添加Debug Sampler
在这里插入图片描述

再到JDBC Rquest里面将Varivable name的参数值设置为实际需要的,我这里设置的是:用户

接下来我们看看效果:

在这里插入图片描述

将查出来的数据放到百度上搜索

我们需要用到上面的调试取样器给出的: 用户_2

我们新建一个http请求
在这里插入图片描述

查看结果树:
在这里插入图片描述
测试成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/26544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP ADM100-1.2之系统登录过程(ABAP)

1、SAP登录过程 为了在前端最终用户和SAP系统实例之间创建连接,sapgui.exe程序需要启动参数。参数字符串是由saplogon .exe程序使用为登录选择的SAP GUI的信息创建。 SAP登录信息有以下两个来源:SAP Logon的配置文件,以及对所选系统的消息服务器的直接请求(下图中的步骤1和…

使用Go+Lua解决Redis秒杀中库存与超卖问题

1、简介 Go语言连接go-redis进行数据库的连接,如果你对这部分尚不了解,建议你先学习这部分知识。另外,本秒杀主要解决两个问题,第一个就是超卖问题,另一个就是库存问题。没有设计专门的页面来模拟并发,我们…

布谷蓝途:易知微「可视大脑助力智慧教育」主题分享精彩实录

如今,大数据技术在教育领域的应用与普及正驶入“快车道”,但仍然存在资源管理分散、数据各自为阵、运营模式传统等痛点,如何借助新技术、新机遇并充分发挥大数据在教育教学中的支撑作用成为重中之重。 布谷蓝途作为国内前沿的大数据方案与服…

网分测试线缆怎么选?

如何在众多选择中寻找到最佳的测试电缆?以下内容由普科科技PRBTEK整理,以下内容将阐述电缆与电缆组件的机械及电气性能,以及如何选择您理想的测试电缆。 2004年5月,美国时代微波系统公司的测试工程师对50欧姆测试电缆的要求作出以下概述&…

银河麒麟桌面操作系统V10安装过程

文章目录下载镜像导入VMware启动安装下载镜像导入VMware 首先去麒麟生态网站注册登录,找到适合自己版本的操作系统 打开VMware新建虚拟机 把镜像放进来 选择Liunx的ubuntu版本 分配处理器和内核 分配内存 后面的就网络、I/O、硬盘按照默认配置就行 启动安装 …

二叉树的建立和遍历

目录创建二叉树中的引用使用遍历顺序创建二叉树使用先序遍历和中序遍历创建二叉树使用中序和后序创建二叉树中序求二叉树用栈实现非递归遍历先序遍历中序遍历后序遍历用栈通过出栈次数进行遍历中序遍历后序遍历队列进行层次遍历思路代码判断是否是满二叉树和完全二叉树递归非递…

面向开发者的开源低代码开发工具,强烈推荐!

每家公司在发展过程中都需要构建大量的内部系统, 比如运营使用的用户管理后台,销售线索后台,双十一活动后台,圣诞节活动后台等。 许多公司内部也都有专门的研发团队负责开发各种各样的后台和内部工具,大量的公司为此付…

Qt开发-QT Quick

前言 QT Quick和Qt widgets这两种技术,官方是强推QT Quick的。 QT Quick中布局一般有如下四种方式, 绝对坐标:x、y、z、width、height、top、left锚(anchors) 布局定位器(Row、Column、Grid、Flow)布局管理器&#…

(微信开发)Laya转发H5网页到微信,带图片

网页转发到微信时,带图片和自定义标题。2022年11月22号 关键解说 _wx.config({ debug: _wx_configdebug, appId: e.appId, timestamp: e.timestamp, nonceStr: e.nonceStr, signature: e.signature, jsApiList: [ // 所有要调用的 API 都要加到这个列表中 ‘onMen…

网络威胁情报git【全面】

开源地址如下: https://github.com/fastfire/deepdarkCTI 网络威胁情报 (CTI) 被定义为收集和分析有关威胁和对手的信息以及绘制模式,这些模式提供了针对各种网络攻击的准备、预防和响应行动做出明智决策的能力。 CTI 涉及收集、研究和分析网络威胁领域的趋势和技…

APP测试面试题汇总(基础篇、进阶篇)

一、基础篇 1、请介绍一下,APP测试流程? APP测试流程与web测试流程类似,分为如下七个阶段: 1.根据需求说明书编写测试计划; 2.制定测试方案,主要是测试任务、测试人员和测试时间的分配; 3.…

Elasticsearch GC优化实践

近期业务查询线上ES集群出现频繁超时告警,尤其是早晨某个时间点固定的报一波超时,从调用链监控上很难看出是什么业务行为导致的。 初步猜测 查看Grafana上Elasticsaerch的基础监控,发现业务告警与ES的Old GC(老年代GC&#xff0…

功率放大器的参数和应用场景是什么

功率放大器是电子测量行业比较常见的一种电子放大器,主要目的是增加给定输入信号的功率幅度,使输入信号功率增加,从而驱动到发射器等输出设备的负载水平。和电流放大器与电压放大器有所不同的是,功率放大器是直接驱动负载并且最终…

SessionCookie

会话 会话:用户打开浏览器进行的一系列操作直至关闭浏览器的过程看作是一次会话 HTTP协议是无状态的,不能实现跟踪对话。比如进入一个网站,每次操作的请求之间相互独立,无法相互联系。也就是说你每次请求过后得到的服务器响应或…

web前端-javascript-基本语法(注释,常用语法,代码格式)

文章目录基本语法1. JS 注释2. 常用语法3. 代码格式基本语法 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><script type"text/javascript">/** 多行注释*///单行注释alert("hell…

学生学python编程---实现贪吃蛇小游戏+原码

学生学python编程---实现贪吃蛇小游戏原码前言主要设计1、蛇的表示2、蛇怎么移动&#xff1f;3、玩家控制小蛇移动功能的实现4、如何判定游戏结束&#xff1f;应用知识点1、python知识点1.1 列表append()在列表未尾增加一个元素del 删除最后一个元素在指定位置增加元素用insert…

vCenter命令行升级

1.为当前vCenter打快照 2.为vCenter关联新的iso镜像 3.SSH登录vCenter 4.检查ISO镜像 software-packages stage --iso software-packages list --staged 5.安装vCenter&#xff0c;安装预计40分钟 software-packages install --staged 6.重启vCenter Command>shell #re…

【论文】撰写小论文用到的资料

一、小论文算法的学习 &#xff08;一&#xff09;资料链接 1.联邦学习&#xff1a;https://www.baidu.com/s 2.迁移学习概述&#xff08;Transfer Learning&#xff09;https://blog.csdn.net/dakenz/article/details/85954548 3.迁移学习&#xff1a;经典算法解析&#xff…

前端怎么解决跨域

JSONP jsonp的原理就是利用<script>标签没有跨域限制&#xff0c;通过<script>标签src属性&#xff0c;将本地的全局函数通过callback传到服务器&#xff0c;服务端将接口返回数据拼凑到callback函数中&#xff0c;返回给客服端 实现思路 服务端的代码&#xff…

第七章 数学 AcWing 1533. 1 的个数

第七章 数学 AcWing 1533. 1 的个数 原题链接 AcWing 1533. 1 的个数 算法标签 数学 枚举 数位DP 思路 显然&#xff0c;直接暴力枚举时间复杂度 230(枚举N个数)∗10(枚举N个数每一位)≈10102^{30}(枚举N个数)*10(枚举N个数每一位)\approx10^{10}230(枚举N个数)∗10(枚举…