jmeter的性能-windows实战-第一节 01
jmeter 完成后的修改配置-和目录作用
修改jmeter.properties 文件
39行大约
language=zh_CN 将jmeter永久改成中文
sampleresult.default.encoding=utf-8 大约在1094行 汉化
D:\BaiduNetdiskDownload\apache-jmeter-5.4.1\lib\ext 装架包直接在这里装或者下载直接放进去
bin目录下作用
jmeter 这个是给xshell用的
jmeter.bat windows用的
jmeter-server 用来管理别的压力机,也分widnows和server
jmeter原理?取多个线程并发,每一个虚拟用户就是一个线程,线程调度也需要cpu,线程启动数有最大值
cpu核在多也没有进程多,一个任务就是一个进程,进程要大于cpu核数
4核一百个进程,cpu怎么处理?
忙不过来,cpu时间片不停切换,串行处理,真忙不过来了怎么办? 进程会下分线程去处理,线程不能够找小弟了
这就是就是线程切分时间片是并行的不够就并行切换 会出现一个概念超级线程----协程
4核cpu启动4个进程还用不,不用了 ,8c16g,8核逻辑核16,超级cpu
测试计划-就是测试项目名字
设置了循环次数,调度器无法使用他们不能一起使用,只能当你勾选了永远,调度器才会生效
在第11s10个人同时在线
在10s内唤醒十个线程,没唤醒一个线程,循环这个工作干五次,结束,第二个线程循环五次 ,最后一个线程唤醒时候,前面几个干完了
线程唤醒又退出所以你看不到
真实场景: 100人准备,同时上场,无限次数执行请求,tps如何计算?
没法计算,没有给响应时间 tps一直变得
给你是个线程,循环五次,跑两个接口一共发了多少个请求??
答案:100个请求
假如平均响应时间是0.2s,TPS=500,但是会波动。
5000tps算出线程数?????
5000/5=1000
算出线程数:1000个线程 间隔0.2s 波动就是他不是固定的0.2s所以会不稳
总结:
- 循环次数和线程数一起,用来控制总得请求样本数
- 在Ramp-up时间内,可以实现TPS固定
- 如果无请求总数要求,可以不使用循环次数,此时的TPS根据响应时间变化而变化
- 第三种情况下的Ramp-up时间,通常作为梯度加压的缓冲时间,便于观察压力逐步增加过程中系统的表现。达到目标线程数后需要稳定一段时间。
- 如果需要控制TPS请使用吞吐量定时器。
练习:业务指标需求--接口平均RT = 0.2s 100tps 5分钟==300s
列举出常见的线程组配置策略。
取样器-线程里面发请求
1. http取样 调用不同类型的http
get和post请求格式 区别就是请求正文post有 get没有
因为get url 没有正文所以发到地址栏里,不安全 get请求一般用于查询 一个没正文
post 有正文 ,安全性好一点 ,更容易做一些数据库的写入操作 一个有正文
post正文的类型 四种 一定要死记硬背
1.from 表单类型 -
以表单形式提交给服务器 他是Html和后台交互的默认模式 也叫url-incoded
2.multipart-form-data 符合表单 又有文件,多了一个文件和数据
Content-Type
3.纯文本格式 raw格式
json xml
4.binary 二进制格式 就发纯二进制文件 ,发多个用符合表单
请求 请求行:post get 请求头 请求体 (请求正文,报文)
响应 响应行 status code 响应头
100个线程 总共压30分钟
10个线程一个梯度去增长 增长上来之后保持30s
普通的无法保持的需要引入梯度线程组
30分钟300s 减去300s梯度增长的时间
再减去10s下降的时间
1800-300-10s =1490
对于下降
300s时间起 300s的时间停止
3s停一个