[转]API性能测试基本性能指标及要求
原文链接http://blog.csdn.net/strawbingo/article/details/46458959
指标的基本概念
1、事务(Transaction)
在web性能测试中,一个事务表示一个“从用户发送请求->web server接受到请求,进行处理-> web server向DB获取数据->生成用户的object(页面),返回给用户”的过程,一般的响应时间都是针对事务而言的。
2、请求响应时间
请求响应时间指的是从客户端发起的一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间,在某些工具中,响应通常会称为“TTLB”,即"Time To Last Byte",意思是从发起一个请求开始,到客户端接收到最后一个字节的响应所耗费的时间,响应时间的单位一般为“秒”或者“毫秒”。一个公式可以表示:响应时间=网络响应时间+应用程序响应时间。
(1)在1秒钟之内,页面给予用户响应并有所显示,可认为是“很不错的”;
(2)在1~2秒钟内,页面给予用户响应并有所显示,可认为是“好的”;
(3)在2~3秒钟内,页面给予用户响应并有所显示,可认为是“勉强接受的”;
(4)超过3秒就让人有点不耐烦了,用户很可能不会继续等待下去;
3、事务响应时间
事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出的.例如:跨行取款事务的响应时间就是由一系列的请求组成的.事务响应时间是直接衡量系统性能的参数.
4、并发用户数
并发一般分为2种情况。一种是严格意义上的并发,即所有的用户在同一时刻做同一件事情或者操作,这种操作一般指做同一类型的业务。比如在信用卡审批业务中,一定数目的拥护在同一时刻对已经完成的审批业务进行提交;还有一种特例,即所有用户进行完全一样的 操作,例如在信用卡审批业务中,所有的用户可以一起申请业务,或者修改同一条记录。
另外一种并发是广义范围的并发。这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或者操作可以是相同的,也可以是不同的。对整个系统而言,仍然是有很多用户同时对系统进行操作,因此也属于并发的范畴。
可以看出,后一种并发是包含前一种并发的。而且后一种并发更接近用户的实际使用情况,因此对于大多数的系统,只有数量很少的用户进行“严格意义上的并发”。对于WEB性能测试而言,这2种并发情况一般都需要进行测试,通常做法是先进行严格意义上的并发测试。严格意义上的用户并发一般发生在使用比较频繁的模块中,尽管发生的概率不是很大,但是一旦发生性能问题,后果很可能是致命的。严格意义上的并发测试往往和功能测试关联起来,因为并发功能遇到异常通常都是程序问题,这种测试也是健壮性和稳定性测试的一部分。
用户并发数量:关于用户并发的数量,有2种常见的错误观点。 一种错误观点是把并发用户数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;还有一种比较接近正确的观点是把在线用户数量理解为并发用户数量。实际上在线用户也不一定会和其他用户发生并发,例如正在浏览网页的用户,对服务器没有任何影响,但是,在线用户数量是计算并发用户数量的主要依据之一。
5、吞吐量
指的是在一次性能测试过程中网络上传输的数据量的总和.吞吐量/传输时间,就是吞吐率.
6、TPS(transaction per second)
每秒钟系统能够处理的交易或者事务的数量.它是衡量系统处理能力的重要指标.
7、点击率
每秒钟用户向WEB服务器提 交的HTTP请求数.这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位.如果把每次点击定义为一个交易,点击率和TPS就是一个概念.容易看出,点击率越大,对服务器的压力越大.点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.
8、资源利用率
指的是对不同的系统资源的使用程度,例如服务器的CPU利用率,磁盘利用率等.资源利用率是分析系统性能指标进而改善性能的主要依据,因此是WEB性能测试工作的重点.
资源利用率主要针对WEB服务器,操作系统,数据库服务器,网络等,是测试和分析瓶颈的主要参考.在WEB性能测试中,更根据需要采集相应的参数进行分析。
指标 |
说明 |
ProcessorTime |
服务器CPU占用率,一般平均达到70%时,服务就接近饱和 |
Memory Available Mbyte |
可用内存数,如果测试时发现内存有变化情况也要注意,如果是内存泄露则比较严重 |
Physicsdisk Time |
物理磁盘读写时间情况 |
Web服务器指标
指标 |
说明 |
Requests Per Second(Avg Rps) |
平均每秒钟响应次数=总请求时间 / 秒数 |
Avg time to last byte per terstion (mstes) |
平均每秒业务脚本的迭代次数 ,有人会把上面那个混淆 |
Successful Rounds |
成功的请求 |
Failed Requests |
失败的请求 |
Successful Hits |
成功的点击次数 |
Failed Hits |
失败的点击次数 |
Hits Per Second |
每秒点击次数 |
Successful Hits Per Second |
每秒成功的点击次数 |
Failed Hits Per Second |
每秒失败的点击次数 |
Attempted Connections |
尝试链接数 |
数据库服务器性能指标
指标 |
说明 |
User 0 Connections |
用户连接数,也就是数据库的连接数量 |
Number of deadlocks |
数据库死锁 |
Butter Cache hit |
数据库Cache的命中情况 |
系统的瓶颈定义
性能项 |
命令 |
指标 |
CPU限制 |
vmstat |
当%user+%sys超过80%时 |
磁盘I/O限制 |
Vmstat |
当%iowait超过40%(AIX4.3.3或更高版本)时 |
应用磁盘限制 |
Iostat |
当%tm_act超过70%时 |
虚存空间少 |
Lsps,-a |
当分页空间的活动率超过70%时 |
换页限制 |
Iostat, stat |
虚存逻辑卷%tm_act超过I/O(iostat)的30%,激活的虚存率超过CPU数量(vmstat)的10倍时 |
系统失效 |
Vmstat, sar |
页交换增大、CPU等待并运行队列 |
稳定系统的资源状态
性能项 |
资源 |
评价 |
CPU占用率 |
70% |
好 |
85% |
坏 |
|
90%+ |
很差 |
|
磁盘I/0 |
<30% |
好 |
<40% |
坏 |
|
<50%+ |
很差 |
|
网络 |
<30%带宽 |
好 |
运行队列 |
<2*CPU数量 |
好 |
内存 |
没有页交换 |
好 |
每个CPU每秒10个页交换 |
坏 |
|
更多的页交换 |
很差 |
接口性能要求
http接口性能要求
该要求不包括文件上传 等重量级接口
指标名称
|
要求
|
优先级
|
备注
|
---|---|---|---|
响应时间 | 500 millisecond | 1 | |
请求成功率 | 99% | 2 | |
TPS |
在满足预期要求的情况下服务器状态稳定,单台服务器TPS要求在1000左右 |
3 | |
资源使用率 | 要求在TPS正常幅度的情况下资源使用率幅度平稳,服务器状态平稳 | 3 | 要求接口的内部实现不能占用太多资源 |
数据库死锁 | 0,要求接口在使用过程中不会造成数据库死锁 | 1 | |
CPU限制 | 要求接口在使用过程中不会出现大量的计算 | 3 | |
内存 | 要求接口在使用过程中不会出现内存大量消耗的情况 | 3 | |
dubbo接口性能要求
指标名称
|
要求
|
优先级
|
备注
|
---|---|---|---|
响应时间 | 500 millisecond | 1 | |
请求成功率 | 99% | 2 | |
TPS |
在满足预期要求的情况下服务器状态稳定,单台服务器TPS要求在1000左右 |
3 | |
资源使用率 | 要求在TPS正常幅度的情况下资源使用率幅度平稳,服务器状态平稳 | 3 | 要求接口的内部实现不能占用太多资源 |
数据库死锁 | 0,要求接口在使用过程中不会造成数据库死锁 | 1 | |
CPU限制 | 要求接口在使用过程中不会出现大量的计算 | 3 | |
内存 | 要求接口在使用过程中不会出现内存大量消耗的情况 | 3 | |
|
[转]API性能测试基本性能指标及要求的更多相关文章
- API性能测试基本性能指标及要求
略 适用 Lifeix 所有后台应用. 1.事务(Transaction) 在web性能测试中,一个事务表示一个“从用户发送请求->web server接受到请求,进行处理-> web s ...
- Java Stream API性能测试
已经对Stream API的用法鼓吹够多了,用起简洁直观,但性能到底怎么样呢?会不会有很高的性能损失?本节我们对Stream API的性能一探究竟. 为保证测试结果真实可信,我们将JVM运行在-ser ...
- 【转】web性能测试基本性能指标
Web性能测试的部分概况一般来说,一个Web请求的处理包括以下步骤: (1)客户发送请求 (2)web server 接受到请求,进行处理: (3)web server 向DB获取数据: (4)web ...
- Web性能测试基本性能指标
Web性能测试的部分概况一般来说,一个Web请求的处理包括以下步骤: (1)客户发送请求 (2)web server接受到请求,进行处理: (3)web server向DB获取数据: (4)webse ...
- java,netcore和nodejs api性能测试
一. 前言 作为有点经验的码农,现在退休在家带孩子.闲来无事,想对使用过的框架(如果写语言容易引战,php是世界上最好的语言)做一个性能测试. 二. 背景 由于毕业后刚开始接触的编程语言是C#, 从a ...
- 【Jmeter】api性能测试总结
1.前提概念 平时常用的性能测试:api性能测试+场景性能测试:今天就说一说api性能测试 2.如何进行性能测试? 需求:对某api进行性能测试,看看最大承受的并发数,分析下图表 分析: 错误思路:当 ...
- JMeter学习-030-JMeter性能测试常用之事务控制器实例
通常进行性能测试时,我们一般仅考虑主要的数据返回,不考虑页面渲染所需要的数据(例如:css.js.图片等).但当我们需要衡量打开一个页面(页面渲染完成)的性能时,我们就需要考虑完成页面渲染所需要的图片 ...
- Web性能测试中的几个关键指标
系统吞吐量 吞吐量指单位时间内系统处理的请求数量,体现系统的整体处理能力.对于网站,可以用"请求数/秒"或是"页面数/秒"来衡量,也可以用"访问人数/ ...
- 【百度地图API】多家地图API内存消耗对比测验(带源码)
原文:[百度地图API]多家地图API内存消耗对比测验(带源码) 任务描述: 啊,美妙的春节结束了.酸奶小妹和妈妈的山西平遥之旅也宣告成功!距离平遥古城7km,有一个同样身为“世界文化遗产”的寺庙,叫 ...
随机推荐
- MySQL高级查询与编程笔记 • 【第5章 常见数据库对象】
全部章节 >>>> 本章目录 5.1 视图 5.1.1 视图的定义 5.1.2 视图的优点 5.1.3 视图的创建和使用 5.1.4 利用视图解决数据库的复杂应用 5.1. ...
- Java_Swing中让窗口居中显示的方法(三种方法)
方法一: int windowWidth = frame.getWidth(); // 获得窗口宽 int windowHeight = frame.getHeight(); // 获得窗口高 ...
- java并发系列——底层CPU
java并发有诸多难点,实际上并非java语言本身的问题,本质上说一部分是因为并发操作本身的问题,另外一部分是因为计算机体系结构带来的.为了更好地理解java并发过程中的问题,我们应该对CPU有一些基 ...
- Eclipse启动SpringCloud微服务集群的方法
1.说明 下面这篇文章介绍了Eureka Server集群的启动方法, SpringCloud创建Eureka模块集群 是通过jar包启动时指定配置文件的方式实现的. 现在只有Eureka Serve ...
- GDB调试-从入门到实践
你好,我是雨乐! 在上篇文章中,我们分析了线上coredump产生的原因,其中用到了coredump分析工具gdb,这几天一直有读者在问,能不能写一篇关于gdb调试方面的文章,今天借助此文,分享一些工 ...
- 什么是UE模型?
书接上文:不知怎么选,用RFM模型看舔狗质量! 这里要注意一个问题,我这里是因为内部信息敏感,才抽象成舔狗,大家不要以为我真的在说舔狗...... UE模型即Unit Economics,是指单体经济 ...
- [ vue ] 解耦vuex(按照组件来组织vuex的结构)
问题描述 随着应用复杂度的增加,vuex用一个 store/index.js 文件来描述已经很难维护了,我们想把这些状态分割到单独文件里面. 参考1:https://vuex.vuejs.org/zh ...
- mysql 5.7.29 在centos7.6下超简单的本地yum源安装与配置
目录 生成yum源元数据 从网易镜像站下载MySQL 5.7 的 bundle包 创建文件 mysql-local.repo 执行yum install命令 生成yum源元数据 createrepo ...
- 第10组 Beta冲刺 (5/5)
1.1基本情况 ·队名:今晚不睡觉 ·组长博客:https://www.cnblogs.com/cpandbb/p/14018671.html ·作业博客:https://edu.cnblogs.co ...
- 实验 6 :OpenDaylight 实验——OpenDaylight 及 Postman实现流表下发
实验 6 :OpenDaylight 实验--OpenDaylight 及 Postman实现流表下发 一.实验目的 熟悉 Postman 的使用:熟悉如何使用 OpenDaylight 通过 Pos ...