JMeter‌最全使用手册

【初识JMeter‌】

JMeter‌是一个开源的压力测试工具,由Apache组织开发,基于Java编写。它最初被设计用于Web应用测试,但现在已经扩展到其他测试领域,可以用于测试静态和动态资源,如静态文件、Java小服务程序、CGI脚本、Java对象、数据库、FTP服务器等‌。

Apache JMeter TM是纯Java 开源软件,最初由Apache Software Foundation的Stefano Mazzocchi开发,旨在负载测试功能行为和测量性能。 您可以使用JMeter分析和测量Web应用程序或各种服务的性能。 性能测试意味着针对重负载,多个和并发用户流量测试Web应用程序。 JMeter最初用于测试Web应用程序或FTP应用程序。 如今,它也用于功能测试,数据库服务器测试等。

【JMeter优点】

开源 :JMeter完全免费,允许开发人员使用源代码进行开发
友好的GUI :JMeter非常易于使用,并且不需要时间来熟悉它
独立于平台 :JMeter是100%纯Java桌面应用程序。 所以它可以在多个平台上运行
完整的多线程框架 。 JMeter允许通过单独的线程组同时和同时采样不同的函数
可视化测试结果:测试结果可以以不同的格式显示,如图表,表格,树和日志文件
易于安装 :您只需复制并运行* .bat文件即可运行JMeter。 无需安装。
高度可扩展 :您可以编写自己的测试。 JMeter还支持可视化插件,允许您扩展测试
多种测试策略 :JMeter支持许多测试策略,如负载测试 ,分布式测试和功能测试 。
模拟 :JMeter可以使用并发线程模拟多个用户,对正在测试的Web应用程序造成沉重负担
支持多协议 :JMeter不仅支持Web应用程序测试,还评估数据库服务器性能。 JMeter支持所有基本协议,如HTTP,JDBC,LDAP,SOAP,JMS和FTP
录制和回放 - 在浏览器上记录用户活动,并使用JMeter在Web应用程序中模拟它们
脚本测试 :Jmeter可以与groovy, Bean Shell和Selenium集成进行自动化测试。

【JMeter也是一种性能测试工具:性能测试指标】

性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据。

性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系统的响应时间、TPS、吞吐量、资源利用率等性能指标,来检测系统上线后能否满足用户需求的过程。

性能指标(TPS QPS RPS形容服务器,HPS形容客户端(用户每秒点击率))

(1)虚拟用户数

(2)并发数

(3)事务

(4)场景:性能测试的用例

(5)响应时间

(6)TPS:一定时间能处理的事务数(如果事务只有一个接口,TPS=吞吐量)

(7)QPS:每一秒的查询率(针对查询接口,增删改跟他没关系,一般是用来描述数据库的)

(8)吞吐量:衡量网络成功传输的数量

(9)资源利用率:CPU 内存 硬盘 网络

①QPS
QPS,全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。

②TPS
TPS 即 Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。
客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。

Qps 基本类似于 Tps,但是不同的是,对于一个页面的一次访问,形成一个 Tps;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。
QPS和TPS都是衡量一个系统性能的重要指标之一。

【JMeter也是一种接口测试工具:接口测试基础】

目前市面上的三类接口

(1)基于webservice协议接口,通过xml传输数据(比较老)

(2)基于dubbo协议接口,通过json传输数据(微服务)

(3)基于http协议接口(Restful大部分是这种协议),传输json数据(最多)

http协议:请求和响应

(1)请求:请求方式,请求路径,请求头,请求数据

(2)响应:响应码,响应信息,响应头,响应数据

接口约定

(1)请求数据通过json格式传递,需要添加一下请求头

列如:Content-Type:application/json(Postman默认是这样的,Jmeter需要我们手动设置)

(2)除注册登录接口外,请求时需要提供token

(3)token通过登录获取,需要添加以下请求头

列如:Authorization:Bearer abc  其中abc为token值

(4)2XX状态码表示请求成功

(5)4XX状态码表示请求失败,并通过detail字段返回原因

