Jmeter基础知识

前言:性能测试是现如今测试人员都要有具备会的,至少目前内卷的来说,不会点性能测试、自动化测试,都不对不起自己的高薪,对吧,所以小白想要高薪,就必须要学会这些技能,因为你不会不代表别人不会,缺乏核心竞争力,只会点点点工程师的出路很窄,以下讲解的性能测试用到的工具Jmeter的基础知识,胎教级别教学,绝对看的懂,如果看不懂,当我没说,哈哈哈。

一、性能测试定义

性能测试(Performance Testing):在一定的负载情况下,系统的响应时间等特性是否满足特定的性能需求。

区分用户的概念:

在线用户:已三次握手但未四次挥手[接口知识]

并发用户:对系统伤害大的用户集体访问状态(比如12306抢票、双11、京东618等)

系统实际用户:系统额定的用户。

补充一点:性能指标和性能需求来源于客户。

二、性能测试类型

【1】负载测试(Load Testing):负载测试关注的是不同负载水平的系统的性能指标。为了得到压力数确定下的性能指数。例如我们可以找到系统的最大用户数和最佳用户数。

【2】压力/强度测试(Stress Testing):压力测试则关注在超高负载(超过系统最大用户数)的情况下,系统是否还能稳定处理,如果不能稳定处理,那么系统还能坚持多久。其重点是关注系统是如何失效的,以便于制定系统正式上线后的风险控制措施。

区别:

负载测试

①关注找指标,获取最大用户数指标

②获取指标方式:根据经验得基础指标,在基础指标上增加,一直到系统性能开始下降。在下降的周边范围测试取值。

压力测试

①关注超高负载,目的在于“压死”系统;基于负载测试。

②获取指标方式:根据往期经验值,加到系统崩溃,记录下此时用户数(从最大用户数到崩溃用户数)、时间(系统能撑多久,风险控制措施[含蓄报错,多开服务器]在此时间内上线)、并发等数据。

【3】配置测试(Configuration Testing):在不同的软件、硬件以及网络环境配置下,通过运行一种或多种业务在一定的虚拟用户数量情况下,获得不同配置的性能指标,用于选择最佳的设备及参数配置。

【4】容量测试(Volume Testing):目的是通过测试预先分析出软件中某指标的极限值(如最大并发用户数、数据库记录数等),保证系统在其极限状态下没有出现问题并能正常运行。

区别:

配置测试----》通过对系统的不同配置,获得不同配置下系统的性能指标。

容量测试----》一般用于数据库。(比如:可以打开多少个QQ用户;播放器可以播放多大hz)必须做到极限值。

【5】基准测试(Benchmark Testing):在一定的软件、硬件及网络环境下,模拟一定数量虚拟用户运行或多种业务,将测试结果作为基线数据,在系统调优或者系统评测过程中,通过运行相同的业务场景并比较测试结果,确定调优是否达到效果或者为系统的选择提供决策数据。

【6】并发测试(Concurrency Testing):通过模拟多个用户并发访问同一应用、同一存储过程或数据记录以及其他并发操作,测试是否存在死锁、数据错误等故障。

区别:

基准测试----》在性能测试时就可能覆盖。

并发测试----》关注系统崩溃后会怎么样,是否能恢复,根据情况制定恢复策略。

三、性能指标

【1】工作负荷

就相当于虚拟用户数,对服务器产生多大压力,可以由多少用户同时对服务器发送请求来衡量。

【2】响应时间(Response Time)

从客户端将数据包发出,到接受到服务端发来的请求。[请求发出--响应完成的整个过程时间]

【3】吞吐量(Throughput ~ Ti&To)

吞吐量越大系统性能越好。[吞in;吐out]

【4】吞吐率

单位时间内的吞吐量

【5】Hits/Request

网页点击数/请求数

【6】Hits Per Second

每秒点击次数

四、性能测试实施

Jmeter基础知识

1.系统核心部件的性能测试可能处于前期。

2.一般在接口测试通过之后,系统稳定之后进行性能测试。

3.不是所有软件都需要做性能测试,一般出现并发的软件,这就需要结合需求规格说明书来判断。

4.性能测试在生产环境下对系统进行(独特的测试账号,一般不用虚假数据)。

5.测试分析阶段(性能调优)

(性能调优:工资高,经验要求高,需要懂编程语言3-4种、懂协议、懂数据库3-4种)

五、Jmeter简介及特点

【简介】

Jmeter基础知识

