服务端性能测试-可乔

采样器 / 取样器
采样器(取样器): 模拟用户操作,向服务器发出请求的组件;
v 采样器作用:向服务器发送请求,记录响应信息与响应时间;
v 常用采样器讲解:
v HTTP Request Sampler
v Debug Sampler
v BeanShell Sampler

JMeter 场景逻辑控制技术
1、利用JMeter 逻辑控制器
2、实现测试业务流程中的逻辑变化
3、模拟实际业务场景

监听器
用来动态的监控JMeter执行测试的过程,实时查看测试结果;
1、 常用监听器:
2、查看结果树
3、 聚合报告
4、后端监听器

定时器
顾名思义,定时器是用来控制采样器发出请求开始时间的组件
1、 常见定时器:
2、 固定定时器
3、高斯随机定时器
4、吞吐量定时器
5、并发定时器

1000毫秒 = 1秒

可以模拟思考时间

流量定时器:

并发定时器:

断言元件的使用
断言的作用就是让 JMeter 程序判断预期结果和实际结果是否一致,从而
判定请求是否成功
1、 常见断言:
2、响应断言
3、大小断言
4、XPath 断言
5、Json 断言

断言能不使用就不用,会影响jmeter的性能

常见配置元件剖析
1、配置元件的用途
2、常见的配置元件
3、配置元件的执行顺序
4、配置元件的作用范围/
5、 配置元件执行结果的查看

前置处理器
前置处理器
1、 在取样器发送请求之前执行,做一些准备工作,如设置参数、环境变量等
2、 常见前置处理器举例:
3、 Sample Timeout 前置处理器
4、 BeanShell 前置处理器

image

后置处理器
1、 后置处理器主要用于取样器执行后的提取数据操作;
2、常见的后置处理器:
3、 Json 数据提取器
4、 正则表达式数据提取器
5、XPath 数据提取器

JMeter 执行顺序
1、 JMeter 八大组件
2、 执行顺序
image

image

image

HTTP 请求属性设置

HTTP cookie 设置
Cookie manager
• 自定义cookie
• 配置项

HTTP 信息头管理器

HTTP 请求设置

监听器与测试结果

性能分析系统级别指标 io cpu mem net

io 指标监控命令 iostat

io 指标监控命令 df

cpu 指标监控命令 uptime

  • 命令描述: 用于显示系统总共运行了多长时间和系统的平均负载
  • 命令演示: uptime

cpu 指标监控命令 cat /proc/cpuinfo

cpu 指标监控命令 mpstat

  • 命令描述: 是一款常用的多核CPU性能分析工具,用来实时查询每个CPU的性能指标,以及所有CPU的平均指标
  • 命令演示: mpstat

cpu 指标监控命令 sar

  • 命令描述: 是一个Linux下的监控工具,可以用来监控CPU性能状况
  • 命令演示: sar -u 1 1

mem 指标监控命令 cat /proc/meminfo

mem 指标监控命令 vmstat

  • 命令描述: 用来获得有关进程、内存、虚拟内存、页面交换空间及 CPU活动的信息
  • 命令演示: vmstat

mem 指标监控命令 free

  • 命令描述: 显示系统使用和空闲内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存
  • 命令演示: free, free -g

net 指标监控命令 ping

  • 命令描述: 向目标系统发送报文,检测网络连通性的工具
  • 命令演示: ping

net 指标监控命令 ifconfig

net 指标监控命令 hostname

  • 命令描述: 显示本机的hostname, 修改本机的hostname
  • 命令演示: hostname
    image

net 指标监控命令 netstat

  • 命令描述: 用于显示各种网络相关信息,如网络连接,路由表,接口状态等
  • 命令演示:
    • netstat -an
    • netstat -at
    • netstat -au
    • netstat -p

top 命令使用

top

  • 命令描述: 实时的显示系统中各个进程的资源占用情况
  • 统计信息: 前五行是系统的整体统计信息。
  • 进程信息: 统计信息下方类似表格的区域显示的是进程的详细信息,默认5秒刷新一次。
  • 命令演示: top

ps 命令

  • 命令描述: ps是命令是 Process Status 的缩写,linux下最常用的进程查看命令;

  • 使用技巧:

    1. 可以配合管道命令 | 和查找命令 grep 同时执行来查看特定进程。
    2. 可以配合管道命令 | 和文本分析命令 awk 同时执行来定位具体进程参数值
  • 命令演示:

    • ps
    • ps -aux
    • ps -ef
    • ps -ef | grep | awk

nmon 工具

JMeter 变量与引用

使用变量进行参数化测试
参数化测试

1、 用户自定义参数化
2、 CSV 导入参数化

image

JMeter 参数化 csv
• CSV 数据准备
• 导入CSV 文件

image

JMeter 参数化 xml
参数化 - xml
• 条件:请求响应结果格式为XML
• 目标:需要提取XML中的某个参数的值

参数化 - xml
• 方法:利用JMeter 正则表达式提取器,提取xml对应参数值
• Demo: 提取orderId值

JMeter 参数化 json
参数化 - json
• 条件:请求响应结果格式为json
• 目标:需要提取json中的某个参数的值

参数化 - json
• 方法:利用JMeter JSON 提取器,提取对应参数值
• Demo: 提取city值

image

JMeter 参数化 yaml
参数化 - yaml
• 条件:请求响应结果格式为yaml
• 目标:需要提取yaml中的某个参数的值

image

JMeter 参数化 redis
参数化 - redis
• 关于Redis: 一种开源的内存数据结构存储,用作数据库,缓存和
消息代理。
• 目标:在JMeter中提取Redis中的数据参数值,驱动压测运行

参数化 - redis
• 前置条件:已安装JMeter Plugin Manager
• 插件安装:Redis Data Set

参数化 - redis
• 实战数据准备:在Redis 数据库中插入list类型的参数,输入三个成
员值

参数化 - redis
• 方法: JMeter中添加Redis Data Set, 配置读取Redis 参数值

JMeter 参数化 mysql
参数化 - mysql
• JDBC 连接池配置
• mysql 读数据

JMeter 并发策略
用户并发类型
• 同时在线 – 日常场景
• 同时刷单 – 秒杀场景
• 两种并发场景的区别
• 并发策略 Demo

20个并发:同时在线的场景,但不一定是同时刷的情况

模拟同时刷的场景:

等待3s时间,20个并发建立完成后再统一发出

可能会有1-2毫秒的误差

JMeter WebService 测试

性能监控系统价值

搭建服务端性能监控系统 Prometheus
Prometheus 系统
• Prometheus是一种由go语言(golang)开发的开源监控、报警系统
• 部署方法: Docker 部署
• 准备prometheus.yml配置文件
• 下载docker 镜像: docker pull prom/prometheus
• 启动docker容器: docker run -d --name prometheus -p 9090:9090 -v
:/etc/prometheus prom/prometheus

Prometheus 系统
• 访问验证 http://:9090/targets

搭建数据分析系统 Grafan

性能监控平台部署 - Grafana
• Grafana是用于可视化大型测量数据的开源程序,它提供了强大和优雅
的方式去创建、共享、浏览数据。
• 部署方法: Docker 部署
• 下载镜像: docker pull grafana/grafana
• 启动镜像: docker run -d -p 3000:3000 --name=
-v :/var/lib/grafana grafana/grafana

性能监控平台部署 - Grafana
• 访问 Grafana 的控制台链接, http://localhost:3000/ 验证它已
经运行正常
• 默认用户名/密码:admin / admin,登录之后请跳过修改密码

JMeter 实时压测结果收集

image

1 个赞