JMeter接口压力测试实战教程

JMeter接⼝压⼒测试实战教程
章节⼀压⼒测试课程介绍
1、2018年亿级流量压测系列之Jmeter4.0课程介绍和效果演⽰
简介:
讲解课程安排,使⽤的Jmeter版本
讲课风格:涉及的组件,操作配置多,不会⼀次性讲解,会先讲部分,然后在后续操作中慢慢补充,更容易消化和理解
2、常⽤压⼒测试⼯具对⽐
简介:⽬前⽤的常⽤测试⼯具对⽐
1、loadrunner
性能稳定,压测结果及细粒度⼤,可以⾃定义脚本进⾏压测,但是太过于重⼤,功能⽐较繁多
2、apache ab(单接⼝压测最⽅便)
模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占⽤很多CPU,也不会占⽤太多的内存,但却会给⽬标服务器造成巨⼤的负载, 简单DDOS攻击等
3、webbench
webbench⾸先fork出多个⼦进程,每个⼦进程都循环做web访问测试。⼦进程把访问的结果通过pipe告诉⽗进程,⽗进程做最终的统计结果。
章节⼆ JMeter4.x基础知识讲解和压测实操
3、Jmeter基本介绍和使⽤场景
简介
1、压测不同的协议和应⽤
1) Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
2) SOAP / REST Webservices
3) FTP
4) Database via JDBC
5) LDAP  轻量⽬录访问协议
6) Message-oriented middleware (MOM) via JMS
7) Mail - SMTP(S), POP3(S) and IMAP(S)
8) TCP等等
2、使⽤场景及优点
1)功能测试
2)压⼒测试
3)分布式压⼒测试
4)纯java开发
5)上⼿容易,⾼性能
4)提供测试数据分析
5)各种报表数据图形展⽰
4、本地快速安装Jmeter4.x
简介:GUI图形界⾯的安装
1、需要安装JDK8。或者JDK9,JDK10
2、快速下载
windows: mirrors.tuna.tsinghua.edu/apache//jmeter/binaries/apache-jmeter-4.0.zip
mac或者linux:mirrors.tuna.tsinghua.edu/apache//jmeter/binaries/
3、⽂档地址:/usermanual/get-started.html
4、建议安装JDK环境,虽然JRE也可以,但是压测https需要JDK⾥⾯的 keytool⼯具
5、Jmeter⽬录⽂件讲解
简介:讲解jmeter解压⽂件⾥⾯的各个⽬录,⽂件等
1、⽬录
bin:核⼼可执⾏⽂件,包含配置
jmeter.bat: windows启动⽂件:
jmeter: mac或者linux启动⽂件:
jmeter: mac或者linux启动⽂件:
jmeter-server:mac或者Liunx分布式压测使⽤的启动⽂件
jmeter-server.bat:mac或者Liunx分布式压测使⽤的启动⽂件
jmeter.properties: 核⼼配置⽂件
extras:插件拓展的包
lib:核⼼的依赖包
ext:核⼼包
junit:单元测试包
6、Jmeter语⾔版本中英⽂切换
简介:
讲解怎么改变jmeter的GUI界⾯语⾔版本
1、控制台修改
menu -> options -> choose language
2、配置⽂件修改
bin⽬录 -> jmeter.properties
默认 #language=en
改为 language=zh_CN
7、使⽤SpringBoot 2.0快速编写API测试接⼝
简介
使⽤java的框架springBoot快速编写⼏个API接⼝测试
spring.io/guides/gs/spring-boot/
接⼝列表
1、模拟GET请求,⽤户列表接⼝
2、模拟POST请求,⽤户登录接⼝
localhost:8080/users
8、创建Jmeter测试计划,快速压测⼀个接⼝
简介:
通过带着why来学习,快速创建⼀个测试计划
章节三 Jmeter核⼼组件讲解和实操
9、Jmeter基础功能组件介绍线程组和Sampler
简介:讲解Jmeter⾥⾯GUI菜单栏主要组件
1、添加->threads->线程组(控制总体并发)
线程数:虚拟⽤户数。⼀个虚拟⽤户占⽤⼀个进程或线程
准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,⽐如100个线程,20秒,则表⽰20秒内100个线程都要启动完成,每秒启动5个线程循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环
2、线程组->添加-> Sampler(采样器) -> Http (⼀个线程组下⾯可以增加⼏个Sampler)
名称:采样器名称
注释:对这个采样器的描述
web服务器:
默认协议是http
默认端⼝是80
服务器名称或IP :请求的⽬标服务器名称或IP地址
路径:服务器URL
路径:服务器URL
Use multipart/from-data for HTTP POST :当发送POST请求时,使⽤Use multipart/from-data⽅法发送,默认不选中。
3、查看测试结果
线程组->添加->->察看结果树
10、Jmeter的断⾔基本使⽤
简介:介绍什么是断⾔及基本使⽤
1、增加断⾔: 线程组 -> 添加 -> 断⾔ -> 响应断⾔
apply to(应⽤范围):
Main sample only: 仅当前⽗取样器进⾏断⾔,⼀般⼀个请求,如果发⼀个请求会触发多个,则就有sub sample(⽐较少⽤)
要测试的响应字段:
响应⽂本:即响应的数据,⽐如json等⽂本
响应代码:http的响应状态码,⽐如200,302,404这些
响应信息:http响应代码对应的响应信息,例如:OK, Found
Response Header: 响应头
模式匹配规则:
包括:包含在⾥⾯就成功
匹配:响应内容完全匹配,不区分⼤⼩写
equals:完全匹配,区分⼤⼩写
2、断⾔结果: 线程组-> 添加 -> -> 断⾔结果
⾥⾯的内容是sampler采样器的名称
断⾔失败,查看结果树任务结果颜⾊标红(通过结果数⾥⾯双击不通过的记录,可以看到错误信息)
3、每个sample下⾯可以加单独的结果树,然后同时加多个断⾔,最外层可以加个结果树进⾏汇总
11、Jmeter实战之压测结果聚合报告分析
简介:讲解压测结果的聚合报告
新增聚合报告:线程组->添加->->聚合报告(Aggregate Report)
lable: sampler的名称
Samples: ⼀共发出去多少请求,例如10个⽤户,循环10次,则是 100
Average: 平均响应时间
Median: 中位数,也就是 50%⽤户的响应时间
90% Line : 90%⽤户的响应不会超过该时间(90% of the samples took no more than this time. The remaining samples at least as long as this)  95% Line : 95%⽤户的响应不会超过该时间
99% Line : 99%⽤户的响应不会超过该时间
min : 最⼩响应时间
max : 最⼤响应时间
Error%:错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表⽰每秒完成的请求数(Request per Second) 可类⽐为qps
KB/Sec: 每秒接收数据量
lrx12、Jmeter压测脚本JMX讲解
简介:压测脚本JMX讲解
1、打开⽅式subline,或者xml编辑器
2、运⾏⽇志和压测时间查看(基础按钮)
章节四⾃定义变量和CSV可变参数实操
13、Jmeter⽤户⾃定义变量实战
简介:什么是⽤户⾃定义变量,怎样使⽤
为什么使⽤:很多变量在全局中都有使⽤,或者测试数据更改,可以在⼀处定义,四处使⽤⽐如服务器地址
1、线程组->add -> Config Element(配置原件)-> User Definde Variable(⽤户定义的变量)
2、引⽤⽅式${XXX},在接⼝中变量中使⽤
3、原始查看结果树和⾮原⽣查看(基础按钮)
14、Jmeter实战之CSV可变参数压测
简介:
实战操作jmeter读取CSV和Txt⽂本⽂件⾥⾯的参数进⾏压测
1、线程组->add -> Config Element(配置原件)-> CSV data set config (CSV数据⽂件设置)
15、CSV⽂件多参数使⽤
简介:在读取的配置⽂件⾥⾯,同时使⽤多个⾃定义参数
1、如果是多个参数需要同时引⽤,则在CSV数据⽂件⾥⾯设置加多个字段
Variabled names(comma-delitited):  csv_name,csv_pwd
章节五 Mysql数据库压测实操
16、Jmeter压测实战之JDBC request压测Mysql讲解
简介:讲解jdbc压测mysql相关准备⼯作,jar包添加,配置讲解
1、Thread Group -> add -> sampler -> jdbc request
lc谐振放大器2、jar包添加  mysql-connector-java-5.1.30.jar
3、JDBC connection Configuration 配置
1、JDBC request->add -> config element -> JDBC connection configuration
核⼼配置
Max Number of connections : 最⼤连接数
MAX wait :最⼤等待时间
Auto Commit: 是否⾃动提交事务
DataBase URL : 数据库连接地址 jdbc:mysql://127.0.0.1:3306/blog
JDBC Driver Class : 数据库驱动,选择对应的mysql
username:数据库⽤户名
password:数据库密码
17、Jmeter压测实战之JDBC request压测Mysql, select语句
简介:使⽤jmeter压测mysql,select,insert语句
1、Debug Sampler使⽤(结果树中查看)
Thread Group -> add -> sampler -> debug sampler
2、参数讲解:(sql结尾不要加";")
1、variable name of pool declared in JDBC connection configuration(和配置⽂件同名)
2、Query Type 查询类型
3、parameter values 参数值
4、parameter types  参数类型
5、variable names  sql执⾏结果变量名
耳包6、result variable names 所有结果当做⼀个对象存储
7、query timeouts  查询超时时间
8、 handle results  处理结果集
章节六⾼级篇之分布式压测基础知识
水帘式喷漆房
18、分布式压测介绍
简介:讲解什么是分布式压测
普通压测:单台机可以对⽬标机器产⽣的压⼒⽐较⼩,受限因素包括CPU,⽹络,IO等
分布式压测:利⽤多台机器向⽬标机器产⽣压⼒,模拟⼏万⽤户并发访问
19、Jmeter分布式压测原理
简介:讲解Jmeter分布式压测原理
1、总控机器的节点master,其他产⽣压⼒的机器叫“⾁鸡” server
2、master会把压测脚本发送到 server上⾯
3、执⾏的时候,server上只需要把jmeter-server打开就可以了,不⽤启动jmeter
4、结束后,server会把压测数据回传给master,然后master汇总输出报告
5、配置详情
章节七⾼级篇之阿⾥云Linux服务器压测接⼝实战
20、SpringBoot 接⼝打包,并⽤jar包⽅式部署
简介:⽤jar包⽅式在控制台进⾏启动
打包 mvn package && java -jar target/gs-spring-boot-0.1.0.jar
21、阿⾥云服务器介绍和ECS服务器使⽤
简介:
阿⾥云服务器介绍和购买ECS服务器等
推荐购买2G内存以上的进⾏开发学习
22、阿⾥云Linux服务器下安装启动JDK8并配置环境变量
简介:在阿⾥云环境下安装JDK8并配置环境变量
23、部署java项⽬到阿⾥云服务器和守护进程讲解
简介:
部署项⽬到阿⾥云,并启动,公⽹可以访问
1、注意点
关闭防⽕墙人体工程学椅子
阿⾥云控制台安全策略,开放端⼝
linux上运⾏ java -jar xxxx
ssh root@120.79.160.143
守护进程:nohup java -jar xxxxx &
什么是守护进程:
24、阿⾥云Linux服务器安装Jmeter 4.0
简介:在阿⾥云环境下安装Jmeter
经济⾜够:购买两台阿⾥云机器
不⾜:本地虚拟机,或者⽤你室友的电脑,在同个局域⽹就可以,安装同个版本的jdk,jmeter,同个路径,不要带有空格或者中⽂
下载地址
wget //jmeter/binaries/
25、Jmeter⾮GUI界⾯参数讲解
讲解:⾮GUI界⾯,压测参数讲解
-h 帮助
-n ⾮GUI模式
铭牌生产
-t 指定要运⾏的 JMeter 测试脚本⽂件
-l 记录结果的⽂件每次运⾏之前,(要确保之前没有运⾏过,即xxx.jtl不存在,不然报错)
-r Jmter.properties⽂件中指定的所有远程服务器
-e 在脚本运⾏结束后⽣成html报告
-o ⽤于存放html报告的⽬录(⽬录要为空,不然报错)
官⽅配置⽂件地址 /usermanual/get-started.html

本文发布于:2024-09-22 13:25:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/248997.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:压测   结果   讲解   线程   服务器   响应
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议