性能测试
软件性能测试是在交替进行负荷和强迫测试时常用的术语。理想的“软件性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。软件性能测试一般包括负载测试和软件压力测试。
目的
为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。
基本概念
通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。
测试术语
响应时间
将“响应时间”确定为“对请求作出响应所需要的时间”,作为用户视角的软件性能的主要体现。
响应时间划分为呈现时间系统响应时间两个部分:
呈现时间:取决于数据在被客户端收到响应数据后呈现页面所消耗的时间。
系统响应时间:指 J2EE 应用服务器从请求发出开始到客户端接收到数据所消耗的时间。
软件性能测试一般不关注“呈现时间”,因为呈现时间很大程度上取决于客户端的表现。
对于 C/S 系统:采用前者标准。
对于 B/S 系统:采用“应用系统从请求发出开始到客户端接收到最后一个字节数据所消耗的时间”标准。
并发用户数
将“并发用户数”与“同时在线数”进行区别对待:
并发用户数取决于测试对象的目标业务场景,需要先对用户的业务进行分解,分析出典型的业务场景(用户最常使用、最关注的业务操作),然后基于场景采用多种计算并发用户数的数学模型与公式,得到“并发用户数”。
示例:
一个应用系统最高峰有 500 人同时在线,但只有部分用户对服务器产生实际压力:
50%:填写表格(仅提交时对服务器有压力)
40%:频繁页面跳转(持续产生压力)
10%:挂在线上无操作(无压力)
可见,并发用户数不仅取决于人数,还取决于业务逻辑、业务场景
吞吐量
定义为“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。
对交互式应用系统,吞吐量反映服务器承受的压力,在容量规划测试中是重要指标,体现在中间件、数据库和硬件等方面。
用途:
协助设计软件性能测试场景,衡量是否达到预计设计目标(如 J2EE 连接池、数据库事务频率等)。
协助分析性能瓶颈,参照 RBI 方法。
性能计数器
性能计数器是描述服务器或操作系统性能的一些数据指标,例如 Windows 的内存使用数、CPU 使用率、进程时间等。
需要考虑的指标包括:
硬件计数器
Web 服务器计数器
Weblogic 服务器计数器
Servlet、EJB2、JSF、JMS 性能计数器等
使用关键:找到性能瓶颈、确定系统阈值、提供优化建议。
思考时间
思考时间即“休眠时间”:
业务角度:用户进行操作时,每个请求之间的时间间隔。
自动化测试角度:在测试脚本中设置等待,真实模拟用户操作,体现为脚本中两个请求语句之间的间隔时间。
不同测试工具实现方式不同,如 HP LoadRunner 和 IBM Rational Performance Tester 差异较大。
测试要点
软件性能测试在功能测试完成之后进行。
性能测试计划、方案一般与测试用例统一在一个文档里。
测试环境应尽量与用户环境保持一致。
一般使用测试工具和测试脚本完成,性能测试环境应单独运行,尽量避免与其他软件同时使用。
重点在于前期数据设计后期数据分析
性能测试用例涉及系统架构,一旦生成改动不大,重复使用率较高。
小功能点修改:一般不影响性能测试用例。
功能较大修改:需重新进行性能测试。
探索更多内容
性能测试 2 个结果
过滤器
清除过滤器
等级
初级
中级
高级
价格
免费
付费
类型
专籍
文章
问卷