【JMeter工作流程】

JMeter的基本工作流程如下图所示

JMeter模拟一组用户向目标服务器发送请求,并通过图形图表返回目标服务器的统计信息

Introduction to JMeter

完成JMeter的工作流程,如下图所示

【安装JMeter‌】

一、安装前必要的配置

1.桌面点击菜单栏搜索【cmd】,然后打开命令提示符
在安装Jmeter之前,需要检查电脑是否有java的JDK,需要JDK1.8以上的版本支持。

2.输入java -version命令
可以看到我这里安装的是java JDK23.0.1最新的版本。

没有安装JDK的可以看我的这篇文章:JAVA最新版本详细安装教程(附安装包)_java安装-CSDN博客

二、安装:Jmeter

下载地址:Apache JMeter - Download Apache JMeter

1.首先在D盘创建【Jmeter】文件夹,把下载的【Jmeter】压缩包移动到此文件夹


2.右键选择解压到【apache-jmeter-5.6.3\(E)】


3.解压之后会有【apache-jmeter-5.6.3】文件夹

以下是JMeter目录的描述及其重要性 JMeter目录包含许多文件和目录

/bin: 包含JMeter脚本文件,用于启动JMeter
/docs: JMeter文档文件
/extras:与ant相关的额外文件
/lib/: 包含JMeter所需的Java库
/lib/ext:包含JMeter和协议的核心jar文件
/lib/junit: 用于JMeter的Junit库
/printable_docs:

4.右键桌面【此电脑】,点击【属性】


5.下滑找到并点击【高级系统设置】


6.点击环境变量


7.点击【系统变量(S)】下面的【新建】


8.新建变量和变量名
JMETER_HOME
D:\Jmeter\apache-jmeter-5.6.3


9.确认无误后点击【确定】
10.再次点击【系统变量(S)】下面的【新建】


11.新建变量和变量名
CLASSPATH
;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar;


12.确认无误后点击【确定】
13.在系统变量(S)下滑找到变量【Path】,并点击【编辑】


14.点击【新建】


15.新建变量名
%JMETER_HOME%\bin


16.确认无误后点击【确定】
17.点击确定保存更改
 

三、验证:Jmeter

1.桌面开始菜单搜索【cmd】,打开命令提示符
2.输入【jmeter】并按下回车键(Enter)


3.如果是下图提示则表示安装成功

四、启动:Jmeter【我用的方法是配置好环境变量后直接cmd>jmeter】

你可以用3种模式启动JMeter

1、GUI模式

如果你使用的是Windows,只需运行/bin/jmeter.bat文件,即可在GUI模式下启动JMeter。
2、服务器模式

服务器模式用于分布式测试。这种测试的工作方式是客户端-服务器模式。在这种模式下,JMeter以服务器模式运行在服务器计算机上。在客户端计算机上,JMeter以GUI模式运行。

要启动服务器模式,需要运行bin\jmeter-server.bat文件,如下图所示

3、命令行模式

在GUI模式下,JMeter会消耗很多计算机内存。为了节省资源,你可以选择在没有GUI的情况下运行JMeter。要做到这一点,请使用以下命令选项

$jmeter -n -t testPlan.jmx -l log.jtl -H 127.0.0.1 -P 8000
 

以上内容有待考证

五、怎么把Jmter设置为中文

1.关闭打开的Jmeter软件和所以命令提示符
进入以下安装目录并找到【jmeter.porperties】文件:

D:\Jmeter\apache-jmeter-5.6.3\bin


2.右键选中【打开方式(H)】
3.点击【更多应用】
4.选中记事本,然后点击【确定】


5.按住Ctrl+F搜索【language=en】


6.把【en】修改成【zh_CN】


7.删除【language=zh_CN】前面的#号
一定要删除#号配置才会生效。

7.按住Ctrl+S保存,确认无误之后关闭窗口


8.重新打开命令提示符,重新输入【jmeter】并按下回车键(Enter)


9.配置中文界面成功


                        
原文链接:https://blog.csdn.net/ZHOUPUYU/article/details/144102542

