第一遍没学懂,后续文章会更新~
目录:
- 1.JMeter介绍与安装
 - Meter简介
 - JMeter安装
 - 2.JMeter的运行
 - JMeter运行、界面功能简介
 - 3.使用代理服务器录制请求
 - 录制压测脚本(一)Web端
 - 脚本录制方法
 - 4.测试计划
 - 5.线程组
 - 6.控制器
 - 7.JMeter采样器/取样器
 - 8.JMeter场景逻辑控制技术
 - 9.JMeter监听器
 - 10.JMeter定时器
 - 11.JMeter断言元件的使用
 - 12.JMeter常用配置元件剖析
 - 13.JMeter前置处理器
 - 前置处理器
 - SampleTimeout前置处理器
 - Beanshell前置处理器
 - 14.JMeter后置处理器
 - 15.JMeter执行顺序
 - 16.JMeter虚拟用户管理
 - 17.HTTP请求属性设置
 - 18.HTTPcookie设置
 - Cookiemanager
 - 19.HTTP信息头管理器
 - Headermanager
 - 20.HTTP请求设置
 - 21.监听器与测试结果
 - Listener&测试结果
 
1.JMeter 介绍与安装
Meter简介
- Apache组织开发的开源免费压测工具
 - 纯Java程序,跨平台性强
 - 源程序可以从网上下载高可扩展性
 - 可对服务器、网络或对象模拟巨大的负载,进行压力测试可以用于接口测试
 - 支持分布式、多节点部署
 
JMeter 安装
下载位置:
- 官网 https://jmeter.apache.org/
 - binary 可运行文件包
 - 官网下载规律 首页 -> Download -> binaries
 - JMeter 安装方法: 直接解压
 - Demo: JMeter 官网寻找安装包,下载,解压
 



2.JMeter 的运行
JMeter 运行、界面功能简介
- 运行环境要求:java运行时环境
 - 运行方法:命令行直接启动 $jmeter_home/bin/jmeter.sh
 - 常规的菜单功能:新建、保存、查询、配置、帮助 等
 - 压测运行相关:开始运行、停止运行、远程运行、停止远程运行 等
 - 设定外观长相更改
 - 配置语言,不过建议用英语(个人体会中文翻译的有点晕)
 - Demo – JMeter 界面操作、外观、语言
 
3.使用代理服务器录制请求
录制压测脚本(一)Web 端
- 压测对象 - http://news.baidu.com
 - 压测页面 – 百度首页,百度新闻
 - 步骤: 
  
- 访问百度首页
 - 单击进入“百度新闻”
 
 - 操作手段: 录制回放,上手容易,入门学习的好手段
 
脚本录制方法
- 打开 JMeter
 - 新建压测脚本
 - 添加 “HTTP(S) Test Script Recorder”
 

- 添加“Thread Group”
 

- 在 Thread Group中添加“Recording Controller”
 

- 打开 HTTP(S) Test Script Recorder
 - 设定 Port = 8088
 - 设定 Target Controller = Test Plan > Tread Group > Recording Controller
 

- 在 Requests Filtering 添加“include”与 “Exclude”URL 正则匹配表达式
 - 目的:避免录制过多没必要的请求
 - Include: .*\.(baidu\.com).*
 - Exclude:.*\.(js|css|PNG|jpg|ico|png|gif).*
 

- 关于链接过滤的几点说明
 - exclude 去掉一些诸如图片、js、css 等静态请求,这些静态资源一般会 单独存放,不会占用服务器运算资源所以压测的时候可以不测试这些资源
 - include 包含内容,只抓取百度URL的内容,不抓其他的网站的内容
 - 正则表达试匹配原理快速入门说明见下页图片说明(菜鸟教程)
 

- 单击保存按钮,命名文件名,将对 JMeter 脚本的更改存储到磁盘
 - 打开浏览器,将浏览器的代理服务器地址指向 http://localhost:8088
 

- 单击HTTP(S) Test Script Recorder中的Start按钮,打开代理
 - 单击弹框中的确定按钮
 - JMeter的录制代理将会开启
 

- 在对应的浏览器中访问百度首页
 - 进入百度新闻站点
 - 停止JMeter的代理服务
 - 可以看到对应的请求已被录制到JMeter中了
 
 
- Demo – JMeter 脚本的录制过程,过滤资源的对比展示
 - 回放验证
 - 添加 View Results Tree
 - View Result Tree 的用途: 看Req /Resp 详情
 

- 只是为了检验,所以一个并发、一次循环即可
 - 单击开始运行按钮
 

- 在 View Result Tree 中
 - 检查 请求/响应 是否都成功了
 

- JMeter 压测回放,检查脚本的正确性
 
4.测试计划
- 用来描述一个压力/性能测试脚本和场景设计的基本运行单元, 使用JMeter进行测试 的所有内容都是基于一个测试计划
 - 用户定义变量
 

- 独立运行每个线程组 
  
- 不勾选:各个线程组并行、随机执行
 - 勾选:线程组按照前后顺序来执行
 
 - 主线程组运行完成之后运行tearDown线程组
 - 函数测试模式,比如保存响应数据或者样本数据,需要注意的是选择该功能非常磁盘 空间
 - 添加文件或者jar包,常用于外部功能调用
 - Demo: 测试计划
 