【特点】

 Jmeter基础知识

六、Jmeter与LoadRunner

对比项

Jmeter

LoadRunner

安装

简单,下载解压即可

复杂,安装包大于1GB,安装时间大于1小时

录制/回放模式

支持

支持

测试协议

偏少,可自行扩展

较多,不可自行扩展

分布式大规模压力测试

支持(300个)

支持(50000个)

IP欺骗功能

不支持

支持

图形逻辑控制

支持(较弱)

支持(很强)

测试逻辑控制

支持

支持

监控服务资源(CPU、内存等)

支持

支持

功能测试

支持

不支持

七、Jmeter工作原理

Jmeter基础知识

八、Jmeter环境搭建

Jmeter基础知识

操作:

1、点击右键”我的电脑”->”属性”->”高级”->”环境变量”

Jmeter基础知识

2、在系统变量内新增一个变量:JAVA_HOME   注:必须大写,格式要求!!!

变量值为jdk安装的路径:E:\Jmeter\JDK\jdk_8u191_Windows_x64(例子)

Jmeter基础知识

Jmeter基础知识

3、需要修改系统变量path,在变量最后添加jmeter的bin下路径:

E:\Jmeter\jmeter\apache-jmeter-5.0\bin(例子)

Jmeter基础知识

九、Jmeter基础使用操作

Jmeter基础知识

上图为初始打开界面:

注意编译界面(黑色页面不要关闭,关闭则jmeter会关掉,最小化即可)

【1】语言切换(个人自定义)

Jmeter基础知识

【2】点击文件-新建,可以新建一个”测试计划”。 

Jmeter基础知识

如果是已有jmeter的测试文件,可以打开对应的文件(注:.jmx文件) 

Jmeter基础知识

Jmeter基础知识 【3】测试计划下增加线程组,可以看个人增加多个线程组,线程组=用户。

Jmeter基础知识

 【4】在线程组下新增HTTP请求。

Jmeter基础知识

①HTTP请求的相关接口数据可选用fiddler工具抓包或者Jmeter自带的HTTP代理服务器。 

Jmeter基础知识

Jmeter基础知识 ②关于HTPP请求的获取渠道多种多样,web端的F12工具也可以获取HTPP请求的相关参数及请求头、请求方式等信息。其余微信小程序端、APP端等等的可自行拓展研究。

Jmeter基础知识

 ③HTTP请求的填写

Jmeter基础知识

④HTTP请求的基础操作 

Jmeter基础知识

⑤每个HTTP请求下增加HTTP信息头管理器。

为什么需要增加这个?--》在上文提到的一个HTTP请求的请求头部信息的数据就可以放在此处。

Jmeter基础知识

Jmeter基础知识

Jmeter基础知识

实用小技巧:

Jmeter是有层级结构的,也就是说上述的HTTP信息头管理器可以放在测试计划下,HTTP默认值也是同样的道理,用于存放默认的HTTP请求信息(比如所有的请求方式及请求协议、域名、端口就可以设置一个默认值放在测试计划下),后面的HTTP请求就可以不用写这么多信息。TAT

Jmeter基础知识

Jmeter基础知识 【5】在线程组添加察看结果树、聚合报告。

Jmeter基础知识

 这样,一个基础的性能/接口测试框架就出来了。

Jmeter基础知识

 【6】线程组设置---(重点)

Jmeter基础知识

Jmeter基础知识Jmeter基础知识

Jmeter基础知识

 【7】执行察看结构树,可以看到执行HTTP请求结果及响应数据等信息。

Jmeter基础知识

 【8】执行查看聚合报告。

Jmeter基础知识

十、Jmeter更多使用操作(略,性能测试水很深,少年需谨慎,哈哈哈)

指引:

1、可以在请求中添加[断言--响应断言]来增加结果的可靠性,不一定绿色即是正常,需要配合断言来判断响应数据比对,才能更严谨。

2、还可以参数化来把HTTP请求里的参数值进行参数化,可外置CSV文件做完测试用例或者测试数据来进行并发压测的数据源,比如有些手机号码、用户ID、礼品ID这些可以做完参数化。

3、可以结合jmeter插件实现图形化的线程递增压测。

4、也可以拓展使用命令的形式来执行jmeter性能测试。

【作者的话:点滴积累,成长无限】

上一篇:Jmeter将响应数据的结果保存到本地的一个文件(xls和csv)


下一篇:<四>JMeter数据库连接/后置处理器/断言简介