【使用JMeter】

 JMeter组件

(1)测试计划:JMeter测试的起点,容器。是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器。

(2)线程组:代表一定的用户,可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。

(3)配置元件:配置请求。维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。

(4)前置处理器:请求之前的操作。负责在请求之前工作,常用来修改请求的设置

(5)定时器:演示请求。负责定义请求之间的延迟间隔。

(6)逻辑控制器:处理请求逻辑。可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。

(7)取样器:是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。

(8)后置处理器:请求之后的操作。负责在请求之后工作,常用获取返回的值。

(7)断言:判断请求结果是否正常。用来判断请求响应的结果是否如用户所期望的。

(10)监听器:收集测试结果。负责收集测试结果,同时确定结果显示的方式。

组件的作用域

(1)组件可以作用于同级组件

(2)组件可以作用于同级组件下的子组件

(3)组件可以作用于父组件

线程组可以等价为PostMan里面的Collections,也就是集合,那么在一个线程组里面可以有很多的API测试用例

添加一个线程组的方法:


可根据需求设置线程属性的线程数、线程次数


添加HTTP请求(取样器)


根据需求填写服务器IP、端口号、请求方式、路径,内容编码一般用utf-8及参数信息


添加HTTP信息头管理器


添加对应参数


添加查看结果数、汇总报告、聚合报告(监听器)


查看结果


响应内容显示乱码解决方法
路径:apache-jmeter-5.5\bin\jmeter.properties文件的
sampleresult.default.encoding参数,此行默认是注释的修改为utf-8重启Jmeter

参考:JMeter的使用_jmeter使用-CSDN博客

2024最新最全jmeter工具使用:jmeter 命令行用法、文件解读、生成报告_jmeter命令-CSDN博客

jmeter的基本使用_jmeter使用-CSDN博客

JMeter 5.5 使用详解(持续更新中......)-CSDN博客(非常详细↓)

