大兴网站建设一条龙,行政审批服务中心,wordpress点击tag跳回首页,神华集团两学一做网站Jmeter 的简介
JMeter是一个纯Java编写的开源软件#xff0c;主要用于进行性能测试和功能测试。它支持测试的应用/服务/协议包括Web (HTTP, HTTPS)、SOAP/REST Webservices、FTP、Database via JDBC等。我们最常使用的是HTTP和HTTPS协议。
Jmeter主要组件 线程组#xff08…Jmeter 的简介
JMeter是一个纯Java编写的开源软件主要用于进行性能测试和功能测试。它支持测试的应用/服务/协议包括Web (HTTP, HTTPS)、SOAP/REST Webservices、FTP、Database via JDBC等。我们最常使用的是HTTP和HTTPS协议。
Jmeter主要组件 线程组Thread Group 线程数Number of Threads模拟的用户数量。 Ramp-Up时间Ramp-Up Period达到指定线程数所需要的时间。例如线程数为100Ramp-Up时间为5秒则每秒启动20个线程。 循环次数Loop Count测试循环的次数。 取样器Sampler 用于向服务器发送请求如HTTP请求、JDBC请求等。 在线程组下添加取样器配置请求的URL、方法、参数等。 逻辑控制器Logical Controller 用于控制测试的执行逻辑如循环、条件判断等。 常见的逻辑控制器有If控制器、循环控制器等。 前置处理器PreProcessor和后置处理器PostProcessor 前置处理器在请求发送前执行操作如设置请求头、生成数据等。后置处理器在请求发送后执行操作如处理响应数据、提取需要的值等。 断言Assertion 用于验证响应是否符合预期。可以使用正则表达式、XPath、JSON Path等方式进行断言。 监听器Listener 用于展示测试结果如查看结果树、聚合报告等。 在测试计划或线程组下添加监听器以查看和分析测试结果。
Jmeter高级功能 参数化 使用CSV Data Set Config等方式实现参数化方便进行批量测试。在测试计划中配置CSV文件路径和变量名然后在取样器中使用这些变量。 定时器Timer 用于控制请求的发送频率。在线程组或取样器下添加定时器配置延迟时间和执行时间等参数。 分布式测试 通过配置多个Jmeter实例实现分布式测试提高测试效率。 需要设置主节点和从节点以及配置相关的测试计划和数据文件等。
一、Jmeter 的安装、配置、搭建
1.1 Java环境配置
由于Jemter是基于java语言开发的所以使用Jemter需要安装JDK。Jemter5.0版本要求JDK版本为1.8或1.9一般安装JDK1.8。 JDK 1.8 安装地址JDK 1.8 官网下载 Java环境变量配置环境变量配置
1.2 Jmeter下载 最新版Jemter下载路径Jmeter 官网下载 其他版本Jmeter下载路径Jmeter 二进制 bin文件下载 Jmeter下载
1.3 Jmeter安装及环境变量配置 下载安装包后解压安装 Jmeter 即可 环境变量配置 找到Jmeter下载后的文件所在目录 在环境变量中配置 JMETER_HOME Path%JMETER_HOME%\bin 查看环境变量是否配置成功 运行- cmd- jmeter -v 命令查看是否能查看到Jmeter版本信息运行- cmd-jmeter 命令查看是否能启动jmeter 1.4 启动 Jmeter
进入 apache-jmeter-5.6.3/bin 文件夹点击 jmeter.bat 文件运行JMeter 或在 cmd 中输入 jmeter 指令打开 Jmeter 注意不管用使用哪一种方式打开都会打开一个cmd窗口。如果关闭这个cmd窗口打开的jmeter也会被关闭。
初始界面如下 1.5 Jemter 切换中文环境
在上方导航栏选择 Options - Choose Language - Chinese(Simplified)将语言切换为中文 更换语言过后的界面如下 二、Jmeter 的基本使用
Jmeter 常用按钮 2.1 JMeter脚本编写
首先介绍Jemter基本使用这里以一个 www.baidu.com 为例来进行基本脚本编写。
2.1.1 添加线程组
右键点击“Test Plan” - 添加 - 线程用户 - 线程组可添加测试需要的线程组 线程组可配置线程组名称、注释、线程数、Ramp-up时间、循环次数、调度器等参数 参数解释 线程数虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数就是设置多少个线程数。 Ramp-Up Period(in seconds)准备时长设置的虚拟用户数需要多长时间全部启动。如果线程数为5准备时长为1那么需要1秒钟启动5个线程也就是每秒钟启动5个线程。 循环次数每个线程发送请求的次数。如果线程数为100循环次数为10那么每个线程发送10次请求。总请求数为100*101000 。若勾选“永远”则所有线程会一直发送请求直到选择停止运行脚本。 Same user on each iteration用于控制每次迭代是否使用相同的线程即用户。当该参数被勾选时JMeter在每次迭代时都会使用相同的线程来模拟用户行为。在连续的请求中会保持相同的用户身份如会话、Cookie等。 调度器设置线程组启动的开始时间和结束时间(配置调度器时需勾选循环次数为永远) 启动延迟秒测试延迟的启动时间持续时间秒测试持续的时间
2.1.2 添加 HTTP 请求
JMeter的HTTP请求是性能测试中常用的功能用于模拟用户向服务器发送HTTP请求并获取响应。
右键点击线程组 - 添加 - 取样器 - HTTP请求添加一个HTTP请求 对网址 http://www.baidu.com/s?ieutf-8wdjmeter 进行性能测试参考下图进行配置 参数解释 Web服务器 协议向目标服务器发送HTTP请求协议可以是HTTP或HTTPS默认为HTTP服务器名称或IP HTTP请求发送的目标服务器名称或IP端口号目标服务器的端口号默认值为80 Http请求 方法发送HTTP请求的方法可用方法包括GET、POST、HEAD、PUT、DELETE等。路径目标URL路径URL中去掉服务器地址、端口及参数后剩余部分内容编码编码方式默认为ISO-8859-1编码这里配置为utf-8 同请求一起发送参数 在请求中发送的URL参数可以将URL中所有参数设置在本表中表中每行为一个参数对应URL中的 namevalue参数传入中文时需要勾选“编码”
2.1.3 添加查看结果树
JMeter 的结果查看树用于查看和分析HTTP请求的响应结果。
右键点击线程组 - 添加 - 监听器 - 查看结果树添加一个查看结果树 将查找下方的响应数据格式改为 HTML Source Formatted点击上方的绿色三角按钮运行http请求 运行结果如下
取样器结果
本次搜索返回结果页面标题为“JMeter性能测试_百度搜索”与之前设置的发送参数相吻合。 2.1.4 添加聚合报告
聚合报告是JMeter中用于汇总和分析测试结果的工具。它提供了关于测试运行的各种性能指标如响应时间、吞吐量、错误率等。
右键点击 线程组 - 添加 - 监听器 - 聚合报告用以存放性能测试报告
2.1.5 添加用户自定义变量
用户自定义变量作为存储和管理测试期间需要的值这些变量可以在测试计划中的任何地方引用。
右键点击 线程组 - 添加 - 配置元件 - 用户定义的变量以添加用户自定义变量 添加一个参数 wd用于存放搜索词 在HTTP请求中使用该参数格式为 ${变量名称}即 ${wd} 2.1.6 添加断言
JMeter中断言用于验证测试结果是否符合预期。
在HTTP请求中添加响应断言右键点击 HTTP请求 - 添加 - 断言 - 响应断言
需要校验返回的文本中是否包含搜索词添加参数 ${wd} 到要测试的模式中 2.1.7 添加断言结果
为查看断言的结果在HTTP请求中添加断言结果右键点击 HTTP请求 - 添加 - 监听器 - 断言结果 点击上方的绿色三角形按钮即可运行并查看断言运行结果。 2.2 执行性能测试
2.2.1 配置线程组
点击线程组配置本次性能测试相关参数线程数Ramp-Up时间循环次数等参数。 这里我们配置线程数为20Ramp-Up时间为5秒循环次数为1次。
2.2.2 执行测试
进入聚合报告进行测试。测试之前需要点击上方的扫把按钮清楚之前的调试结果。 点击上方的绿色按钮即可运行测试性能测试执行完成后可通过聚合报告看到测试结果。 一般情况下性能测试中需要重点关注的数据有请求数、平均响应时间、最小响应时间、最大响应时间、吞吐量和错误率
参数说明 Label每个 JMeter 的元素如 HTTP请求都有一个 Name 属性Label显示的就是 Name 属性的值 #样本请求数表示这次测试中一共发出了多少个请求。如模拟100个线程数即100个用户每个线程迭代10次这里就显示100*10 1000 平均值平均响应时间默认情况下是单个请求的平均响应时间。 中位数50 用户的响应时间 90%/ 95%/ 99% 百分位90%/ 95%/ 99% 用户的响应时间 最小值最小响应时间 最大值最大响应时间 异常%请求错误率即错误请求数/请求总数 吞吐量——默认情况下表示每秒完成的请求数Request per Second 接收KB/Sec每秒从服务器端接收到的数据量 发送KB/Sec每秒发送到服务器端的数据量
以上就是使用测试工具JMeter对Web应用程序进行性能测试的流程。
三、注意事项 关闭不必要的监听器在测试过程中如果不需要实时查看结果可以关闭不必要的监听器以减少资源消耗。 合理使用断言过多的断言会增加测试的复杂性应根据实际需求合理使用断言。 优化测试计划在测试过程中应不断优化测试计划如调整线程数、循环次数等参数以达到最佳的测试效果。 注意测试结果的分析通过聚合报告等结果分析工具对测试结果进行深入分析找出潜在的性能问题。