5.线程组
- 线程组元件是任何一个测试计划的开始点,在一个测试计划中的所有元件 都必须在某个线程组下,所有的任务都是基于线程组。
 - 第一部分:在请求取样器执行错误时需要执行的下一步动作
 - 第二部分:线程属性
 

- 第一部分:在请求取样器执行错误时需要执行的下一步动作 
  
- Continue:继续执行接下来的操作
 - Start Next Loop:忽略错误,执行下一个循环
 - Stop Thread:退出该线程(不再进行此线程的任何操作)
 - Stop Test:等待当前执行的采样器结束后,结束整个测试
 - Stop Test Now:直接停止整个测试
 
 - 第二部分:线程属性 
  
- Number of Thread (users):线程数,模拟的用户数量
 - Ramp-up Period(in seconds):达到指定线程数所需要的时间。举例:线程数设置 为50,此处设置为5,那么每秒启动的线程数 => 线程数50/5 = 10
 - Loop Count: 循环次数
 - Same user on each iteration:每次迭代都用相同的用户, 勾选该选项则不同次迭代 之间是串行执行,不勾选则为并行执行。
 - Delay Thread creation until needed:当线程需要执行的时候,才会被创建。如果不 选择这个选项,那么,在计划开始的时候,所有需要的线程就都被创建好了
 - Specify Thread lifetime:定义线程调度时间
 - Duration (seconds): 持续时间(秒), 在此选项填入N,说明这个计划, 从某个开始时间算起,执行N秒后结束。(会忽略 结束时间 的选项)
 - Startup delay (seconds): 启动延迟(秒),在此选项填入N,手动点击 开始执行计划,然后延迟N秒后,计划才真正开始执行。
 
 
6.控制器
- 种类丰富
 - 为请求执行提供不同的逻辑控制
 - 介绍几个常用的逻辑控制器 
  
- 事务控制器 Transaction Controller
 - 条件控制器 If Controller
 - 循环控制器 Loop Controller
 - 随机控制器 Random Controller
 
 

7.JMeter 采样器/取样器
- 采样器(取样器): 模拟用户操作,向服务器发出请求的组件;
 - 采样器作用:向服务器发送请求,记录响应信息与响应时间;
 - 常用采样器讲解: 
  
- HTTP Request Sampler
 - Debug Sampler
 - BeanShell Sampler
 
 
8.JMeter 场景逻辑控制技术
- 利用JMeter 逻辑控制器
 - 实现测试业务流程中的逻辑变化
 - 模拟实际业务场景
 

- 场景逻辑控制技术
 

9.JMeter 监听器
- 用来动态的监控JMeter执行测试的过程,实时查看测试结果;
 - 常用监听器: 
  
- 查看结果树
 - 聚合报告
 - 后端监听器
 
 
10.JMeter 定时器
- 顾名思义,定时器是用来控制采样器发出请求开始时间的组件
 - 常见定时器: 
  
- 固定定时器
 - 高斯随机定时器
 - 吞吐量定时器
 - 并发定时器
 
 
11.JMeter 断言元件的使用
- 断言的作用就是让 JMeter 程序判断预期结果和实际结果是否一致,从而 判定请求是否成功
 - 常见断言: 
  
- 响应断言
 - 大小断言
 - XPath 断言
 - Json 断言
 
 
12.JMeter 常用配置元件剖析
- 配置元件的用途
 - 常见的配置元件
 - 配置元件的执行顺序
 - 配置元件的作用范围
 - 配置元件执行结果的查看
 
13.JMeter 前置处理器
前置处理器
- 在取样器发送请求之前执行,做一些准备工作,如设置参数、环境变量等
 - 常见前置处理器举例: 
  
- Sample Timeout 前置处理器
 - BeanShell 前置处理器
 
 
Sample Timeout 前置处理器
- 设定请求超时时间
 - 作用范围内的所有请求均生效
 - 单位:毫秒
 
Beanshell 前置处理器
- 什么是Beanshell
 - 小型嵌入式 Java 源码解释器
 - 基本就是 Java 语言
 - BeanShell前置处理器:在Sampler 执行之前会被执行
 - 直接在JMeter的Beanshell处理器中写代码生成当前时间戳
 - 通过程序生成当前时间戳
 - 将时间戳值赋值给变量,然后传递给后续的请求样本
 
14.JMeter 后置处理器
- 后置处理器主要用于取样器执行后的提取数据操作;
 - 常见的后置处理器: 
  
- Json 数据提取器
 - 正则表达式数据提取器
 - XPath 数据提取器
 
 
15.JMeter 执行顺序
- JMeter 八大组件
 - 执行顺序
 - 线程组->定时器->控制器->前置处理器->配置原件->采样器->后置处理器->断言->监听器
 
 
16.JMeter 虚拟用户管理
~
17.HTTP 请求属性设置
~
18.HTTP cookie 设置
Cookie manager
- 自定义cookie
 - 配置项
 
19.HTTP 信息头管理器
Header manager
- 自定义header 变量
 - Header变量值的带入
 
20.HTTP 请求设置
21.监听器与测试结果
Listener & 测试结果
- Listener 种类多样
 - 展示 & 调试测试结果
 










