API性能测试基本性能指标及要求
略
适用 Lifeix 所有后台应用。
1、事务(Transaction)
在web性能测试中,一个事务表示一个“从用户发送请求->web server接受到请求,进行处理-> web server向DB获取数据->生成用户的object(页面),返回给用户”的过程,一般的响应时间都是针对事务而言的。
请求响应时间指的是从客户端发起的一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间,在某些工具中,响应通常会称为“TTLB”,即"Time
To Last
Byte",意思是从发起一个请求开始,到客户端接收到最后一个字节的响应所耗费的时间,响应时间的单位一般为“秒”或者“毫秒”。一个公式可以表示:响应时间=网络响应时间+应用程序响应时间。
(2)在1~2秒钟内,页面给予用户响应并有所显示,可认为是“好的”;
(4)超过3秒就让人有点不耐烦了,用户很可能不会继续等待下去;
事务可能由一系列请求组成,事务的响应时间主要是针对用户而言,属于宏观上的概念,是为了向用户说明业务响应时间而提出的.例如:跨行取款事务的响应时间就是由一系列的请求组成的.事务响应时间是直接衡量系统性能的参数.
并发一般分为2种情况。一种是严格意义上的并发,即所有的用户在同一时刻做同一件事情或者操作,这种操作一般指做同一类型的业务。比如在信用卡审批业务中,一定数目的拥护在同一时刻对已经完成的审批业务进行提交;还有一种特例,即所有用户进行完全一样的
操作,例如在信用卡审批业务中,所有的用户可以一起申请业务,或者修改同一条记录。
可以看出,后一种并发是包含前一种并发的。而且后一种并发更接近用户的实际使用情况,因此对于大多数的系统,只有数量很少的用户进行“严格意义上的并发”。对于WEB性能测试而言,这2种并发情况一般都需要进行测试,通常做法是先进行严格意义上的并发测试。严格意义上的用户并发一般发生在使用比较频繁的模块中,尽管发生的概率不是很大,但是一旦发生性能问题,后果很可能是致命的。严格意义上的并发测试往往和功能测试关联起来,因为并发功能遇到异常通常都是程序问题,这种测试也是健壮性和稳定性测试的一部分。
服务器没有任何影响,但是,在线用户数量是计算并发用户数量的主要依据之一。
指的是在一次性能测试过程中网络上传输的数据量的总和.吞吐量/传输时间,就是吞吐率.
每秒钟系统能够处理的交易或者事务的数量.它是衡量系统处理能力的重要指标.
每秒钟用户向WEB服务器提
交的HTTP请求数.这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位.如果把每次点击定义为一个交易,点击率和TPS就是一个概念.容易看出,点击率越大,对服务器的压力越大.点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.
指的是对不同的系统资源的使用程度,例如服务器的CPU利用率,磁盘利用率等.资源利用率是分析系统性能指标进而改善性能的主要依据,因此是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个页交换 |
坏 |
|
更多的页交换 |
很差 |
该要求不包括文件上传 等重量级接口
响应时间
500 millisecond
1
请求成功率
99%
2
TPS
在满足预期要求的情况下服务器状态稳定,单台服务器TPS要求在1000左右
3
资源使用率
要求在TPS正常幅度的情况下资源使用率幅度平稳,服务器状态平稳
3
要求接口的内部实现不能占用太多资源
数据库死锁
0,要求接口在使用过程中不会造成数据库死锁
1
CPU限制
要求接口在使用过程中不会出现大量的计算
3
内存
要求接口在使用过程中不会出现内存大量消耗的情况
3
要求
|
备注
|
||
---|---|---|---|
响应时间 | 500 millisecond | 1 | |
请求成功率 | 99% | 2 | |
TPS |
在满足预期要求的情况下服务器状态稳定,单台服务器TPS要求在1000左右 |
3 | |
资源使用率 | 要求在TPS正常幅度的情况下资源使用率幅度平稳,服务器状态平稳 | 3 | 要求接口的内部实现不能占用太多资源 |
数据库死锁 | 0,要求接口在使用过程中不会造成数据库死锁 | 1 | |
CPU限制 | 要求接口在使用过程中不会出现大量的计算 | 3 | |
内存 | 要求接口在使用过程中不会出现内存大量消耗的情况 | 3 | |
API性能测试基本性能指标及要求的更多相关文章
- [转]API性能测试基本性能指标及要求
原文链接http://blog.csdn.net/strawbingo/article/details/46458959 指标的基本概念 1.事务(Transaction) 在web性能测试中,一个事 ...
- 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,有一个同样身为“世界文化遗产”的寺庙,叫 ...
随机推荐
- ubuntu下安装GTK过程
GTK的安装过程比较繁琐,以前也安装过,但没有记录下来,Google一下记录下来备用. 利用此方法成功在ubuntu12.04下安装GTK 2.24.10 1.安装gcc/g++/gdb/make 等 ...
- EL表达式中如何截取字符串
EL表达式中如何截取字符串 可以截取,用fn函数:<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/ ...
- uva 10404
dp 1表示先手赢 #include <iostream> #include <cstdio> #include <cstring> #include < ...
- -webkit-text-size-adjust: none;该如何处理
-webkit-text-size-adjust: none; 在中文版Chrome里面,网页CSS里所有小于12px的字体设置都无效,最终将显示12px.这样弄的本意可能 是好的,因为中文一旦小于1 ...
- C++中怎么获取类的成员函数的函数指针?
用一个实际代码来说明. class A { public: staticvoid staticmember(){cout<<"static"<<endl;} ...
- HDU 1883 Phone Cell (圆覆盖最多点)
题目链接 题意 : 给你很多点和一个半径r,这个半径为r的圆能覆盖的最多的点是多少. 思路 : 对每个点做半径为 r 的圆, 求交集,交集最多的区域的被覆盖次数就是能覆盖的最多的点.贴两个链接,分析的 ...
- 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】07-基本数据类型
C语言有丰富的数据类型,因此它很适合用来编写数据库,如DB2.Oracle等大型数据库都是C语言写的.其中,提供了4种最常用的基本数据类型:char.int.float.double,使用这些数据类型 ...
- MSSQLServer基础02(SQL语句入门(脚本、命令))
SQL 全名是结构化查询语言(Structured Query Language),是关系数据库管理系统的标准语言 SQL语句是和DBMS“交谈”专用的语句,不同DBMS都认SQL语法. SQL语句中 ...
- 如何将sql server数据库转化成sqlite数据库
今天在将sql server转化为sqlite的数据库的时候,遇到不少的问题,在网上搜了很长时间,都没有找到合适的软件将sql server转化成sqlite,其中用到了SqliteDev软件,在转化 ...
- adb开启不了解决方案
原文地址: adb开启不了解决方案 - vaecer - 博客频道 - CSDN.NET http://blog.csdn.net/vaecer/article/details/45894643 ...