性能测试阶段4之jmeter组件和基本使用

https://blog.csdn.net/weixin_45912307/article/details/120191558

性能测试阶段4之jmeter组件和基本使用

  • day01 jmeter基础
    • 1.1jmeter环境配置及安装
      • 1.1.1jmeter安装及启动
    • 1.2jmter常用目录文件介绍
      • 1.2.1bin目录
      • 1.2.2 docs
      • 1.2.3 lib
      • 1.2.4 Printable_docs
    • 1.3jmeter基本使用&元件介绍
      • 1.3.1 主页面布局
      • 1.3.2 jmeter入门脚本
      • 1.3.3 测试计划元件
    • 1.4 jmeter运行原来
    • 1.5 测试计划要素
    • 1.6 录制脚本
      • 1.6. 1badboy录制
      • 1.6.2 jmeter自身代理录制脚本
    • 1.7 注意事项
    • 1.8 接口基础知识
  • day02 jmeter核心知识
    • 2.1 发送http请求
      • 2.1.1 http管理器
      • 2.1.2 http请求配置
      • 2.1.3 http请求默认值
    • 2.2 参数化
      • 2.2.1 csv数据控件实现参数化
      • 2.2.2 用户参数化
      • 2.2.3 用户定义的变量
      • 2.2.4 jmeter参数化总结
    • 2.3 jmeter连接数据库---以MySql为例
    • 2.4关联
      • 2.4.1 xpath关联
      • 2.4.2 json提取器
      • 2.4. 3 正则表达式提取器
    • 2.5 断言
      • 2.5.1 响应断言
      • 2.5.2 json断言
      • 2.5.3 大小断言和响应时间断言
    • 2.6 集合点
    • 2.7 内置函数
    • 2.8 线程组间通信
    • 2.9 逻辑控制器
      • 2.9.1 if控制器
      • 2.9.2 ForEach控制器
      • 2.9.3环控制器
  • day 03 jmeter中元件总结
    • 3.1什么是元件
    • 3.2 元件作用域
    • 3.3 元件执行顺序
  • day04 分布式
    • 4.1 jmeter分布式步骤
    • 4.2 非GUI模式运行
    • 4.3 性能指标解读:
    • 4.4 jmeter静默压测

day01 jmeter基础

1.1jmeter环境配置及安装

1.1.1jmeter安装及启动

  • 安装jdk1.8
  • 再官网下载jmeter的zip文件
    • https://jmeter.apache.org/
    • 解压zip文件,将解压后的文件放在一个没有中文的路径下
  • jmeter启动
    • 进入jmeter路径 的bin目录并且打开
    • 在bin目录下找到jmeter.bat文件,双击
  • 在windows下启动jmeter
    • jmeter/bin jmeter.bat
  • 在liunx下启动jmeter
    • jmeter/bin jmeter.sh

1.2jmter常用目录文件介绍

性能测试阶段4之jmeter组件和基本使用_第1张图片

1.2.1bin目录

  • jmeter.properties 系统配置文件
    • 如果配置文件有修改,必须重启jmeter才能生效
  • jmeter.sh linux下启动文件
  • jmeter.bat Windows下启动文件
  • jmeter-server.bat windows分布式测试要用的服务器配置
  • jmter-server linux分布式测试要用的服务器配置

1.2.2 docs

  • 接口文档目录

1.2.3 lib

  • 存放jar包,jmeter核心文件

1.2.4 Printable_docs

  • printable_docs的usermanual子目录下的内容是JMeter的用户手册文档,其中usermanual下component_reference.html是最常用到的核心元件帮助文档。

1.3jmeter基本使用&元件介绍

1.3.1 主页面布局

jmeter主要页面布局标题栏、菜单栏、工具栏、树形标签栏和内容栏

  • 标题栏:主要显示计划信息及JMeter版本。
  • 菜单栏:全部的功能的都包含在菜单栏中。
  • 工具栏:工具栏中的按钮在菜单栏都可以找到,工具栏就相当于菜单栏常用功能的快捷按钮树形
  • 标签栏:树形标签栏通常用来显示则试用例(计划)相关的标签。
  • 内容栏:配合树形标签栏显示,树形标签中点击哪个标签,内容栏中就显示相应的内容和操作。

