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性能测试总结的更多相关文章

  1. JMeter基于http请求的web接口性能测试总结

    [本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...

  2. 如何保存JMeter的性能测试数据到ElasticSearch上,并且使用Kibana进行可视化分析(1)

    前言 Jmeter是一款性能测试,压力测试的开源工具,被大量的测试人员拿来测试产品的性能,负载等等. Jmeter除了强大的预置的各种插件,各种可视化图表工具以外,也有些固有的缺陷,例如: 我们往往只 ...

  3. 8 种提升 ASP.NET Web API 性能的方法

    ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...

  4. 六种简单方法提升ASP.NET Web API性能

    ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...

  5. 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据

    CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据   by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 2 1.安装influxdb ...

  6. 8种提升ASP.NET Web API性能的方法

    英文原文:8 ways to improve ASP.NET Web API performance ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没 ...

  7. [转载]8 种提升 ASP.NET Web API 性能的方法

    http://www.oschina.net/translate/8-ways-improve-asp-net-web-api-performance 英文原文:8 ways to improve A ...

  8. 8 种提升 ASP.NET Web API 性能的方法 (转)

    出处:http://www.oschina.net/translate/8-ways-improve-asp-net-web-api-performance ASP.NET Web API 是非常棒的 ...

  9. 8 种提升ASP.NET Web API性能的方法

    ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...

随机推荐

  1. JavaScript(数据类型、字符串操作)

    JS基础 建议:一般情况下不在 head 标签中写 js 语句,因为该 js 语句会在 body 加载之前就执行,可能导致某些效果无效 // 单行注释 /*多行 * 注释*/ // 控制台输出语句 c ...

  2. ORM查询条件

    模板: from django.db import models class Article(models.Model): title = models.CharField(max_length=20 ...

  3. java笔记 -- GregorianCalendar和DateFormateSymbols 类方法

    java.util.GregorianCalendar new GregorianCalendar() 构造一个日历对象, 用于表示默认地区,默认时区的当前时间. new GregorianCalen ...

  4. Linux wc -l 统计文件行数存在的问题

    1.使用这种方式效率较低,而且不注意可能出现错误 find  . -name "*.pc" |xargs wc -l 直接查看 total 不是正确的值. 原因: 这种方式存在一个 ...

  5. h5设计图尺寸

    640 标准的话 设计图: 640*1136 body,html 背景图的话需要640*1008的 这样才能整屏刚刚好 750 标准的话 设计图: 750*1334 body,html背景图的话,75 ...

  6. Introducing the Microservices Reference Architecture from NGINX

    Introducing the Microservices Reference Architecture from NGINX https://www.nginx.com/blog/introduci ...

  7. phpldapadmin操作指导

    1.在浏览器中打开http://IP/phpldapadmin 2. 点击[Login]按钮,输入管理员密码. 3.点击[创建新条目]. 4. 点击[Generic: Postfix Group]. ...

  8. codeforces727E. Games on a CD

    题意:给一个n*k的循环字符串可能从任意地方断开,然后m个长度k的字符串,问你能不能用下面的字符串(每个最多用一次)构成上面的字符串,能循环移位 题解:对下面的串建ac自动机,记录字符串最后一个位置, ...

  9. @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常

    @ControllerAdvice 和 @ExceptionHandler 的区别 ExceptionHandler, 方法注解, 作用于 Controller 级别. ExceptionHandle ...

  10. 【C/C++】泛型栈

    用 C 语言实现泛型栈 mystack.h #ifndef __MYSTACK_H__ #define __MYSTACK_H__ #include <assert.h> // C sty ...