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

Jmeter压力测试、操作数据库、断言、分布式压测(添加负载机)学习笔记

Jmeter压力测试

 

一、压力测试场景设置

一般我们在做压力测试的时候,分单场景和混合场景,单场景也就是咱们压测单个接口的时候,多场景也就是有业务流程的情况下,比如说一个购物流程,那么这样的场景就是混合场景,就是有多个接口一起来做操作。

1、单场景,一个请求就可以了

2、混合场景,多个请求

3、压测时间,一般场景都是运行10-15分钟,如果是做疲劳测试的话,可以压一天或者一周,根据具体的情况来定  

 

二、线程属性 、调度器配置

  • 线程数:当前线程数量,可以简单的理解为用户数量。
  • Ramp-up Period (in seconds):达到上面指定线程数所花费的时间,单位为秒。举个栗子:假设线程数为100个,花费时间20s,那么每秒启动的线程数 = 线程数/时间,即100/20 = 5。换句话说,就是1秒启动5个线程。
  • 循环次数:勾选“永远”选项,则线程组一直循环。否则,以后面所填数量为准。
  • Delay Thread creation until needed:当线程需要执行的时候,才会被创建。如果不勾选此选项,所有线程在开始时就全部被创建。
  • 调度器:勾选此选项,才可修改下面的调度器配置。

    调度器配置

  • 持续时间(秒):整个测试计划持续的时间。(优先于后面的结束时间选项)
  • 启动延迟(秒):测试计划启动后,会被延迟启动,时间为选项填入的时间。(优先于后面的启动时间选项)
  • 启动时间:整个测试计划将于此处填写的时间点启动
  • 结束时间:整个测试计划将于此处填写的时间点结束

 

线程组说白了就是模拟多个用户,同时或者有顺序的去执行任务。一个线程组可设置多个线程,每个线程之间互不影响。在服务器的并发测试有着非常重要的作用。其中,每个线程的执行,操作的变量都不会影响其他线程的变量值

 

 

三、压力测试数据准备

在做压测的时候,数据量少和数据量大的情况下,测试的结果是不一样的,所以,我们在设计场景的时候是要考虑到这种情况的,要测试数据库中数据量大和数据量小的情况,如果是要测试数据量大的情况下,就要造数据了,造数据可以使用jmeter,操作数据库来造数据,也可以使用python连接数据库,批量的造数据。

 

 

四、压力测试结果查看 

添加聚合报告:

 

 

查看结果关注的几个指标

1、tps是每秒钟处理的请求数,也就是指服务器的处理能力,tps越高说明服务器处理能力越好

2、响应时间,也就是每个请求的处理时间

3、并发用户数 也就是多少并发

 

 

 

 

Jmeter分布式压测 (添加负载机)  

 

我们在压测的时候,可能并发比较大, 一台机子已经启动不了那么多并发了,这个时候我们就要使用多台机子一起来发压力,就要添加压力机,添加压力机怎么添加呢,首先要在做压力机的机子上启动jmeter的代理,然后做为控制机的机子上添加上压力机的ip即可。 Jmeter的bin目录下有一个jmeter-server,启动它即可,windows机子作为压力机的话,运行jmeter-sever.bat,linux作为压力机的话,运行jmeter-server。 然后在作为控制机的jmeter配置文件里添加压力机ip即可,jmeter的配置文件在bin目录下jmeter.properties,添加压力机的时候,在配置文件里面找到remote_hosts添加ip,然后重启jmeter就可以看到远程压力机了

 

 

 一、jmeter分布式压测 (多台电脑一起压测)


1、有多台电脑,每台电脑上都有jmeter,而且这几台电脑都互相能ping通
2、在我的电脑的jmeter的配置文件jmeter.properties里面添加了其他电脑的ip (打开配置文件后,搜索 remote_hosts)(其他机子不需要配置)
3、在其他人的电脑上要启动jmeter-server

通过jmeter-server.bat
主机上的Jmeter才能找到其他电脑上的Jmeter,来调他们的包,让他们的电脑去帮助主机发请求(发压力);

只需要在主机上写好脚本就好,但是如果有参数化文件,那么也要在其他人的电脑的同样位置放一份  

因为改了配置文件,因此需要重启Jmeter才能看到添加的机子

 

、2、在我的电脑的jmeter的配置文件jmeter.properties里面添加了其他电脑的ip (打开配置文件后,搜索 remote_hosts)(其他机子不需要配置)

 