1.3.2 jmeter入门脚本

  • 添加测试计划

    • 打开jmeter默认有一个测试计划
  • 添加线程组
    性能测试阶段4之jmeter组件和基本使用_第2张图片

  • 线程组下添加取样器:http请求

    • 鼠标右键Thread Group —> sampler —> HTTP Request
      性能测试阶段4之jmeter组件和基本使用_第3张图片
      性能测试阶段4之jmeter组件和基本使用_第4张图片
  • 设置断言:

    • 采样器下添加响应状态码断言
    • 采样器下添加响应文本断言
      性能测试阶段4之jmeter组件和基本使用_第5张图片
      性能测试阶段4之jmeter组件和基本使用_第6张图片
      性能测试阶段4之jmeter组件和基本使用_第7张图片
  • 添加监听器:查看结果树、聚合报告

    • 在取样器下添加查看结果树
    • 在线程组下添加聚合报告
      性能测试阶段4之jmeter组件和基本使用_第8张图片
      性能测试阶段4之jmeter组件和基本使用_第9张图片
  • 设置线程组:并发数、加载时间、循环次数
    性能测试阶段4之jmeter组件和基本使用_第10张图片

  • 运行脚本:点击绿色三角按钮
    性能测试阶段4之jmeter组件和基本使用_第11张图片

  • 结果 查看

性能测试阶段4之jmeter组件和基本使用_第12张图片
性能测试阶段4之jmeter组件和基本使用_第13张图片

1.3.3 测试计划元件

  • 测试计划:项目名称

  • 线程组:业务流程

    • Number of Theads(users):并发数
    • Ramp-up period(seconds):用户全部启动时间(s)
    • Loop Count:循环次数
  • 取样器(Sampler):测试用例(一个接口请求)

    作用: 向服务器发送请求并记录响应内容和响应时间

    • 是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元
    • 一个取样器通常进行三部分的工作:向服务器发送请求,记录服务器的响应数据和记录响应时间信息
  • 逻辑控制器(Logic Controller)

    • 一类:用于控制testplan中sample节点发送请求的逻辑顺序的控制器,常用:IF、SwitchController、Runtime Controller、循环控制器
      性能测试阶段4之jmeter组件和基本使用_第14张图片

    • 另一类:用于组织可控制sample节点的,如:事务控制器、吞吐量控制器

  • 配置元件(Config Element):用于提供静态数据配置的支持(一般用于参数化)

  • 前置处理器(pre Processors):实际发送请求之前对即将发出的请求进行特殊处理

  • 后置处理器(post Processors):对sample发出请求后得到的服务器响应进行处理。一般用于提取响应中的特定数据

  • 定时器(Timer)

    • 用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段
  • 断言(Assertions):检查测试中得到的响应数据是否符合预期

  • 监听器(Listener):对测试结果处理和可视化展示的一系列组件,常用有图形结果、查看结果树、聚合报告

1.4 jmeter运行原来

  • 以线程方式在jvm虚拟机上运行
  • jmeter GUI模式运行测试脚本对电脑本身的资源消耗较大,无法实现大的并发和压力测试
  • 使用命令行模式实现高并发和压力测试
  • 使用GUI模式:用于编写和调试测试脚本

1.5 测试计划要素

  • 测试计划
  • 在测试计划中至少有一个线程组
  • 在线程组中至少有—个取样器
  • 在测试计划中必须有监听器

1.6 录制脚本

1.6. 1badboy录制

  • 安装badboy
  • 打开badboy在地址栏输入被测地址,回车
  • 打开badboy时默认记录状态,输入网址,直接操作即可
  • 操作完成,点击停止记录
  • 导出脚本
    • file----export jmeter 保存
  • 在jmeter中打开已有文件
    • jmeter文件名.jmx
    • 在jmeter点击打开文件,选择文件路径,找到需要的文件进行打开即可
  • 添加监听器|:查看结果树/聚合报告
  • 设置用户数、线程组、循环次数,点击运行