引言
Jmeter 核心组件
Jmeter 程序设计通用规范
测试计划
一、线程(用户)
1.1、线程组
1.2、setUP 线程组
1.3、tearDown 线程组
二、配置元件
2.1、CSV 数据文件设置(CSV Data Set Config)
2.2、HTTP信息头管理器
2.3、HTTP Cookie管理器(HTTP Cookie Manager)
2.4、HTTP缓存管理器
2.5、HTTP请求默认值
2.6、计数器(Counter)
2.7、随机变量(Random Variable)
2.8、用户定义的变量(User Defined Variables)
2.9、Java默认请求(Java Request Defaults)
2.10、HTTP授权管理器(HTTP Authorization Manager)
2.11、DNS缓存管理器(DNS Cache Manager)
2.12、FTP默认请求(FTP Request Defaults)
2.13、JDBC Connection Configuration
2.14、总结
2.13.1、Jmeter 变量作用域和规则
2.13.2、配置元件使用小结
三、监听器
3.1、查看结果树(View Results Tree)
3.2、汇总报告(Summary Report)
3.3、聚合报告(Aggregate Report)
3.4、后端监听器(Backend Listener)
3.5、汇总图(Aggregate Graph)
3.6、断言结果(Assertion Results)
3.7、生成概要结果(Generate Summary Results)
3.8、图形结果(Graph Results)
3.9、响应时间图(Response Time Graph)
3.10、保存响应到文件(Save Responses to a file)
3.11、简单数据写入器(Simple Data Writer)
3.12、用表格查看结果(View Results in Table)
3.13、比较断言可视化器(Comparison Assertion Visualizer)
3.14、邮件观察仪(Mailer Visualizer)
3.15、总结
3.15.1、主要监听器的场景使用比较
3.15.2、监听器输出 Jtl 文件详解
3.15.3、Jtl 文件的 html 格式输出
四、定时器
4.1、固定定时器(Constant Timer)
4.2、统一随机定时器(Uniform Random Timer)
4.3、准确的吞吐量定时器(Precise Throughput Timer)
4.4、常数吞吐量定时器(Constant Throughput Timer)
4.5、高斯随机定时器(Gaussian Random Timer)
4.6、泊松随机定时器(Poisson Random Timer)
4.7、同步定时器(Synchronized Timer)
五、前置处理器
5.1、用户参数(User Parameters)
5.2、正则表达式用户参数(RegEx User Parameters)
5.3、取样器超时(Sample Timeout)
六、后置处理器
6.1、正则表达式提取器(Regular Expression Extractor)
6.2、JSON提取器(JSON Extractor)
6.3、边界提取器(Boundary Extractor)
6.4、JSON JMESPath Extractor
6.5、CSS/JQuery提取器(CSS Selector Extractor)
6.6、XPath提取器(XPath Extractor)
6.7、XPath2 提取器(XPath2 Extractor)
6.8、结果状态处理器(Result Status Action Handler)
6.9、调试后置处理程序(Debug PostProcessor)
6.10、后置处理器小结
七、断言
7.1、响应断言(Response Assertion)
7.2、JSON断言(JSON Assertion)
7.3、大小断言(Size Assertion)
7.4、XPath2 断言(XPath2 Assertion)
7.5、断言持续时间(Duration Assertion)
7.6、HTML断言(HTML Assertion)
7.7、JSON JMESPath 断言(JSON JMESPath Assertion)
7.8、MD5Hex断言(MD5Hex Assertion)
7.9 XML断言(XML Assertion)
7.10 Xpath断言(XPath Assertion)
7.11 总结
八、取样器
8.1、HTTP请求(HTTP Request)
8.2、调试取样器(Debug Sampler)
8.3、JSR223 Sampler
8.4、WebSocket Sampler
8.5、测试活动(Flow Control Action)
九、逻辑控制器
9.1、IF 控制器(If Controller)
9.2、事务控制器(Transaction Controller)
9.3、循环控制器(Loop Controller)
9.4、While 控制器(While Controller)
9.5、临界部分控制器(Critical Section Controller)
9.6、ForEach控制器(ForEach Controller)
9.7、包含控制器(Include Controller)
9.8、交替控制器(Interleave Controller)
9.9、仅一次控制器(Once Only Controller)
9.10、随机控制器(Random Controller)
9.11、随机顺序控制器(Random Order Controller)
9.12、录制控制器(Recording Controller)
9.13、简单控制器(Simple Controller)
9.14、运行时间控制器(Runtime Controller)
9.15、吞吐量控制器(Throughput Controller)
9.16、模块控制器(Module Controller)
9.17、开关控制器(Switch Controller)
十、非测试元件
10.1、HTTP代理服务器(HTTP(S) Test Script Recorder)
总结
                        
原文链接:https://blog.csdn.net/qq_45138120/article/details/124056704

【JMeter脚本的编写及使用】

 一、jmeter脚本编写及使用

下面是jmeter编写脚本的一些详细步骤:

1、测试计划全局变量设置


进入jmeter点击已创建的测试计划,看到jmeter右方对应的测试计划全局变量的设置

【host】:被测集群对应的公网地址为:47.113.116.224,图中为内网host,推荐使用内网host进行
【thread】:定义的压测线程的大小,根据需求修改值,全局生效,即所有线程组的线程数由该值控制
【holdime】:定义的压测持续时间大小,单位为秒(s),根据需求修改值,全局生效,即所有线程组的运行时间由该值控制
【port】:接口对应的请求端口号,若请求端口不变无需修改
2、线程组参数设置


在已创建的jmeter测试计划下选中对应已创建的线程组

