一、熟悉系统架构
二、熟悉业务流程
三、制定性能测试需求
1、性能测试需求的可能来源
(1)开发过程中的文档:项目开发计划、需求规格说明书、设计文档、测试计划
(2)相似项目的性能需求
(3)业界公认的标准
(4)80/20原则
(5)业务分布图
(6)统计日志
(7)用户模型
四、性能测试场景选取与制定
1、哪些场景应该在性能测试过程中优先考虑呢?
(1)用户访问频率比较高的功能
(2)与金钱相关的比较重要的场景
(3)影响业务主流程的场景
(4)开发人员认为可能存在性能问题的场景
(5)应该考虑混合场景,放置线程争用导致现场死锁以及数据库死锁
(6)应该考虑稳定性场景测试,放置长时间运行导致的内存泄漏
五、性能测试数据确定
增删改查的数据在哪个数据库的哪个表里面,共多少数据
六、性能测试用例设计
1、单场景
用例编号:T1 场景描述:模拟用户登录操作 并发量:分别模拟并发用户数1、44、70三种情况进行测试 压测时间:每次15min 数据量:oracle的user表中有90万账户 集合点:不使用集合点 加压方式:全部初始化、全部退出 场景运行时设置:thinktime=2s continue when error 重点关注指标:响应时间、事务成功率、应用服务器资源使用的情况(内存、cpu、i/o)、oracle数据库资源使用情况(cpu、内存、i/o)、应用日志是否有死锁等错误信息、数据库日志是否有死锁等错误信息、JVM内存使用情况和GC情况 预期指标:响应时间2s内,事务成功率100%,应用服务器和数据库服务器cpu=<60%,没有内存泄漏,没有死锁情况发生
|
2、混合场景
混合场景性能测试用例的难点在于场景的组合以及各个场景的并发用户数的配比。
混合场景并不是把所有的测试场景糅合在一起,而是应该优先考虑不同场景的组合。
3、稳定性
防止长时间运行,出现内存泄漏的问题。
七、性能测试环境准备与搭建
1、性能测试的环境包括软件环境、硬件环境和网络环境。这三大环境不仅仅指应用服务器的环境,还包括数据库服务器环境、缓存服务器环境、文件服务器以及中间应用服务器环境。
(1)硬件环境包括:cpu、内存、硬盘等
(2)软件环境包括:软件版本号、软件位数、配置文件等。比如jdk的版本以及位数、数据库的版本、tomcat版本。配置文件包括JVM配置、线程池配置、数据库配置
(3)网络环境包括:网络协议以及网络带宽等
(4)集群环境包括:数据库热备或者主从环境、集群环境、应用相关服务器的负载均衡环境等。
2、确定实际运行环境
3、申请并搭建仿真性能测试环境
如果能使用生产环境做性能测试,那么优先考虑直接使用生产环境做性能测试。如果不能使用生产环境做性能测试,在申请性能测试所需的资源时,应该遵循以下原则:
(1)硬件环境竟尽可能地保持与生产环境一致,包括集群
(2)如果无法保证硬件环境与生产环境一致,那么只能按照低配环境进行性能测试,如果低配环境测出的性能测试数据能够满足线上要求,那么线上高配环境可能也满足既定的性能要求。如果无法满足,则不建议做性能测试估算。
(3)如果线上集群环境太庞大,比如生产环境采用120台应用机器进行负载均衡,就不能申请120台机器进行性能测试环境,这里可以考虑申请3台与线上环境一致的机器来做线下的性能测试。在线下测试过程中,可以分别测试单机、双机、三机负载均衡时候的性能表现,然后根据这三种情况下性能表现计算出120台机器进行负载均衡时的性能损耗。从而较真实地计算出线上120台机器进行负载均衡时的性能指标值。
(4)如果数据库集群太庞大,也可以根据实际情况,申请其中一部分。
(5)一些支撑系统,比如说被调用的系统个,如果不影响性能的话,可以不申请这类系统的环境。