性能测试阶段4之jmeter组件和基本使用_第15张图片
性能测试阶段4之jmeter组件和基本使用_第16张图片
性能测试阶段4之jmeter组件和基本使用_第17张图片
性能测试阶段4之jmeter组件和基本使用_第18张图片
性能测试阶段4之jmeter组件和基本使用_第19张图片

1.6.2 jmeter自身代理录制脚本

  • 1.打开jmeter创建新的测试计划
  • 2.在测试计划下添加一个线程组
  • 3.添加http代理服务器
    • 在测试计划下—鼠标右键–非测试元件—http代理服务器
  • 4.配置http代理服务器
    • 端口号默认
    • https domains:填写电脑本地ip
    • 在Plan Creation中选择目标控制器
    • 在requests Filtering中配置
      • 添加匹配的url:.*\.(baidu\.com).*;过滤的url:.*\.(css|js|PNG|jsp|icon|png|gif).
  • 5.手动设置代理
  • 6.线程组下添加录制控制器
  • 7.http代理服务器点击Start按钮,录制完毕点击停止
  • 8.线程组下添加查看结果树

性能测试阶段4之jmeter组件和基本使用_第20张图片
性能测试阶段4之jmeter组件和基本使用_第21张图片
性能测试阶段4之jmeter组件和基本使用_第22张图片
性能测试阶段4之jmeter组件和基本使用_第23张图片
性能测试阶段4之jmeter组件和基本使用_第24张图片
性能测试阶段4之jmeter组件和基本使用_第25张图片
性能测试阶段4之jmeter组件和基本使用_第26张图片
性能测试阶段4之jmeter组件和基本使用_第27张图片

1.7 注意事项

  1. 解决中文乱码问题

    • Jmeter安装目录/bin/ jmeter.propertiessampleresult.default.encoding 默认为“ISO-8859-1”,将参数修改为sampleresult.default.encoding=utf-8即可
    • 同时注章将注轻符吕去掉,于不会牛动
  2. 修改默认语言

    • language = zh_CN

性能测试阶段4之jmeter组件和基本使用_第28张图片
性能测试阶段4之jmeter组件和基本使用_第29张图片

  1. 修改完重新启动jmeter,检查是否还有乱码问题

性能测试阶段4之jmeter组件和基本使用_第30张图片

1.8 接口基础知识

接口三要素

  • 请求地址/方式
  • 请求参数
  • 返回值
    HTTP协议
  • 请求方式
    • get
      • 带参数params
      • 不带参数
    • post
      • x-www-form-urlencoded参数类型键值对
        • content-type:application/x-www-form-urlencoded
      • json格式数据参数类型
      • content-type:application/json
    • put
    • delete

day02 jmeter核心知识

2.1 发送http请求

2.1.1 http管理器

  • http信息头管理器<==>http请求头
  • 主要使用Content-Type参数
    • Content-Type指请求参数的数据类型
  • 在jmeter中,发送http的post请求时,需要添加http信息头管理器
  • 实例:https://www.ctrip.com/
    • 浏览器输入https://www.ctrip.com/
    • 谷歌浏览器打开F12,输入目的地,点击搜索
    • 对照抓取的数据,在http采样器中填写:协议(https)、服务器名称或ip、请求方式(post)、路径、请求体
    • 在http采样器下添加http信息头管理器,对照request header,添加请求数据类型
      • accept:json
      • content-type:application/json
    • 添加查看结果树,点击运行

性能测试阶段4之jmeter组件和基本使用_第31张图片
性能测试阶段4之jmeter组件和基本使用_第32张图片
性能测试阶段4之jmeter组件和基本使用_第33张图片
性能测试阶段4之jmeter组件和基本使用_第34张图片
性能测试阶段4之jmeter组件和基本使用_第35张图片
性能测试阶段4之jmeter组件和基本使用_第36张图片

2.1.2 http请求配置

http协议 默认端口80
https协议 默认端口443

  • 协议 http
  • 服务器名称或ip:接口域名
  • 端口号:如果有填写具体端口号,如果没有端口号不填
  • 方法:get、post、put、delete、PATCH、HEAD、copy、options
  • 路径:接口地址
  • 内容编码:utf-8
  • 参数:针对post请求是x-www-form-urlencoded格式和form-data格式
  • 消息体数据:针对post请求中json格式/xml格式请求参数,相当于postman中raw
  • 文件上传:上传文件接口