【线程数】:根据需求可以使用默认的全局变量设置的线程数,上一步在测试计划全局变量中设置的thread线程数默认作为这里的线程数入参,若对当前线程组有特殊需求,可以直接输入具体值作为该线程组的线程数
【Ramp-Up时间】:根据场景需求设定该参数,默认为1。这个参数的意义即接下来花费多少时间将所有测试用户(线程)添加到测试执行中,若为1000个目标线程,Ramp-up时间为1000秒: JMeter将每秒添加一个线程(User);若为1000个目标线程,Ramp-up时间为100秒: JMeter将每秒添加10个用户。
【循环次数】默认勾选永远,若不勾选,需要传入循环次数的具体值,传入了需要进行的线程时间,必勾选循环次数为永远,这样才能按照需求的时间运行完相应的线程
【持续时间】:默认为全局变量的hostTime设定的值,也可根据自己的需求更改,使用【持续时间】前提是点击勾选了【调度器】
3、请求入参设置
点击线程组展开箭头展开具体线程组的内容

【HTTP信息头管理器】:选中并右击线程组,点击添加,选择配置元件,选择【HTTP信息头管理器】

根据请求的接口设置默认不变,若接口请求头Header有变动,根据需求添加


【CSV数据文件设置】:选中并右击线程组,点击添加,选择配置元件,选择【CSV Data Set Config 】

对于某些请求的入参,需要通过读取csv文件中的数据作为接口请求的入参,需要设置文件地址,若默认禁用,则该线程此接口入参无需csv文件,若需使用自己的csv文件作为入参,请确保csv文件路径及相关参数赋值正确,关于每个组件的禁用和启用,就是鼠标选中并右击对应组件,弹出操作框会有对应的禁用/启用选项若组件被禁用即不适用该组件


【HTTP请求】:选中并右击线程组,点击添加,选择取样器,选择【HTTP请求】

在HTTP请求设置中填入全局设置中的host及port,以及需要请求的接口路径和请求方式


4、断言设置


选中需要添加断言的HTTP请求,然后鼠标右击添加,选中断言,点击JSON断言,用的比较多的为json断言,常用的json断言为断言接口返回的code参数是否为0来判断是否通过断言。

如有特殊需求还可选择其他断言方式,根据接口返回参数和压测需求进行断言。

对于dubbo接口的断言,可以使用beanshell断言,这次测试的dubbo接口都不会返回code,可以观察接口返回的错误提示,使用beanshell断言可以比较灵活捕捉到接口返回的异常信息

可以看到只要接口返回的json数据包含exceptionMessage字段则认为接口失败

然后打印出exceptionMessage字段的报错信息。

二、jmeter脚本运行及查看结果

对于jmeter脚本的运行,你可以设置所有线程组一起运行,也可以启用具体的线程组进行运行

发压的线程数取决于全局变量设置的线程数,也可以单独给具体线程设置具体线程数

1、点击测试计划的名字进入对应的测试计划设置页面,设置想要的线程数和发压时间

2、点击jmeter中的运行图标:

然后等待运行时间结束

想要查看jmeter脚本的运行结果,主要依赖这两个监听器,添加方法是选中测试计划,然后右击点击添加--->选择监听器--->点击【查看结果树】和【聚合报告】就可以看到对应的元件已经生成

3、【查看结果树】:结果树中有每个请求的结果,默认是Text,可以看到通过断言的请求是绿色✔状态的,未通过断言的请求是红色❌状态的,点击具体的请求,可以看到取样器结果,请求,和响应数据,点击响应数据即可看到接口返回的响应的具体信息;若为错误请求,我们也可以通过返回的响应数据,通过复制返回的一些报错信息,排查是请求入参的问题还是接口本身的问题

4、【聚合报告】:运行结束后会生成聚合报告

聚合报告详细展示了每个线程组请求的样本数,平均值,99线,95线,异常率等信息,一般重点关注99线,95线,tps,qps,异常率。生成的聚合报告,只有在异常率为0或者极小异常率可忽略情况下才有参考意义,聚合报告中的样本数即脚本运行时间内请求的总数,平均值是每次请求响应的平均时间,99%百分位即99线,即99%的请求响应的时间为这个,95%百分位即95线,即95%的请求响应的时间为这个,吞吐量即为单位时间内服务器能够处理的请求数量,计算qps的方法为总请求数/运行时间,或者线程数/平均响应时间。

