市场能力要求:
1、熟悉Linux、Windows等操作系统、熟悉beanshell脚本
2、熟悉jvm调优、Tomcat调优等基础策略
3、熟悉MySQL数据库,掌握java、Python等至少一门编程语言
4、1年独立性能测试经验
5、熟悉常见的压测工具:jmeter
6、熟悉常用的分析调优工具,如visualvm、youkit、jps、jstat等
7、熟悉性能测试的整体流程、能够通过产品需求、梳理出性能测试点、并给出计划方案,进行测试分析,并对系统性能瓶颈进行定位及优化分析。
8、良好的学习能力、沟通能力、团队协作能力
性能测试的目的
发现性能瓶颈
性能测试分类
负载测试:通过逐步加压,达到既定的性能阈值的目标。阈值的设定应该是小于等于某个值,如CPU使用率小于等于80%
压力测试:通过逐步加压,使得系统的某些资源达到饱和,甚至失效的状态,也就是在什么条件下能把系统压崩溃
并发测试:在同一时间内,多个虚拟用户同时访问同一模块、同一功能,通常的测试方法是设置集合点
容量测试:数据库,目的是获取数据库的最佳容量的能力。具体是在一定的并发用户,不同的基础数据量,观察数据库的处理能力,即获取数据库的各项性能指标
可靠性测试:稳定性测试,即系统在高压情况下,长时间运行系统是否稳定,如cpu使用率在80%以上,24小时运行,系统是否稳定,会不会有内存溢出。
异常测试:系统架构测试,如在负载均衡架构,要测挂机等情况的反映
性能测试的工作流程
需求分析 - 性能指标指定 - 脚本开发 - 场景设置 - 监控部署 - 测试执行 - 性能分析 - 性能调优 - 测试报告
常用系统应用分层架构
显示层:web、Android、ios、H5(图片(压缩)、js)
逻辑控制层:api
数据存储层:mysql、MongoDB、redis(分析sql)
自底向上分析
性能指标名词
事务:从客户端发出一个或多个请求,到客户端接收从服务器返回的响应。比如银行取钱。
TPS(Transaction Per Second):每秒钟系统能够处理的事务数。
请求响应时间:从客户端发出一个请求开始到接收到服务器返回的响应整个过程花费的时间。
事务响应时间:从用户角度考虑,整个事务花费的时间(不止一个请求)。
并发:没有严格意义上的并发,并发总是会有先后,是指的一段时间内
1)对同一指令操作
2)对同一系统操作,不同的指令
并发用户数:同一单位时间内(通常是指1s),对系统发出请求的用户数量。
吞吐量:一次性能测试过程中网络上传输的数据量的总和,即网络流量。如:上传、下载
吞吐率:单位时间内网络上传输的数据量,吞吐率 = 吞吐量 / 传输时间
点击率:每秒用户向服务器提交的请求数,即每秒钟用户总共在页面上进行的操作数
资源使用率:对不同系统资源使用情况,如cpu、内存、IO等
在测试过程中对性能做需求分析
分析的目的:
1、明确测试指标
2、明确测试场景
1)开发新系统:参考同行业或使用别人现有的系统
2)老系统:对比以往用户使用行为及用户量
此外还需要考虑业务预期,如客户量的增长