2.1.3 http请求默认值

  • 位置:
    • 线程组—添加----配置元件—HTTP请求默认值
  • 作用:
    • 将同一线程组下所有HTTP请求的协议和服务器域名统一管理
    • 如果HTTP请求中自己填写的协议和服务器域名,当发送请求时,使用本身的

性能测试阶段4之jmeter组件和基本使用_第37张图片

2.2 参数化

  1. 参数化定义:根据需求获取数据并进行赋值的过程
  2. jmeter中常用方式
    • csv data set Config
      • 适用氛围:适用于需要大量测试数据的前提
    • jmeter引用变量写法:${变量名}

2.2.1 csv数据控件实现参数化

  • 建立一个csv格式文件
    • 在excel建立文件另存为csv格式,使用notepad++转码为utf-8
    • 配置jmeter中csv数据文件设置
      • 位置:线程组–添加----配置元件-----CSV数据文件设置。
      • 文件名:选择准备好的csv文件
      • 文件编码:UTF-8
      • 变量名称:变量名;如果有多个使用英文逗号隔开
      • 忽略首行:如果csv文件首行写的是变量名称,选择忽略首行True,如果不是选择False
      • 分隔符:如果csv文件使用的是逗号隔开,即默认值。其余选项按照默认值即可
    • 在HTTP请求中引用参数
      • ${变量名}
      • x-www-form-urlencoded格式是:"${变量名}"
    • 如果使用csv文件中所有数据,需要设置线程组的线程数或循环次数

性能测试阶段4之jmeter组件和基本使用_第38张图片
性能测试阶段4之jmeter组件和基本使用_第39张图片
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r7zyBB2f-1632044306489)(C:\Users\jieliu666\AppData\Roaming\Typora\typora-user-images\1631458087570.png)]
性能测试阶段4之jmeter组件和基本使用_第40张图片
性能测试阶段4之jmeter组件和基本使用_第41张图片

2.2.2 用户参数化

  • 位置
    • 前置处理器---->用户参数
  • 使用方式
    • 针对哪个http请求使用就在哪个http请求下添加
    • HTTP请求---->添加---->前置处理器----->用户参数
  • 配置用户参数
    • 添加变量
      • 添加变量名称
    • 添加用户
      • 添加测试数据
      • 一个用户就是—组测试数据
    • 使用用户参数
      • 在HTTP请求中引用变量
      • 在线程组中设置线程数;线程数的值和用户参数中的用户数一致

性能测试阶段4之jmeter组件和基本使用_第42张图片
性能测试阶段4之jmeter组件和基本使用_第43张图片
性能测试阶段4之jmeter组件和基本使用_第44张图片
性能测试阶段4之jmeter组件和基本使用_第45张图片

2.2.3 用户定义的变量

  • 位置
    • 测试计划页面(一般情况下)
    • 配置元件中—>用户定义的变量
  • 配置
    • 添加变量
  • 使用
    • 凡是可以输入的位置,都可以使用变量

性能测试阶段4之jmeter组件和基本使用_第46张图片
性能测试阶段4之jmeter组件和基本使用_第47张图片
性能测试阶段4之jmeter组件和基本使用_第48张图片

2.2.4 jmeter参数化总结

  • CSV数据文件配置----位置:配置元件中。
    • 适用于大量测试数据时的使用
  • 用户参数----位置:前置处理器中。
    • 适用于少量测试数据时
  • 用户定义的变量-----测试计划/配置元件
    • 适用于常量配置:数据库地址,测试环境地址,登录数据

