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. 从实验室走向世界:HSP90抑制剂,一种新的癌症药物

    热休克蛋白90(HSP90)是细胞内一种普遍存在的.十分保守的以及有高度活性的蛋白质,它在肿瘤细胞内的含量要比正常细胞多.作为一种分子伴侣,HSP90协助不同种类的癌蛋白(即HSP90的服务蛋白)进行 ...

  2. spring-cloud-config-server——Environment Repository(File System Backend)

    参考资料: https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.4.0.RELEASE/single/spring-cl ...

  3. 使用mpvue开发小程序

    前言: 最近接到小程序的开发需求,由于之前也没开发过小程序,心情还是有点激动.先花15分钟看一遍小程序官方文档,再花10分钟看一遍mpvue官方文档,然后拿着原型图和UI图就开干.踩了不少坑,写篇博客 ...

  4. [easyUI] 树形菜单 tree

    0.效果图 1. 一个id为mytree的无序列表 <h2>easy UI Tree</h2> <ul id="mytree"></ul& ...

  5. vs2010下使用sqlite

    1.SQLite安装SQlite官网:http://www.sqlite.org/download.html 找到以下截图中内容 第一个解压之后是sqlite3.exe,第二个解压之后是sqlite3 ...

  6. Practical Node.js (2018版) 13章, Node HTTP/2 Servers

    新增的章节. If you are not using HTTP/2, then you are losing out on big improvements. HTTP/2相比http/1有很大的区 ...

  7. 康拓展开-排列的hash

    对于一个集合内所有元素的排列,康拓展开是一个无冲突的hash法.其规则便是将排列在逻辑上排好序,然后每个排列的序号即是hash值. 关键就在如何快速求出序号和快速还原啦. 首先我们确定一好集合内各元素 ...

  8. Android测试(四)——内容供应器泄露

    内容供应器:用来存储和查询应用程序中的数据或来自电话的数据,所有内容供应器都具有唯一的统一的资源标识符(URI)以便被识别和查询. 内容供应期命名惯例:以content://开始 当Android A ...

  9. Spring cloud系列之win10 下安装 ZooKeeper 的方法

    ZooKeeper 下载地址: https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 1.将下载的文件解压到指定的目录中 2.进入conf文件夹 ...

  10. C++将数组的元素顺序随机打乱

    参考: https://blog.csdn.net/cordova/article/details/52884399 https://zhidao.baidu.com/question/1604258 ...