自动化测试实战篇(8),jmeter并发测试登录接口,模拟从100到1000个用户同时登录测试服务器压力

news/2024/11/27 9:45:09/

在这里插入图片描述

  • 首先进行使用jmeter进行并发测试之前就需要搞清楚线程和进程的区别
  • 还需要理解什么是并发、高并发、并行。
  • 还需要理解高并发中的
  • 以及老生常谈的,TCP三次握手协议和TCP四次握手协议
    • **TCP三次握手协议指:**
    • **TCP四次挥手协议:**
  • 进入Jmeter,新建一个线程组
  • 新建一个HTTP请求
  • 模拟用户同时登录,这里使用cms搭建的后台有需求可以自行搜索
  • 添加这三个监控器
  • 模拟线程数:100
  • 模拟线程数:200
  • 模拟线程数:400
  • 模拟线程数:800
  • 模拟线程数:1000
  • 总结

首先进行使用jmeter进行并发测试之前就需要搞清楚线程和进程的区别

进程是资源分配最小单位,线程是程序执行的最小单位;
每个进程内部会有N个线程,但至少要有1个线 程。
比如公司就是一个进程,公司的员工就是线程。
线程占用的资源要⽐进程少很多。
线程之间通信比进程更方便

还需要理解什么是并发、高并发、并行。

并发是指在一个时间段内有多个进程在执行
并行指的是在同一时刻有多个进程在同时执行
高并发是使用技术手段使系统可以并行处理很多请求

还需要理解高并发中的

响应时间(Response Time)
吞吐量(Throughput)
每秒查询率QPS(Query Per Second)
每秒事务处理量TPS(Transaction Per Second)
同时在线用户数量

以及老生常谈的,TCP三次握手协议和TCP四次握手协议

TCP三次握手协议指:

第一次握手:建立连接时,客户端发送syn包到服务器,并等待服务器确认
第二次握手:服务器收到syn包,同时自己也给客户端发送一个确认包syn+ack包
第三次握手:客户端收到服务器syn+ack包,向服务器发送一个确认包

包发送完毕后,客户端和服务器进入连接成功,完成三次握手,双方通信完毕,关闭连接时,进行第四次挥手

TCP四次挥手协议:

第一次挥手:客户端发送一个fin包,申请断开连接,并等待服务器确认。
第二次挥手:服务端回复一个ACK包,表示接收到客户端的关闭连接请求,但是现在服务端还是不能马上关闭,需要检查下是否还有未处理完成的数据
第三次挥手:服务端处理完所有数据,给客户端发送fin包,表示可以断开连接
第四次挥手:客户端回复ACK包,表示断开连接

进入Jmeter,新建一个线程组

在这里插入图片描述
在这里插入图片描述

线程数:表示模拟的用户数量我们本次从100到1000,每次压测+100

Ramp-up就是每个线程的执行时间间隔,0表示并发

循环次数表示循环多少次,如果点击永远就是一直循环下次

调度器表示开始时间和持续时间以及启动延迟的时间

新建一个HTTP请求

在这里插入图片描述

模拟用户同时登录,这里使用cms搭建的后台有需求可以自行搜索

在这里插入图片描述
因为需要模拟同时登录,所以就要在请求体里面加入相应的信息进去
在这里插入图片描述

添加这三个监控器

在这里插入图片描述
再添加一个常数吞吐量定时器
在这里插入图片描述

模拟线程数:100

在这里插入图片描述
在这里插入图片描述

模拟线程数:200

在这里插入图片描述
在这里插入图片描述

模拟线程数:400

在这里插入图片描述
在这里插入图片描述

模拟线程数:800

在这里插入图片描述
在这里插入图片描述

模拟线程数:1000

在这里插入图片描述
在这里插入图片描述

总结

可以看到在100的时候服务器还算是比较稳定,200时也是较为平稳,到400时就开始有些走势不稳,到800时已经开始出现走势乱的情况,到1000时就出现不少的数据异常以及偏离值严重。可以根据项目情况去不断增加压力进行测试
在这里插入图片描述


http://www.ppmy.cn/news/29534.html

相关文章

【编程基础之Python】8、Python复合数据类型

【编程基础之Python】8、Python复合数据类型Python复合数据类型列表(List)创建列表访问元素内置方法列表操作元组(Tuple)创建元组访问元素集合(Set)创建集合基本操作其他操作字典(Dictionary&am…

Python解题 - CSDN周赛第33期

本期四道题全考过&#xff0c;题解在网上也都搜得到。。。没有想法&#xff0c;顺手水一份题解吧。 第一题&#xff1a;奇偶排序 给定一个存放整数的数组&#xff0c;重新排列数组使得数组左边为奇数&#xff0c;右边为偶数。 输入描述&#xff1a;第一行输入整数n。(1<n<…

如何从 Android 手机上的 SD 卡恢复已删除的照片

为了扩展手机的存储空间&#xff0c;很多人都会在安卓手机上插入一张SD卡来存储一些大文件&#xff0c;比如电影、照片、视频等。虽然SD卡给我们带来了很大的方便&#xff0c;但我们还是避免不了数据丢失一些事故造成的。您是否正在为 SD 卡上的照片意外丢失而苦恼&#xff1f;…

【C++】多态虚表

多态——多种形态多态的分类&#xff1a;1.静态多态&#xff1a;函数重载和运算符重载&#xff08;复用函数名&#xff09;2.动态多态&#xff1a;派生类和虚函数实现运行时多态静态多态和动态多态的区别&#xff1a;静态多态的函数地址早绑定——编译阶段确定函数地址动态多态…

JVM—类加载子系统

JVM细节版架构图 ​ 本文针对Class Loader SubSystem这一块展开讲解类加载子系统的工作流程 类加载子系统作用 1.类加载子系统负责从文件系统或者网络中加载class文件&#xff0c;class文件在文件开头有特定的文件标识即16进制CA FE BA BE&#xff1b; 2.加载后的Class类信息…

为什么FPGA在深度学习领域有着得天独厚的优势?

01 FPGA在深度学习领域有哪些优势 FPGA&#xff08;Field-Programmable Gate Array&#xff09;是一种灵活的可编程硬件设备&#xff0c;它在深度学习应用领域中具有许多优势。 首先&#xff0c;FPGA具有非常高的并行性。在深度学习中&#xff0c;许多计算都可以并行化&…

【机器学习】决策树(理论)

决策树&#xff08;理论&#xff09; 目录一、何为决策树1、决策树的组成2、决策树的构建二、熵1、熵的作用2、熵的定义3、熵的计算4、条件熵的引入5、条件熵的计算三、划分选择1、信息增益&#xff08; ID3 算法选用的评估标准&#xff09;2、信息增益率&#xff08; C4.5 算法…

后端程序员的前端基础-前端三剑客之HTML

文章目录1 HTML简介1.1 什么是HTML1.2 HTML能做什么1.3 HTML书写规范2 HTML基本标签2.1 结构标签2.2 排版标签2.3 块标签2.4 基本文字标签2.5 文本格式化标签2.6 标题标签2.7 列表标签(清单标签)2.8 图片标签2.9 链接标签2.10 表格标签3 HTML表单标签3.1 form元素常用属性3.2 i…