2.3 jmeter连接数据库—以MySql为例

  • 查看mysql版本号:mysql -uroot -p
  • 在测试计划中导入数据库驱动jar包
    • jar包下载链接及提取码
      • 链接:https://pan.baidu.com/s/1nqtoV-KhhdcZRj_G9gZKUg 提取码:1234
  • 测试计划下添加线程组
  • 在线程组中添加JDBC Connection Configuration
    • 配置JDBC Connection Configuration
      • variable Name for created pool中填写要连接的数据库的名称
      • Database Connection Configuration填写数据库相关参数
        • 数据库连接地址
          • jdbc:mysql://数据库域名或IP:端口/数据库名称
        • 选择数据库驱动
        • 数据库用户名
        • 数据库密码
  • 在线程组中添加JDBC request
    • Variable Name Bound to Pool中填写和连接数据库时—致的名称
    • 写sql语句
  • 在线程组下添加查看结果树
  • 在测试计划中设置用户并发数(可选)
  • 获取数据库查询结果
    • sql语句中变量引用
      • ${变量名}
    • 获取sql中查询结果
      • 在variable names中填写变量名
      • 变量名指对查询结果的命名 接收sql结果
    • debug sample
      • 作用:显示脚本中变量的结果
        性能测试阶段4之jmeter组件和基本使用_第49张图片
        性能测试阶段4之jmeter组件和基本使用_第50张图片
        性能测试阶段4之jmeter组件和基本使用_第51张图片
        性能测试阶段4之jmeter组件和基本使用_第52张图片
        性能测试阶段4之jmeter组件和基本使用_第53张图片
        性能测试阶段4之jmeter组件和基本使用_第54张图片
  • 参数化:三种方式
    • CSV(不做演示)
    • 用户参数
    • 用户自定义变量

性能测试阶段4之jmeter组件和基本使用_第55张图片
性能测试阶段4之jmeter组件和基本使用_第56张图片

2.4关联

从上一条请求中获取数据,使用在下一条请求的数据中

2.4.1 xpath关联

  • 使用场景
    • 在接口返回值为HTML或xml格式时,使用xpath提取器
  • xpath提取器
    • 后置处理器中---->xpath提取器
  • 配置xpath提取器
    • 引用名称:接收返回值数据的变量名
    • XPath query :xpath表达式
    • 匹配数字:0表示随机选择,-1表示取所有
    • 缺省值:当没有找到对应数据的时候,显示缺省值的内容
    • XML parsing Options中选择Use TidyQuiet

性能测试阶段4之jmeter组件和基本使用_第57张图片
性能测试阶段4之jmeter组件和基本使用_第58张图片
性能测试阶段4之jmeter组件和基本使用_第59张图片

2.4.2 json提取器

  • HTTP请求---->右键---->添加-一>后置处理器---->json提取器使用场景
    • 在接口返回数据为json格式时,使用
  • 配置json提取器
    • 引用名称:接收返回值数据的变量名
    • json path expressions:jsonpath表达式$..获取字段名
    • 匹配数字:0表示随机选择,-1表示取所有
    • 缺省值:当没有找到对应数据的时候,显示缺省值的内容

性能测试阶段4之jmeter组件和基本使用_第60张图片
性能测试阶段4之jmeter组件和基本使用_第61张图片

2.4. 3 正则表达式提取器

  • 正则表达式用法: https://blog.csdn.net/weixin_45912307/article/details/108615866
  • HTTP请求–>右键–>添加–>后置处理器–>正则表达式提取器
  • 使用场景:适用于任何返回形式(json、text、html等)
  • 表达式示例
    • "token":"(.*?)" 匹配0次或多次
    • "token":"(.*+)" 匹配1次或多次
  • 配置正则表达式提取器。前2个选项默认即可
    • 引用名称:接收返回值数据的变量名。正则表达式:"session":{(.*?)}
    • 模板:$1$表示取第—组数据
    • 匹配数字:0表示随机选择,1表示取第一个
    • 缺省值:当没有找到对应数据的时候,显示缺省值的内容

性能测试阶段4之jmeter组件和基本使用_第62张图片
性能测试阶段4之jmeter组件和基本使用_第63张图片
性能测试阶段4之jmeter组件和基本使用_第64张图片
性能测试阶段4之jmeter组件和基本使用_第65张图片

2.5 断言

2.5.1 响应断言

  • 断言状态码添加断言:哪个接口需要断言,在接口下添加断言。
    • 配置断言
      • 在测试字段----选择响应代码
      • 在测试模式—填写期望的状态码 200
  • 断言文本值
    • 配置断言
      添加后置处理器—>bean shell postprocessor
      • 编写脚本---->将返回值中的中文解码
    • 在测试字段—选择响应文本
    • 在测试模式–填写要断言的具体字段和值

