软件性能测试(初学者)(一)
随着现在的互联网的高速发展,性能测试都是一个高热点的话题,系统上线后,性能的好坏直接就影响了用户使用系统的体验,相信没有一个用户能接受一个网站打开时间超过10S,如果是我超过5S我都等不了,呵呵。。。因此性能测试是任何一个系统、软件在正式发布前需要重点关注的一个点。
别的不说,还是先开始了解下关于性能测试的基础知识。
常见的性能测试指标
判断一个系统的好坏,在性能测试中会使用一些指标来进行分析和描述,以下是一些常用的指标因素:
- 事务处理的响应时间
这里的响应时间指的是 某个操作从发出请求的时间到收到服务器响应的时间;
那么有个问题,多少才算快呢,这时我们可以参考现在热门标准:**1/3/5原则 **
在1s以内得到响应,体验非常好,用户觉得体验效果非常佳;
1-3秒得到响应,用户可以接收,体验还不错;
3-5秒才响应,用户就感觉慢了,体验有点糟糕;
一旦响应超过5秒,大多数都会选择离开或重新发起请求(比如我,哈哈)
-
并发用户
针对性能指标,并发用户指的是系统可以同时承载且正常使用系统功能的用户总数量。 -
TPS/QPS
TPS:每秒处理事务数
QPS:每秒查询率 -
点击率
点击率为每秒页面点击数,主要反映了客户端每秒向服务端提交的请求数。 -
pv/uv
PV:页面浏览量或点击量
UV:系统的独立访客,如一台电脑客户端为一个访客 -
吞吐量
吞吐量:单位时间内处理客户端请求的数量。
另外吞吐量和cpu的消耗、网络带宽的消耗、I/O和内存资源消耗紧密相连。 -
资源使用
每个请求或事物对系统资源的消耗。如:cpu的消耗可使用cpu的秒数或核数来衡量;内存的消耗可使用内存使用率来衡量,I/O可使用每秒读写磁盘的字节数来衡量。
性能测试工具
以上的基本的内容了解后,不妨直接来个简单的例子:
使用jmeter工具4.0
环境配置
需要配置好jdk和环境变量,具体可去查度娘啦。
应用实战(简单例子,看不懂的同学们,不用着急,后期会详细的讲解,这里只是给大家一个感性的认知)
目标:某个网站系统的并发为100,系统平均响应时间是多少,系统支持的TPS 为多少?
1、启动jmeter,右键新增一个线程组
2、设置新增的线程组的参数配置
3、新增一个http请求(如果不清楚怎么创建的,没关系,我这只是先给大家一个感性的认知,后期会详细讲解)
4、新建完成http 请求后,这是需要再增加一个响应断言
5、添加查看结果
添加查看数结果,聚合报告,jp@gc - Response Times Over Time、jp@gc - Transactions per Second
其中我们可看 tps的整体图
响应时间图:
查看树结果(一般实际应用中,勾选errors )
聚合报告
从图中,可以看出100个用户并发,持续10秒,发起的请求为19714,平均响应时间为 40ms,错误率为0,tps可判断为 1684笔/秒;不考虑其他的 从这个的数据来看这个的性能很好。
当然还要看服务器的资源消耗情况。