关系图:一台主年脑+多台压测电脑

 

  3、在其他人的电脑上要启动jmeter-server

 

重启 Jmeter之后:

 

 

不以图形化界面运行  如 :在Linux下运行  jmx脚本 ,或windows下CMD运行

我们在做测试的时候,有时候要运行很久,公司用的测试服务器一般都是linux,就可以运行在linux下面,linux下面不能像windows一样有图形化界面,那怎么运行脚本呢,就先在windows上把脚本做好,然后在linux下运行即可,linux下运行jmeter是在jmeter的bin目录下的jmeter.sh这个shell脚本。 sh jmeter.sh -n –t a.jmx -l res.jtl -n代表以没有图形化界面启动,-t代表后面是测试脚本,a.jmx也就是我们做好的jmeter脚本,-l代表测试结果 res.jtl就是测试结果文件,查看结果的话,在查看结果树视图中导入这个res.jtl就可以查看到测试结果了

1、没有图形化界面运行
2、先把jmeter的bin目录加入到环境变量里面 

 

 

 

 


然后执行这个命令  (cmd命令窗口)
jmeter -n -t e:\path\HTTP请求.jmx -l e:/path/res.jtl
-n 代表在没有图形化界面下运行
-t 指定一个测试脚本
-l 指定结果文件,这个查看结果的文件要以.jtl

 

 

上图运行的时候  在 C:\Users\Administrator 下运行,因此如果命令行与结果文件 res.jtl 没有指定路径的话,该结果文件就会存在于当前所在路径下

 

 

 在jmeter里面添加聚合报告,在导入res.jtl文件就可以查看执行结果

 

 

 

 

 

 

 

 

 

Jmeter 连接数据库、操作数据库 

 一、步骤:

1、导入jdbc的jar包,因为jmeter本身不能直接连接mysql,所以需要导入第三方的jar包,来连接mysql    。

找到JAR包的绝对路径

 

 

2、创建数据库连接配置,mysql的url、端口号、账号、密码

 

       1、添加一个JDBC Connection Configuration

       2、配置mysql连接池的名称,后面发sql请求的时候指定连接哪里

       3、数据库的url:jdbc:mysql://192.00.0.00:3307/bugfree?allowMultiQueries=true

      4、数据库驱动:这里就是指定连接什么类型的数据库,mysql、oracle、SqlServer等等

       5、账号密码

 

 

 

 

3、写sql,执行sql

 

 

4、查看结果

 

 

 

 

断言 

断言:
就是自动帮你校验结果用的。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/tanzitanzi/p/9508905.html

相关文章:

  • oracle 修改字符集
  • iOS持续集成(一)——fastlane 使用
  • Python tips(
  • C#窗体越界时鼠标还能回到初始坐标位置
  • SQLServer 2014 本地机房HA+灾备机房DR解决方案
  • Java编程笔试面试题:分析下列程序的执行结果
  • 机器学习常见的优化算法
  • SQL 内连接,外连接(左外连接、右外连接)
  • 进程和任务计划
  • 文件、目录管理
  • centos7安装配置mysql5.6
  • 类的成员和嵌套(建模)
  • vue-组件基础
  • 办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL
  • 字节、字、bit、byte的关系
  • Map集合、散列表、红黑树介绍
  • Mybatis初体验
  • Redis 中的布隆过滤器
  • Vue小说阅读器(仿追书神器)
  • zookeeper系列(七)实战分布式命名服务
  • 闭包--闭包之tab栏切换(四)
  • 服务器之间,相同帐号,实现免密钥登录
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 开源SQL-on-Hadoop系统一览
  • 删除表内多余的重复数据
  • 实战|智能家居行业移动应用性能分析
  • 新书推荐|Windows黑客编程技术详解
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​​​​​​​​​​​​​​Γ函数
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​Python 3 新特性:类型注解
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $NOIp2018$劝退记
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (poj1.3.2)1791(构造法模拟)
  • (二)JAVA使用POI操作excel
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四) Graphivz 颜色选择
  • (推荐)叮当——中文语音对话机器人
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (学习日记)2024.01.09
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原)Matlab的svmtrain和svmclassify
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)C#调用WebService 基础
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)ObjectiveC 深浅拷贝学习
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .FileZilla的使用和主动模式被动模式介绍