性能测试阶段4之jmeter组件和基本使用_第66张图片

2.5.2 json断言

  • 作用范围:返回值格式为json格式添加JSON断言
    • 个接口需要断言,在接口下添加
  • 断言配置JSON断言
    • Assert JSON Path exists:获取返回结果的字段----实际结果
    • Expected Value:预期结果填写具体数据也可以引用参数

性能测试阶段4之jmeter组件和基本使用_第67张图片

2.5.3 大小断言和响应时间断言

  • 大小断言
    • 断言返回值所占字节数的多少
    • 如果填写20比较类型>则表示返回值的字节数>20
  • 持续时间断言
    • 断言接口响应时间是否≤所期望的时间
    • 注意:接口的响应时间都是毫秒级别的

性能测试阶段4之jmeter组件和基本使用_第68张图片
性能测试阶段4之jmeter组件和基本使用_第69张图片

2.6 集合点

  • Synchronizing Timer —集合点
    • 位置:定时器---->Synchronizing Timer
    • 哪个接口需要并发,就在哪个接口下添加集合点
  • 配置集合点
    • 每次集合的用户数
    • 集合用户数所用时间(单位:毫秒)
      • 时间设置为0,表示无限等待,直到线程数量==集合数
      • 设置时长:表示在规定时间内启动已集合线程,不管有没有集合到预期的数量
  • 注意事项
    • 集合数最好能被线程数整除
    • 集合时间最好大于等于线程组中的启动时间

2.7 内置函数

  • 1.点击jmeter页面的函数助手
  • 2选择需要使用的函数
  • 3.设置函数相关参数
  • 4.点击生成
  • 5.复制函数字符串
  • 6.粘贴到需要使用的位置
    性能测试阶段4之jmeter组件和基本使用_第70张图片

2.8 线程组间通信

  • 作用:实现多个线程组间的数据传递
  • 操作步骤:
    • 1.将原来的参数提升作用域使用函数:setProperty

    • 2.设置setProperty

      • 属性名称:指提升作用域后的变量名称
      • value of Property:需要提升作用域的变量值${token}
    • 3.在线程组1中添加一个新的取样器—Bean shell取样器

    • 4.将设置好的setProperty函数复制粘贴到Bean shell 取样器中

    • 5.设置Property函数

      • 属性名称:新的变量名—>提升作用域后的变量名称
    • 6.将设置好的Property函数复制粘贴到线程组_2中

    • 7.设置线程组请求的先后顺序

      • 在线程组—>调度器填写持续时间和启动延时

性能测试阶段4之jmeter组件和基本使用_第71张图片
性能测试阶段4之jmeter组件和基本使用_第72张图片
性能测试阶段4之jmeter组件和基本使用_第73张图片
性能测试阶段4之jmeter组件和基本使用_第74张图片
性能测试阶段4之jmeter组件和基本使用_第75张图片

2.9 逻辑控制器

