性能测试笔记
1、测试服务器能否接受10万用户同时在线操作
如果用IIS服务做应用服务器,单台可承受的最大并发数不可能达到10万级,需要使用集群,利用负载均衡来实现。
如果使用websphere之类的应用服务器,单台可承受的最大并发数可达10万级,但为性能考虑,还是应该使用集群。
—— by 打杂小土豆
2、推荐使用JMeter工具
——————————————————————————————————————————————
《性能测试从零开始》 51Testing
3、功能需求说明VS性能需求说明
前缀中名词、动词居多,后者多包涵容量、时间类词汇。
前者关心“做什么”,即软件“主体”发生的“事情”。后者关心“做得怎样”,即时间与空间的敏感性。
另外,软件的性能实现是建立在功能实现的基础上。
4、用户对软件性能的需求
(1)计算性能
即软件系统有多快。如一个业务需要花费多少时间。
(2)资源的利用与回收
运行软件系统需要使用到的服务器内存数量,对于整个系统的性能表现是至关重要的。因此,软件系统能否在运行时有效地使用和释放内存是我们考察软件性能的一个重要因素。
(3)启动时间
J2EE系统在第一次启动时比较慢,因为需要涉及到缓存的加载、JSP页面的编译、JAVA class编译成机器指令等。而C/C++程序由于直接运行二进制代码,因此启动速度快。
启动速度在一般情况下慢一点没关系,但是在主/备设备间切换时,启动时间久显得非常重要了。
(4)伸缩性
一个系统在50个并发用户访问时表现正常,但当并发用户达到1000时,表现如何呢?性能是逐渐下降还是经过某个拐点后急速下降?
(5)稳定性
“路遥知马力”,用户希望自己的系统可以稳定运行很长时间。
5、衡量一个软件系统性能的常见指标:
(1)响应时间(Response time)
包括:①服务时间 (指服务器完成交易请求执行的时间,这个时间可以度量服务器的处理能力)
②网络响应时间(网络硬件传输请求和结果所花费的时间)
③客户端时间(对于瘦客户端而言,时间很短,通常可忽略。但对于胖客户端而言,由于包含了复杂的逻辑处理,因而需要消耗较多时间,也因此有可能成为系统性能的瓶颈)
将时间段进行细分是为了确定性能的瓶颈。
(2)吞吐量(Throughput)
“吞”:请求;“吐”:结果。吞吐量反映了系统的处理能力。不同地方的吞吐量有不同的释义。对于数据库而已,吞吐量指单位时间内SQL语句的执行条数。对于网络而言,吞吐量指单位时间内网络传输的数据量。
(3)资源利用率(Resource Utilization)
常见的资源有:CPU、Memory、Disk、Network等
(4)点击数(Hits per second)
点击数不是通常意义上的鼠标的点击数量,而是按照client端想server端发起的Http请求的数量计算的。一次鼠标点击是有可能引发多次Http请求的。
(5)并发用户数(Concurrent User)
用来度量服务器并发容量和同步协调能力。一批用户同时执行一个操作的数量。
6、软件在设计阶段一旦决定采用哪种架构和技术,其性能也就注定只能在一定的范围内变动了。
7、软件开发-测试V型图
8、同样适用于性能测试的一些软件测试规则
(1)确定预期输出是测试必不可少的一部分
(2)必须彻底检查每一个测试结果
在最终发现的错误中,有相当一部分在前面的测试中已经暴露了,但因未被仔细检查而忽略。
性能测试中发现的80%的错误很可能集中在20%的程序模块中。
(3)穷举测试是不可能的