从35个方面对Jmeter从原理到实际演示,一册在手,天下我有 1.性能测试基本概念 1.1.RT -Response time 请求响应时间 从客户端发出请求到得到响应的整个时间 一般包括网络响应时间+server的响应时间。 用户接受准则: 例如2-5-10原则,即按照正常用户体验,如果用户能够在2秒内得到响应,会感觉速度很快,如果2-5秒得到响应,用户感觉系统的响应速度还不多,在5-10秒之内得到响应时,用户会感觉系统的响应速度慢,但是可以接受,超过10秒后还没有响应,用户就会感觉不能够接受。 不同行业不同业务可接受的响应时间是不同的,一般情况,对于在线实时交易: 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。 金融企业:1秒以下为佳,部分复杂业务3秒以下。 保险企业:3秒以下为佳。 制造业:5秒以下为佳。 1.2.系统处理能力 系统处理能力是指系统在利用系统硬件平台和软件平台进行信息处理的能力。系统处理能力通过系统每秒钟能够处理的交易数量来评价,交易有两种理解: 一是业务人员角度的一笔业务过程; 二是系统角度的一次交易申请和响应过程。 前者称为业务交易过程,后者称为事务。两种交易指标都可以评价应用系统的处理能力。一般的建议与系统交易日志保持一致,以便于统计业务量或者交易量。系统处理能力指标是技术测试活动中重要指标。 1.1.1.简称 一般情况下,用以下几个指标来度量: HPS(Hits Per Second) :每秒点击次数,单位是次/秒。 TPS(Transaction per Second):系统每秒处理事务数,单位是笔/秒。吞吐量。 不可分割的。要么完全成功,要么完全失败。 QPS(Query per Second):系统每秒处理查询次数,单位是次/秒。 对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS, 一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器点击请求。 每秒钟处理完的事务次数,一般TPS是对整个系统来讲的。一个应用系统1s能完成多少事务处理,一个事务在分布式处理中,可能会对应多个请求,对于衡量单个接口服务的处理能力,用QPS比较多。 1.1.2.标准 无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,根据经验,一般情况下: 金融行业:1000TPS~9000TPS,不包括互联网化的活动 保险行业:100TPS~1000TPS,不包括互联网化的活动 制造行业:10TPS~50TPS 互联网电子商务:10000TPS~100000TPS,例如天猫5万TPS 互联网中型网站:100TPS~500TPS 互联网小型网站: 50TPS~100TPS 1.3.并发用户数量 常见的错误理解: 使用系统的全部用户数量(注册用户) 使用系统的全部在线用户数量 正确理解 并发用户数指在同一时刻内,打开系统并进行业务操作的用户数量,并发用户数对于长连接(数据库连接时长连接,web请求时短连接)系统来说最大并发用户数即是系统的并发接入能力。对于短连接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各种情况相关 http:请求只能由客户端发出,服务端被动响应。 1.1.3. 简称 Virtual User: VU 1.1.4.标准 一般情况下,性能测试是将系统处理能力容量测出来,而不是测试并发用户数,除了服务器长连接可能影响并发用户数外,系统处理能力不完全受并发用户数影响,可以用最小的用户数将系统处理能力容量测试出来,也可以用更多的用户将系统处理能力容量测试出来。 并发用户数量: 并发用户多少为好? 中小企业:5000用户 1.4.错误率 1.1.5. 定义及解释 错误率指系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100%。稳定性较好的系统,其错误率应该由超时引起,即为超时率。 1.1.6.标准 不同系统对错误率的要求不同,但一般不超出千分之六,即成功率不低于99.4% 1.5.CPU 定义及解释 中央处理器是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。CPU Load: 系统正在干活的多少的度量,队列长度。系统平均负载。 CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。CPU 利用率要低于业界警戒值范围之内,即小于或者等于75%;CPU sys%小于或者等于30%, CPU wait%小于或者等于5%。单核CPU也需遵循上述指标要求。 7*24不允许宕机 1.6. Memory 内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 现代的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100%并不代表内存有瓶颈,衡量系统内有有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70%,太多的交换将会引起系统性能低下。 Swap解释: 当物理内存接近崩溃时,将物理内存中最近一段时间最少频率使用到的页框移出物理内存,放进该存储空间,这段存储空间我们称之为交换空间(Swap) 1.7.磁盘吞吐量 Disk Throughput. 磁盘吞吐量是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。 磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于70%。 1.8.网络吞吐量 Network Throughput 10Mbit带宽,每秒传输的字节数1.25MBytes 网络吞吐量是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位为Byte/s。网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。 网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70%。 2.性能测试基本流程 性能测试需求: 1)最终用户体验,例如2-5-10原则,即按照正常用户体验,如果用户能够在2秒内得到响应,会感觉速度很快,如果2-5秒得到响应,用户感觉系统的响应速度还不多,在5-10秒之内得到响应时,用户会感觉系统的响应速度慢,但是可以接受,超过10秒后还没有响应,用户就会感觉不能够接受。 2)技术需求, cpu,内存,网络吞吐量,磁盘吞吐量 3)标准要求: 竞品分析- 响应时间 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。 金融企业:1秒以下为佳,部分复杂业务3秒以下。 保险企业:3秒以下为佳。 制造业:5秒以下为佳。 TPS 金融行业:1000TPS~9000TPS,不包括互联网化的活动 保险行业:100TPS~1000TPS,不包括互联网化的活动 制造行业:10TPS~50TPS 互联网电子商务:10000TPS~100000TPS,例如天猫5万TPS 互联网中型网站:100TPS~500TPS 互联网小型网站: 50TPS~100TPS 性能测试计划 测试环境,测试需求,测试方法,测试时间表,测试组织架构,测试风险,输入输出文档 性能测试步骤: 性能测试执行 3.性能测试工具 4.Jmeter简介 4.1.Jmeter的基本概念 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言 4.2.我们为什么使用Jmeter 开源免费还很好用,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试,压力(负载和压力)测试等多种功能,支持录制回放,入门简单 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试 多平台支持,可在Linux,Windows,Mac上运行 5.Jmeter安装配置及目录结构 5.1.Windows下Jmeter下载安装 登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件 安装JDK,配置环境变量(具体步骤不做介绍) 将下载Jmeter文件解压,打开/bin/jmeter.bat 5.2.Jmeter的目录结构 /bin 目录(常用文件介绍) examples:目录下包含Jmeter使用实例 ApacheJMeter.jar:JMeter源码包 jmeter.bat:windows下启动文件 jmeter.sh:Linux下启动文件 jmeter.log:Jmeter运行日志文件 jmeter.properties:Jmeter配置文件 jmeter-server.bat:windows下启动负载生成器服务文件 jmeter-server:Linux下启动负载生成器文件 /docs目录——Jmeter帮助文档 /extras目录——提供了对Ant的支持文件,可也用于持续集成 /lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录 /licenses目录——软件许可文件,不用管 /printable_docs目录——Jmeter用户手册 6.Jmeter简单入门 6.1.修改语言 6.2.创建测试计划 6.3.添加线程组 6.4.添加sampler设置http请求 6.5.添加结果树 6.6.查看结果 7.测试计划 独立运行每个线程组: 再每一组运行结束后启动下一个 Run tearDown Thread Groups after shutdown of main threads:   主线程关闭运行后拆除线程组, 8.线程组 Delay Thread creation until needed                延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。  持续时间(秒):测试计划持续多长时间,会覆盖结束时间。  启动延迟(秒):测试计划延迟多长时间启动,会覆盖启动时间。 9.Sampler --HTTP请求 请求方式 请求路径 请求ip 请求协议 请求编码 重定向之前的和之后的请求都会在结果树中显示出来 自动重定向,只会显示重定向之后的地址。 10.结果收集 10.1.查看结果树 10.2.表格查看结果 偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。 10.3.聚合报告 10.4.Summary Report 11.Jmeter参数化 11.1.用户定义的变量 使用配置原件中用户定义的变量可以进行参数化 11.2.用户参数 使用前置管理器设置用户参数 11.3.使用csv配置原件 配置元件(Config E
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值