一、技能树——6大技能
开发语言(如java);
操作系统(1、会操作 2、会监控命令);
数据库(1会crud操作;2会监控数据库);
测试工具(如JMETER);
网络知识(网络对性能影响大);
业务知识
二、性能测试目的
发现性能瓶颈
三、性能测试范围
负载测试:通过逐步加压,达到既定性能阈值,阈值的设定是小于等于值,如CPU<=80%
压力测试:通过加压,使系统某些资源达到饱和甚至失效状态(什么条件将系统压爆)
并发测试:同一时间多个虚拟用户同时访问同一模块,同一功能。通常测试方法是设置集合点
容量测试:通常指数据库层面。具体方法在一定的并发用户,不同基础数据量下观察数据库的处理能力,即获取数据库各项性能指标。
可靠性测试:又叫稳定性测试或者疲劳测试。如CPU在80%以上,7*24小时,系统是否稳定。通常指内存溢出。
异常测试:又称失败测试。是指系统架构方面的测试。如负载均衡架构,要测试宕机,节点挂掉等情况系统的反映。
总结:不管是短时间压,还是长时间压,节点宕机,目的都是发现性能瓶颈
三、性能测试工作流程
需求分析-》性能指标制定-》脚本开发(自己写代码或者用工具等)-》场景设置-》监控部署-》测试执行-》性能分析-》性能调优-》测试报告
注意:监控部署-》测试执行-》性能分析-》性能调优 ——(其中 测试执行-》性能分析-》性能调优: 循环执行)
这几个步骤有前后关系。
四:常见系统应用分层架构
显示层 web、android、ios、H5
逻辑控制层 API
数据存储层 mysql、mongodb、redis......
总结:性能测试,应该是分块的
五:性能测试指标定义
事务:从客户端发起的一个或者多个请求(这些请求组成一个完整的操作),到客户端接收到从服务器返回的响应。
TPS:每秒钟系统能够处理的是事务数(不等于请求数)
请求响应时间:client<->server 整个过程所耗费时间(一个请求)
事务响应时间:针对用户的角度而言,如转账
并发:没有严格意义的并发,并发总有先后,并发是指在一个时间范围内如1秒内。举例1多个用户在系统上进行统一操作。举例2多用户在系统上不同操作
并发用户数:同一单位时间内对系统发起请求的用户数量
吞吐量:一次性能测试过程中网络上传输的数据量总和
吞吐率:吞吐量/传输时间,单位时间内网络上传输的数据量
点击率:Web应用特有的一个指标。每秒用户向服务器提交的请求数
资源使用率:对不同系统资源使用情况,如CPU、内存、IO
六、性能测试需求分析
目的:1、明确测试指标 2、明确测试场景
新系统:同行业比较;业务预期
老系统:对比以往用户使用行为以及用户量
七:性能测试工具
JMETER