认识性能测试 Sea.Wang/Chenlaisoft 我们常见招聘要求写着会性能优先,那么要怎么才算会性能呢? 我们知道,性能测试包括: 测试需求、测试环境、测试场景、测试脚本、测试执行、测试数据采集、测试分析、测试调优等环节。在这里简单讲述一下这几个阶段注意点以及测试人员怎么去学习或提高。 1. 测试需求测试需求怎么来?怎么定? 测试需求从客户来,从合同要求中来,从业界规范标准中来,从系统设计架构来,从测试经验来,,, 是的,测试需求的来源有很多,关键是怎么提炼出测试点。 例:一个系统某些页面应用/操作很频繁,那么这里就有了测试需求,要求页面响应或者业务处理能力满足应用/操作的要求,比如查询?登录?加入购物车?提交订单?等 2. 测试环境为什么要有测试环境? 你的测试对象是否清楚,它的组网,架构,业务,数据流,网络,PC或者服务器配置等等,这些都可能是识别性能瓶颈或预识别的基础。 例:局域网带宽?专线带宽?PC与服务器的访问限制(CDN?Nginx负载均衡?磁盘矩阵?)?无线传输?TCPIP?或者相关协议等 3. 测试场景测试场景是什么? 为了测试目的而进行的场景测试?或者基于用户需求的场景测试? 第一类更多的是根据测试者的经验,而我们在测试中,用到最多的则是基于用户需求或者用户实际应用场景的测试设计。(我们常说的尽可能的模拟客户现场操作场景) 例:电商系统中常见的登录、加入购物车、下单、商品查询等 4. 测试脚本测试脚本是指可用自动化测试执行的测试用例。 有段时间经常听人这么说,我会LR工具脚本,所以我会了性能测试!!! 这个真正会的人,不会这么说,当然脚本也很重要,它是你能执行工作的基础,也是基本。 例:录制脚本-优化脚本-插入检查点/集合点/循环?-自定义脚本-使用脚本语言编写-> 5. 测试执行测试执行?是不是很简单…… 执行注意点是什么? 在测试过程中,你能否做到执行一次即可得到可信的结果? 执行之前,你的环境是你期望的样子吗?测试机呢?监控打开了吗?测试机资源?网络带宽监控?应用服务器资源(JVM内存/CPU/线程/IO等)?数据库监控?测试对象监控? 当你执行的时候,你是否对同一个测试场景执行2-3次,采集平均值? 这些,当你是测试执行者的时候,你应该去思考一下,特别是养成习惯,执行完后,先简单检查一下测试数据的可靠性或者可用性。 6. 测试数据采集数据采集! 其实这个跟执行是分不开的 数据采集不单单是工具运行的数据,还有系统资源消耗等,还有相关的截图,日志, 这些你在执行的时候是否收集完了呢?是否后面有翻工呢? 当遇到日志报错的时候,应该先简单分析一下是什么原因,尽量不要留到后面再去重现分析,因为在执行性能测试的时候,很多时候出现的现象很难重现的。 7. 测试分析测试分析在很多人看起来,很高大上!事实是怎么样的? 首先我们知道测试对象是什么? 你要测试指标?那么测试之前你应该有一个预期值,如果没有,请找架构或者项目研发要,如果还没有,那么只能做探索式的测试,然后给他们提供你的测试值做指标依据; 当然,这个过程中间,我们还有一些业界约定俗成的规范要求,比如页面响应时间的2/5/8s,当然对于现在的客户来说,恨不得你不用1s就完成,越快越好! 还有过程中的业务约束或者协议限定。 例:CPU:60%<;磁盘(读,写,满,备等);内存:合理的GC,不会出现内存溢出;线程;类;会话连接数;带宽;响应时间;数据场景对比 这些都是你分析系统的关键点 8. 测试调优尝试+对比 根据测试情况,调整测试场景和方案,进行测试尝试和数据对比,得到一个符合产品和客户要求的配置或者数据。 例:代码/数据库错误、数据配置、硬件调整、网络带宽等 另外要注意日志,系统异常和异常恢复能力。 本文适合性能测试学习引导使用,欢迎大家批评指正!
|