IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 记录一次压测经验总结 -> 正文阅读

[系统运维]记录一次压测经验总结

1. jemeter页面

在这里插入图片描述

2. 线程组

右键单击测试计划–>添加–>线程–>线程组
线程组属性
线程数:x 总共启用x个线程
Ramp-Up:y y秒内将x个线程全部启动
循环次数:z x个线程循环请求z次
注意:循环次数的“永远”不要打勾,该选项和调度器配合使用,当勾选了永远时,调度器填写的持续时间为m,表示x个线程不停的发起请求,直到请求的时间达到m则停止。这里测试并发的时候,容易造成压测机卡死。
在这里插入图片描述
在这里插入图片描述
setUP线程组在测试任务ThreadGroup 运行前先被运行。通常用在运行测试任务前,做初始化工作。例如建立数据库连接初始分化工作
tearDown线程组在测试任务线程组运行结束后被运行。通常用来做清理测试脏数据、登出、关闭资源等工作。例如关闭数据库连接
在这里插入图片描述
这里我的运用场景是 setup线程组添加登录请求,tearDown线程组添加登出请求,释放sessionId的缓存。

3. 取样器–http请求

右键单击线程组–>添加–>取样器–>HTTP请求
在这里插入图片描述
在这里插入图片描述

4.取样器—TCP请求

TCP请求这里我用于发送指令文本到网关,实现设备上线的操作。
添加步骤:右键单击线程组–>添加–>取样器–>TCP取样器
在这里插入图片描述
在这里插入图片描述
TCPClient classname:TCP报文格式类名,默认前缀org.apache.jmeter.protocol.tcp.sampler.
① TCPClientImpl:普通文本,默认传输格式。一般用来发json串;
② BinaryTCPClientImpl:十六进制报文,指定包结束符;
③LengthPrefixedBinaryTCPClientImpl:继承BinaryTCPClientImpl类,并在BinaryTCPClientlmpl前面增加两个字节数据长度。可在jmeter.properties配置文件中tcp.binarylength.prefix.length设置;
服务器名或IP:服务器主机名称或者服务器ip地址
端口号:服务器端口号
连接:与服务器套接字应用连接的超时时间(单位毫秒,0 表示禁用超时)
响应:服务器响应的超时间(单位毫秒,0 表示禁用超时),这个值的设置跟行尾(EOL)字节值有关系,如果行尾(EOL)字节值中的值设置不正确,会导致JMeter一直在等待无法结束,但是如果指定了Response Timeout这个值的话,在到达这个值的时候就关闭连接。
Re-use connection:如果勾选的话,就代表在一个线程组里,复用一个连接,在要求TCP长连接的时候需要用到这个。
关闭连接:如果勾选的话,一个取样器就只会用一个TCP连接,也就是发送完报文以后,就关闭TCP连接
设置无延迟:参考java.net.Socket.setTcpNoDelay(),如果选中,它将会禁用Nagle’s算法(利用缓存功能),反之
SO_LINGER:该配置项用于控制在关闭连接之前是否要等待缓冲区中的数据发送完成。如果SO_LINGER选项指定了值,则在得到关闭连接的请求之后还会等待指定的秒数以完成缓冲区中数据的发送,在指定的SO_LINGER秒数完成后,关闭连接。因此,如果把该选项设置成0,那么所有连接在收到关闭连接的时候都会立即关闭,避免产生很多处于TIME_WAIT状态 (等待状态)的套接字,单位为秒。
行尾(EOL)字节值:判断行结束的byte值,如果设置值在-128到127之外将会跳过EOL检测。可以在jmeter.properties文件中增加属性eolByte进行设置,如果在TCP Sampler Config(TCP 取样器配置)中也设置这个属性,那么TCP Sampler Config中设置的将会奏效。比如服务器端返回的字符串都是以回车符结尾,那么可以将该选项设置成10。例如我这应答的最后一个字节是十六进制的44,转换为十进制则是68。
要发送的文本:需要发送的数据

5.http请求注意:

jemeter默认的文件类型有:application/x-www-form-urlencoded(参数可以在Parameters或Body Data里输入)、multipart/form-data
但application/json不是默认的文件类型,所以需要告诉服务器我们发送的请求信息是哪种格式的,当接口的contentType为application/json时,需要添加一个http信息头管理器。
在这里插入图片描述

6.监听器

监听器常用的是结果树、聚合报告、BeanShell监听器。添加步骤:右键http请求/线程组–>添加–>监听器
作用范围:以结果树为例,结果树的作用范围取决于添加在取样器下还是线程组下。
结果树:查看每一个请求的请求内容和响应结果。
聚合/汇总报告:请求响应时间的统计,包含最大响应时间、最小响应时间、中值、平均值等。
BeanShell:分前置处理器、后置处理器、断言。
在这里插入图片描述

7.BeanShell断言

配合json提取器使用,在调用了登录接口后,将sessionId设置为全局变量
添加步骤:添加–>后置处理器–>Json提取器
用于提取请求响应文本的sessionId值,并赋值给变量sessionId
在这里插入图片描述在这里插入图片描述
BeanShell用于将json提取器获取的sessionId设置为全局变量。
添加步骤:右键单击http请求–>添加–>断言–>BeanShell断言(这里添加断言或者beanShell后置处理器都行)
在这里插入图片描述
将响应文本中的sessionId设置为全局变量,脚本 KaTeX parse error: Expected group after '_' at position 2: {_?_setProperty(se…{sessionId},)}
在这里插入图片描述
//${__setProperty(变量名,值} 全局变量赋值,跨线程调用,可以再任意地方调用,但不能跟在import xxx后面
${__property(sessionId)}函数返回Jmeter的属性值。
在这里插入图片描述

8.断言

除了上面提到的beanShell断言外,还有其他的断言。
以响应断言为例。添加一个响应断言,判断响应文本是否包含“请求成功”,若返回的结果中不包含请求成功,则断言不通过。
在这里插入图片描述
以断言持续时间为例。判断响应时间是否低于200ms,若响应时间高于200ms,则断言不通过。
在这里插入图片描述

9.计数器

在实际的应用场景中,添加数据时有部分字段要求不能重复,此时计数器的应用可以避免繁琐的更改参数值操作。
在这里插入图片描述
在这里插入图片描述
这里设置了引用的名称,在参数中引用可以通过${upNum}对该值进行引用。设置开始的和递增值,最大值可以根据需要设置。当值增加到上限时,停止自增,回到初始值继续自增。
在这里插入图片描述

10.总结

对于压测,找瓶颈可以通过添加线程组的线程数和循环次数对接口加压,查看聚合报告的吞吐量是否继续增加,若增加了很大的循环次数后,吞吐量还有提高的空间,则可以加线程数,线程数一般加到20已经很高了,直到吞吐量不再增加或者增加的幅度很小则可以确定瓶颈,

参考博文:https://blog.csdn.net/weixin_39607473/article/details/111108192

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 11:10:24  更:2022-07-03 11:14:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 17:39:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码