【Jmeter】api性能测试总结
1.前提概念
平时常用的性能测试:api性能测试+场景性能测试;今天就说一说api性能测试
2.如何进行性能测试?
需求:对某api进行性能测试,看看最大承受的并发数,分析下图表
分析:
错误思路:当我们接到这个需求的时候,很多人不管三七二十一,先把接口写起来,然后给他个1000个并发,压倒报错为止,但是实际上你知道怎么去压测么,怎么分析TPS么?怎么找到最大并发数?怎么分析报错请求?那我们到底怎么分析呢
分析思路:
- 首先,api测试嘛,我先把api脚本给调试好,
- 然后加各种图表分析报告
- 之后设计各种场景,例如:设计场景1:并发20个用户,每秒增加2个用户,请求2000次;场景2:分析TPS,并发200个用户,每秒增加20个用户,请求2000次。。。。。。。依次类推
3.性能指标
在我们实战前,先了解一下性能指标:

通常情况下,一般我们可能不会添加其他插件的前提下,都会添加一个监听器->聚合报告,那么聚合报告到底用来做什么的呢?
我们可以看见:average(平均响应时间) median,90% 95% min (最小) ,max(最大) 都是跟时间有关系,所以我们可以侧面理解为,聚合报告,大部分就是监控整个访问时间
其他:
sampler:一共完成了多少请求
Throughput:吞吐量,默认情况下标识每秒处理的请求书,可以指服务器处理能力,tps越高说明服务器处理能力越好
4.实战
1.准备脚本
场景1:并发20个用户,每秒增加2个用户,请求2000次,
线程组:相当于并发多少用户
Ramp-UP: 每秒增加2个用户, 20/2=10 ,所以填10,意思是1秒内往上加2个用户
循环:请求2000次;计算:20000/线程组(20)= 100

2.脚本分析
分析一波:
首先右上角:3/20 : 当前线程往上加,最大并发数是20,3是当前线程数

看下报告:
1.sampler:当前一共2000个请求
2吞吐量远远大于20个线程组数,tps很高,说明服务器完全能承受;

3.场景二脚本分析:
场景:并发200个用户,每秒增加20个用户,请求20000次

分析:
1.首先错误率很高,就能看出很多了
2.吞吐量小于当前并发数,说明200个并发数不适合,已经不能够承受了
3.为了找到最合适的并发数。可以设计不同场景,例如用二分法,100个并发用户,150个并发用户之类,

5.总结
其实性能测试远远不止于这些,但是从基础的吞吐量,以及并发数,我们就可以分析很多问题了,如果设计服务器上监控,那么又是一个概念了。我觉得从这篇文章至少我们可以坚持api性能的最合理的并发数,以及tps. tps越高说明性能越好。若压测的机器性能很好,出现吞吐量小于并发数,说明并发数不能再增加了,可以慢慢减下来,找到合理并发数
ps: 有错误欢迎指出来,虚心请教。
【Jmeter】api性能测试总结的更多相关文章
- JMeter基于http请求的web接口性能测试总结
[本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...
- 如何保存JMeter的性能测试数据到ElasticSearch上,并且使用Kibana进行可视化分析(1)
前言 Jmeter是一款性能测试,压力测试的开源工具,被大量的测试人员拿来测试产品的性能,负载等等. Jmeter除了强大的预置的各种插件,各种可视化图表工具以外,也有些固有的缺陷,例如: 我们往往只 ...
- 8 种提升 ASP.NET Web API 性能的方法
ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...
- 六种简单方法提升ASP.NET Web API性能
ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...
- 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 2 1.安装influxdb ...
- 8种提升ASP.NET Web API性能的方法
英文原文:8 ways to improve ASP.NET Web API performance ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没 ...
- [转载]8 种提升 ASP.NET Web API 性能的方法
http://www.oschina.net/translate/8-ways-improve-asp-net-web-api-performance 英文原文:8 ways to improve A ...
- 8 种提升 ASP.NET Web API 性能的方法 (转)
出处:http://www.oschina.net/translate/8-ways-improve-asp-net-web-api-performance ASP.NET Web API 是非常棒的 ...
- 8 种提升ASP.NET Web API性能的方法
ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...
随机推荐
- FZOJ P2109 【卡德加的兔子】
题目描述 卡德加喜欢养兔子.他在达拉然的下水道里放了 $N$ 个兔笼(编号从 $1$ 到 $N$),里面养着他从德拉诺带来的兔子.它们的繁殖遵循斐波那契数列的规律:刚开始时,笼子里有一对刚出生的兔子. ...
- C# 关闭子窗体释放子窗体对象问题
1 在主窗口中实例化子窗口 Form2 f2 = new Form2(); 2 通过按钮来显示子窗口 f2.Show(); 3 关闭子窗口而不释放子窗口对象的方法 protected override ...
- Yarn 踩坑 : Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster
原因:yarn-site.xml 中,yarn.application.classpath 未配置 解决:其中 hadoop 版本对应更改 <property> <name>y ...
- Idea搭建servlet开发过程
Idea搭建servlet开发过程 https://www.cnblogs.com/javabg/p/7976977.html (1) 安装idea,jdk,tomcat:设置好环境变量: (2 ...
- webpack点滴
一个比较完整的webpack的配置,自己配置不断更新. const path = require('path') const configs = require('./configs/') const ...
- 开机自动启动WEB服务,共享目录。
最近工作中,需要共享一个目录,每次重启总要手动执行一下 nohup python -m SimpleHTTPServer 8000这个命令,想着实现让它开机自动启动,就一劳永逸了. 手动步骤如下: ...
- 《Practical Vim》第五章:命令行模式
前言 出于历史原因,命令行模式又叫 Ex 模式,它具有的功能有: 读写文件:比如 :edit, :write 等等 创建标签页或者窗口:比如 :tabnew :split 操作缓存区,比如: bnex ...
- double 类型转化为Integer
(1)把double先转化成int类型 Double reseve3=Double.parseDouble(bddet[0].getReserve3()); int b=reseve3.intValu ...
- linux服务器查看项目日志命令
1.tailf mywork.log | grep --line-buffered findUserList 实时跟踪日志,这里是只要findUserList 这个方法被运行,就会将它的日志 ...
- 2019清明期间qbxt培训qaq
4.4下午:矩阵qwq part1矩阵乘法: 概念: 一个m×p的矩阵A 乘 一个p×n的矩阵B 得到一个矩阵一个m×n的矩阵AB 其中: 矩阵乘法满足结合律.分配率,不满足交换律 矩阵乘法—solu ...