标签:
性能测试是什么?
网上有很多,要说概念就得先说分类,性能测试,压力测试,负载测试,容量测试...在我看来,只是根据不同的测试目的(即想要达成的结果)而取的不同名字,手段都是一样的,不外乎模拟并发用户来访问系统,通过分析得到的参数评估系统性能。
首先压力测试,压力测试是对软件不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
简单介绍一下压力测试我们所关注的几个参数,一般我们服务端和机器两类参数。
首先服务端,我们说一个好的系统应该是"高并发,低延时",并发和响应时间就是两个最重要的参数
1 并发量:即系统同时处理事务的能力,通常我们用QPS(query per second)来表示,也有地方用RPS(request per second),TPS(吞吐量,准确来说应该是吞吐率)来表示.
2 响应时间:客户端发出请求,到接收到返回的时间。比如我访问baidu.com,按下enter之后等了1s打开了百度首页,那响应时间就是1s。这个过程的时间包括=网络传输时间+服务处理请求时间;尤其对于一个非web的请求,如果我本身的网络环境不好,就会导致传输时间过长,所以也有人仅用服务处理请求时间来表示响应时间。我认为两者均可,只要在报告里写清楚测试环境和字段含义即可。
3 错误率:前面两个是效率,这个是质量。未成功返回的,返回内容缺少不正确的,都算在这里。测试时可以根据返回的状态码或者返回内容做alert。
其次机器环境,主要是从保护硬件的方面来说,两个需要关注的参数是cpu和load,如下。
1 cpu:计算机的逻辑处理能力。CPU利用率反映的是CPU被使用的情况,当CPU长期处于被使用而没有得到足够的时间休息间歇,那么对于CPU硬件来说是一种超负荷的运作,需要调整使用频度。
2 Load Average:是 CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。从另一个角度来展现对于CPU使用状态的描述,Load Average越高说明对于CPU资源的竞争越激烈,CPU资源比较短缺。对于资源的申请和维护其实也是需要很大的成本,所以在这种高Average Load的情况下CPU资源的长期“热竞争”也是对于硬件的一种损害。
好吧,上面都是从别人家拿来的概念,如果你的机器是双核,那么你的进程占用cpu 100%即占用了机器一半的cpu资源,load 为4,则表示当前队列有4个需要处理,而你的cpu限制了同时只能处理2个,所以就会有队列累积。所以做性能测试需要关注下cpu和load,来保证你的程序在一个良好的环境下运行吧。
常用的大概就这几个了,如果以后发现了特别的参数,再补充~
标签:
原文地址:http://www.cnblogs.com/zhaoxd07/p/4767548.html