2.9.1 if控制器

  • 位置
    线程组—>添加—>逻辑控制器---->如果(if控制器)
  • 配置果控制器
    • 不勾选任何选项的使用方法注册
      • 符串比较
        • 参数和值都需要加引号,例如:“${time}”==“九点”
      • 数字比较
        • ${time}==9
      • 布尔值
        • ${[time}
        • 参数的值必须小写true/falsel
    • 勾选将条件解释为变量表达式
      • 借助函数_jexl3或groovy直接输出true/falseo
    • 全部勾选
      • 借助${(JMeterThread.last_sample_ok}
      • 返回的是上一个取样器的执行结果,如果执行通过,返回true那么下一个取样器才可以正常执行;反之,下—个取样器就不执行:

2.9.2 ForEach控制器

  • 作用: ForEach控制器一般和用户定义的变量一起使用,在用户自定义变量中读取一系列相关的变量。
  • 位置逻辑控制器---->foreach控制器
  • 使用方式
    • 1.设置用户定义变量
      • 变量名:前缀_数字
        • 例:name_1要求后缀数字—定是连续的。
    • 2.配置foreach控制器
      • 1.输入变量名前缀:name
      • ⒉.开始循环字段(不包含):
      • 3.结束循环字段(包含):
      • 4.输出的变量名称:指用户定义的变量通过foreach控制器后,新名称
    • 3.使用foreach控制器输出的变量${新名称}
    • 4.ForEach 控制器->HTTP请求
    • 5.则试计划->察看结果树

性能测试阶段4之jmeter组件和基本使用_第76张图片
性能测试阶段4之jmeter组件和基本使用_第77张图片
性能测试阶段4之jmeter组件和基本使用_第78张图片
性能测试阶段4之jmeter组件和基本使用_第79张图片

2.9.3环控制器

  • 控制请求循环次数

性能测试阶段4之jmeter组件和基本使用_第80张图片
性能测试阶段4之jmeter组件和基本使用_第81张图片
性能测试阶段4之jmeter组件和基本使用_第82张图片

day 03 jmeter中元件总结

3.1什么是元件

相同类似功能组件的集合称为元件

3.2 元件作用域

分类:
1.取样器是作用域的参考物,本身无所谓作用域的概念

2.以结果树为代表的大部分组件

  • 作用域:直接父级取样器+直接兄弟取样器

3.以逻辑控制器为代表的组件未注册只对子级取样器有效

3.3 元件执行顺序

在同一作用域范围内,test plan中的元件按照以下顺序执行:

  1. config Elements—配置元件

  2. Pre-porcessors----前置处理器

  3. Timer—定时器

  4. Sampler—取样器

  5. Post-porcessors(除非Sampler得到的返回结果为空)—后置处理器

  6. Assirtions(除非Sampler得到的返回结果为空)----断言

  7. Listener(除非Sampler得到的返回结果为空)—监听器

注意: 不会因为在脚本中的放置顺序而改变其执行顺序;如果在一个脚本中有多个同类型的元件,他们的执行顺序是按在脚本中的排序执行的

day04 分布式

4.1 jmeter分布式步骤

  • 执行机
    • 获取本机IP,将IP写在jmeter配置文件中,remote_hosts=lP:1099
    • 执行机需要关闭防火墙和其他网卡
    • 执行机打开jmeter-server.bat文件
  • 控制机
    • 将执行机的ip写入到配置文件中remote_hosts=lP:1099,如果有多个,用逗号隔开
    • 如果控制机需要执行脚本,那么,需要打开jmeter-server.bat
  • 注意事项
    • 执行中也需要放置jmeter脚本,并且放置路径要和控制机的一致
    • 控制机和执行机在同一个网段下
    • jmeter版本和ava版本一致

4.2 非GUI模式运行

  • 在命令行模式下运行jmeter脚本,默认在jmeter/bin目录下去寻找脚本,将执行结果和测试报告保存在
  • bin目录下如果想运行其他目录下的脚本,或将结果和测试报告保存在其他目录下,那么需要指定完整路径

4.3 性能指标解读:

-  Average :单个请求的平均响应时间
- Median :中位数,也就是50%用户的响应时间				
- 90%Line : 90%用户的响应时间
- 95%Line : 95%用户的响应时间
- 99%Line : 99%用户的响应时间
- Min :最小的请求响应时间
- 平均值的困扰个别极端结果对实际性能数据的干扰
- %Line更能客观反映实际性能情形
- Error ~

4.4 jmeter静默压测

  1. 静默->脱离UI运行JMeter压测

  2. 好处∶命令运行更容易“搞事情"

  3. 命令格式: jmeter -n -t $jmx_file -l $jtl_file
    -h 帮助 -> 打印出有用的信息并退出
    -n 非 GUI 模式 -> 在非 GUI 模式下运行 JMeter
    -t 测试文件 -> 要运行的 JMeter 测试脚本文件
    -l 日志文件 -> 记录结果的文件
    -r 远程执行 -> 启动远程服务
    -H 代理主机 -> 设置 JMeter 使用的代理主机
    -P 代理端口 -> 设置 JMeter 使用的代理主机的端口号

  4. jmx JMeter压测程序脚本文件,压测控制过程记录在jmx文件中

  5. jtl文件是JMeter压测请求响应数据的原始文件

  6. 压测报告的生成

你可能感兴趣的:(#,jmete,软件测试,jmeter,性能测试)