Loading

Jmeter - 安装与使用

Jmeter 介绍与安装

性能测试:模拟多个用户的操作对服务器硬件性能的影响。

  • TPS:每秒事物处理能力
  • RT:响应时间

常见性能压力测试工具

  • Apache Jmeter:Java 语言开发,开源
  • LoadRunner:C 语言开发,商业
  • Locust:python 语言开发,开源

Jmeter 优点

  • 入门简单,有图形化界面
  • 插件机制,可以二次定制
  • 支持多操作平台

压测脚本录制与编写

Jmeter 配置代理

  • Test plan -> Add -> Thread Group

  • Thread Group -> Add -> Logic Controller -> Recording Controller

  • Test plan -> Add -> Non-Test Elements -> HTTP(S) Test Script Recorder

image

信任后,点击 start。 在 jmeter/bin 目录下,会自动生成证书。Mac 系统双击证书,钥匙串内选择 登录 - 证书,找到 jmeter 证书,设置为始终信任,关闭弹窗,输入电脑密码即可。

image

浏览器配置代理

Chrome 浏览器,安装 SwitchOmega 插件,创建 jmeter 情景模式,端口号设置为 8888

录制与回放

开始录制后,访问网页,就会把请求都记录在 Recording Controller 内。

录制的请求比较多,可以通过 HTTP(S) Test Script Recorder 设置过滤:

  • URL Patterns to Include 仅录制配置内的域名
  • URL Patterns to Exclude 排除配置内的域名(.*\.(png|gif|js|ttf|woof|css).*

录制完成后,关闭录制。添加 View Result Tree,重新 start 录制的请求,即可看到响应信息。

虚拟用户并发模拟

Test Group 设置

压测结果分析

Listener View Result Tree

查看结果树,直接在当前界面显示请求结果

  • RegExp Tester(正则表达式)
  • CSS 选择器
  • Xpath Tester
  • Json Tester

Aggregate Report

聚合报告,显示请求时间、tps 等百分比

图形化界面创建好请求后,运行

# -n 不启动图形化界面
# -t 指定测试脚本
# -l 指定测试结果
# -R 指定远程节点,多个节点中间用逗号隔开
$ ./jmeter.sh -n -t test_script.jmx -l test_script.jtl
# 本地启动一个 python 服务
$ python -m http.server 80
# 本地启动一个 nginx 服务
docker run --name nginx-load-test -p 88:80 -d nginx:1.17.9

Jmeter 分布式压测

分布式简介

单机性能瓶颈,CPU、内存、IO等

大型系统, 单机无法模拟,所以需要多台机器对一台服务器施压。

工作节点 - slave 部署

负载机(slaves):端口 tcp 1099

jmeter/bin 目录下修改配置文件:

  • jmeter.properties: 关闭 SSL server.rmi.ssl.disable=true
  • system.properties: java.rmi.server.hostname=192.xxx.xxx.xx(本机地址)
  • 运行 jmeter-server

等待出现 created remote object... 即可,节点配置完毕,等待控制机连接。

控制节点 - Master 部署

控制端(Master):端口 udp 4445

jmeter/bin/jmeter.properties 修改配置文件:

  • 添加负载机 IP:remote_host = slave 节点的 hostname,多个用逗号隔开
  • 关闭 SSL:server.rmi.ssl.disable=true

运行测试

windows 注意关闭防火墙

启动 jmeter 界面程序,运行菜单内,可控制所有远程机器。

  • 远程退出所有:节点远程服务直接关闭,远程机器退出命令行
  • 如果有多台机器的话,线程数设置为 10,那么就是每台机器上都起 10 个线程。

Backend Listener

将测试数据转入到数据库内

posted @ 2023-03-10 15:04  ABEELAN  阅读(15)  评论(0编辑  收藏  举报