1.性能测试必要性评估

常见关键评估项

监管单位要求性能报告

涉及财产、生命安全的系统

首次投产的大型系统

核心数据库、软硬件升级

用户量、业务量增长30%以上

单版本单业务评估权重

是否平台核心位置

是否存在部署方式调整或优化

是否增加了性能风险较高的调整

是否存在客户要求必须测试的业务流程

是否涉及多个功能缺陷的修复且流程发生较大变化


2. 性能测试需求分析

业务层面

用户大量使用的功能

日常占比80%以上的业务

特殊交易日或峰值80%的业务

核心业务发生流程重大调整的业务

项目层面

曾经测试过性能调整了架构的业务

逻辑复杂、关键的业务

可能消耗大量资源的业务

与外部系统存在接口调用、大量交互的业务

调用第三方业务组件且逻辑复杂的业务

性能测试需求评审

可测性

可搭建相对真实的环境

一致性

用户需求、生产需求(真实性)、运营需求(规划未来发展要求)

正确性


3.性能测试用例设计

测试模型建模

举例:登陆业务操作流程(思维导图)

打开首页

输入用户名、密码登陆

退出系统

场景用例设计

分类

单业务基准测试:是否满足系统设计和用户期望的性能指标

单业务压力测试:最大负载下,持续服务的时长

单业务负载测试:系统能够承受的最大负载

综合业务压力测试

综合业务负载测试

综合业务稳定性:核心业务基准负载下长时间运行系统稳定服务的能力

线程数计算

场景用例

 
 

脚本用例设计

 
 

4.测试数据构造

BadBoy创建用户注册脚本

录制脚本导出为jmx

Jmeter迭代生成账号

${username}变量要导入CSV

 

 
 
 
 

5. 测试脚本开发

BadBoy录制登陆与购买脚本

Jmeter配置

添加->定时器->固定定时器:设置间隔时间

添加->断言->响应断言:检查登陆成功

 
 

添加->监听器->查看结果树/聚合报告

Fiddler的使用

若BadBoy未录制到商品添加到购物的请求,需要用Fiddler抓包手动添加

 
 

添加->Sample->HTTP请求

 
 

6.场景设计与实现

并发线程数与调度器配置

 
 

如果是Badboy录制的脚本,循环设置在Step1设置 永远

监听结果

 
 

资源监听器gc-perfMon Metrice Collector

下载:

地址https://jmeter-plugins.org/downloads/all/,下载plugins-manager.jar                   

把给文件放到apache-jmeter/lib/ext目录下

增加插件:

选择,重启

 

 
 

添加监听器:

重启后可以 添加-监听器-@gc-perfMon Metrice Collector

增加CPU、内存等指标后保存

 
 

7. 用例执行

环境

注意客户端性能

注意服务器最好能够独占测试

注意时间的选择,测试环境/生产环境最好是少人使用的时候

记录服务器配置

测试服务端配置:

应用服务器-机型-台数-CPU-内存-IP

数据库服务器-机型-台数-CPU-内存-IP

测试客户端配置:

客户端-机型-台数-CPU-内存-IP

运行任务


8.结果分析

响应时间

 

 
 

 

Apdex

 

 
 


业务成功率(看断言)

测试脚本中设置了断言,判断用户登录后是否出现“登录成功”字样,并设定“断言结果”查看器,通过查看断言结果,全部通过表示业务成功率100%

 

 
 

并发数

 

CPU与内存

 
 

数据库

 

 
 

结果统计

 

 
 

9.性能调优

性能问题表现特征

响应时间平稳但较长

响应时间逐步变长

响应时间随着负载变化而变化

数据积累导致锁定

稳定性差

响应时间长,系统越来越慢,出现业务错误,通常原因

物理内存资源不足;内存泄露;资源争用;外部系统交互;业务失败频繁重启,无终止状态;中间件配置不合理,数据库连接设置不合理;进程/线程设计错误

posted on 2019-11-21 23:31  -最初友人-  阅读(528)  评论(0编辑  收藏  举报