一、统一门户为什么要进行压力测试?
首先一点要明确一下,统一门户上线以后,将是所有应用系统的入口,对应门户稳定性要求较高,门户实现了统一入口和统一认证,系统宕机将影响其他系统使用。一般部署架构要求集群架构、分布式架构,若企业有开发终端用户访问的需求,建议通过云原生架构和容器化部署方式,针对爆发式访问流量实现弹性伸缩。所以统一门户上线以前,必须要进行压力测试。
二、门户压力测试的标准是什么?
我们先来看一下硬件服务器的评估背景:
-
系统的硬件配置考虑的因素主要有:总用户数以及并发用户数。
-
根据业务的规模与未来的发展,预计最终使用系统用户在3000人以内,最多在线数在500人左右。
-
总用户数我们以3000计算,在线数500 ,按照20%的并发数来计算,大约并发数在100。
-
系统具有扩展性,能够满足未来三到五年的业务需求。
-
系统各配置项考虑一定量的冗余,存储空间还需要考虑备份的存储需求。
综上所述,用户总数和并发用户是非常重要的压测标准,当然还要接口数据请求的大小。压力测试重点关注
Performance Vs. Time
显示一段时间内的平均虚拟用户运行时间
Errors Vs. Time
显示了虚拟用户配置文件每秒失败的事务数量。
Statistics Vs. Time
显示虚拟用户点击次数,页面数,请求次数以及每秒千字节的平均值
Performance Vs. Users
显示每个配置文件中每个正在运行的虚拟用户的脚本的平均运行时间
Errors Vs. Users
每个虚拟用户配置文件的每秒失败事务数
Users Vs. Time
虚拟用户开始运行时的相对时间
三、术语定义
性能测试:通过测试大量用户同时对系统进行操作或大数据量的情况,采集响应时间、CPU占用率、内存使用情况、应用服务及数据库等性能指标。 性能测试可以用来验证系统的处理能力、稳定性及健壮性。
虚拟用户:用程序模拟用户/系统的手工操作。
场景:完成一次性能测试需要分多种情况进行测试,每一种情况即为一个场景,每个场景的内容包括:模拟需要测试的事务(即虚拟用户)、并发用户的数量、循环次数、操作时间的设置、分析报告等。
最大值,最优值测试:在给定的情况下,通过不同压力的测试,根据测试结果,分析出系统的最优值、最大值。
稳定性测试:在给系统一定的压力情况下持续运行一个较长的时间。用来检验系统的稳定性。
思考时间:用户在进行操作的过程中,每两次操做之间都会有一定的时间间隔,我们把这个时间称作思考时间。
四、推荐压测工具
测试软件:OATS( Oracle Application Testing Suite )是甲骨文公司专门为 Oracle产品线打造的性能和功能测试工具。使用OATS可以大大减轻测试人员针对 Oracle 项目的工作量。OATS是一个全面的,综合的测试解决方案,保证质量,可扩展性,以及Web应用程序,Web服务,打包Oracle应用软件和Oracle数据库的可用性。这种集成的,完整的生命周期解决方案,使您能够定义和管理你的应用程序测试过程中,验证应用程序的功能,并确保您的应用程序的负载情况下运行。随着应用测试套件,你可以同时最大限度地提高您的测试团队的工作效率在较短的时间部署Web应用程序和Web服务 。
五、压测指标
由于本次测试的目的是为了测试大量并发用户并发下的系统服务器承载情况。所以我们需要进行压力测试的系统服务器进行测试监控。
具体测试监控指标如下:
- 服务性能指标:
总事务数、成功事务数、失败事务数。
交易平均响应时间、最小响应时间、最大响应时间。
- 服务器资源使用情况指标:
CPU使用情况、内存数量、I/O情况。
- 数据源使用情况指标:
数据源连接池大小。
六、压测环境描述
l HTTP服务器:
|------|------|
| 硬件配置 |
| CPU | 16 |
| 内存 | 32GB |
| 硬盘 | 300G |
l 应用服务器
|------|---------|---------|
| 硬件配置 | 应用集群节点1 | 应用集群节点2 |
| CPU | 8 | 8 |
| 内存 | 32GB | 32GB |
| 硬盘 | 300G | 300G |
l DB服务器
|------|------|
| 硬件配置 |
| CPU | 16 |
| 内存 | 32GB |
| 硬盘 | 500G |
l Redis服务器
|------|------|
| 硬件配置 |
| CPU | 8 |
| 内存 | 32GB |
| 硬盘 | 300G |
l 在线预览服务器
|------|------|
| 硬件配置 |
| CPU | 16 |
| 内存 | 32GB |
| 硬盘 | 500G |
七、测试过程中拓扑结构
添加图片注释,不超过 140 字(可选)
八、网络环境描述
本次生产压测中,在企业门户内网环境服务上,内网服务器之间网络带宽是1000M
九、测试用例及过程简述
1、简述:在本次测试过程中,主要进行的测试有2类:
在本次测试过程中,主要进行的测试有2类:
|----|-------|------------------------------------------------------------------------------------------|
| 序号 | 功能 | 测试点 |
| 1 | 吞吐率测试 | 高并发、短时间下测试服务器承载性能。 包括 事务数(成功、失败) 响应时间(平均、最小、最大) 服务器资源使用情况(CPU、内存、IO) 数据源使用情况(连接池大小) |
| 2 | 稳定性测试 | 模拟正常业务场景、长时间持续测试服务运行状况。 包括 事务数(成功、失败) 响应时间(平均、最小、最大) 服务器资源使用情况(CPU、内存、IO) 数据源使用情况(连接池大小) |
本次测试过程中,选用的业务场景:
|----|-------|-------|
| 序号 | 服务提供方 | 模块名称 |
| 1 | 微服务 | 登录 |
| 2 | 微服务 | 门户首页 |
| 3 | 微服务 | 公司新闻 |
| 4 | 微服务 | 公司文化 |
| 5 | 微服务 | 制度与发文 |
| 6 | 微服务 | 个人工作台 |
| 7 | 微服务 | 活动中心 |
| 8 | 微服务 | 详细页面 |
| 9 | 微服务 | 在线预览 |
十、测试用例执行过程
吞吐率测试
测试用例一:混合场景测试,考虑到2-3年内系统的使用情况,并发数设置为50并发用户,计时10分钟。
|-----------------|----------|----|
| 参数名称 | 参数设置 | 备注 |
| 并发数 | 最大并发50 | |
| 循环次数/时间 | 10分钟 | |
| 循环间隔 | 1s | |
| Thinking time设置 | 无 | |
| 网络超时设置 | 120s | |
| Log设置 | 有错误时记入日志 | |
测试用例二:混合场景测试,考虑到2-3年内系统的使用情况,并发数设置为100并发用户,计时10分钟。
|-----------------|----------|----|
| 参数名称 | 参数设置 | 备注 |
| 并发数 | 最大并发100 | |
| 循环次数/时间 | 10分钟 | |
| 循环间隔 | 1s | |
| Thinking time设置 | 无 | |
| 网络超时设置 | 120s | |
| Log设置 | 有错误时记入日志 | |
测试用例三:混合场景测试,考虑到2-3年内系统的使用情况,并发数设置为200并发用户,计时10分钟。
|-----------------|----------|----|
| 参数名称 | 参数设置 | 备注 |
| 并发数 | 最大并发200 | |
| 循环次数/时间 | 10分钟 | |
| 循环间隔 | 1s | |
| Thinking time设置 | 无 | |
| 网络超时设置 | 120s | |
| Log设置 | 有错误时记入日志 | |
稳定性测试
测试用例一:混合场景测试,考虑到2-3年内系统的使用情况,最大并发数设置为50并发用户,计时30分钟。
|-----------------|----------|----|
| 参数名称 | 参数设置 | 备注 |
| 并发数 | 最大并发50 | |
| 循环次数/时间 | 30分钟 | |
| 循环间隔 | 1s | |
| Thinking time设置 | 无 | |
| 网络超时设置 | 120s | |
| Log设置 | 有错误时记入日志 | |
测试用例二:混合场景测试,考虑到2-3年内系统的使用情况,最大并发数设置为150并发用户,计时30分钟。
|-----------------|----------|----|
| 参数名称 | 参数设置 | 备注 |
| 并发数 | 最大并发200 | |
| 循环次数/时间 | 30分钟 | |
| 循环间隔 | 1s | |
| Thinking time设置 | 无 | |
| 网络超时设置 | 120s | |
| Log设置 | 有错误时记入日志 | |
测试用例三:混合场景测试,考虑到2-3年内系统的使用情况,最大并发数设置为200并发用户,计时30分钟。
|-----------------|----------|----|
| 参数名称 | 参数设置 | 备注 |
| 并发数 | 最大并发200 | |
| 循环次数/时间 | 30分钟 | |
| 循环间隔 | 1s | |
| Thinking time设置 | 无 | |
| 网络超时设置 | 120s | |
| Log设置 | 有错误时记入日志 | |
测试结果
6.1.1.测试用例一
混合场景测试,考虑到2-3年内系统的使用情况,模拟50个并发用户,开始执行5个用户,每五秒增加10个用户,思考时间0秒,持续10分钟
处理事务数:562
|------|-------|-------|
| 事务名称 | 成功事务数 | 失败事务数 |
| 压测场景 | 594 | 0 |
压测时间
|---------|------------------|------------------|
| 压测时间(分) | 开始时间 | 结束时间 |
| 10 | 2019/09/04 17:15 | 2019/09/04 17:25 |
响应时间如下:
|-------|---------|-------|-------|
| 事务名称 | 响应时间(秒) |
| 最小 | 最大 | 平均 |
| 门户登录 | 0.008 | 0.12 | 0.016 |
| 门户首页 | 0.187 | 0.226 | 0.202 |
| 公司新闻 | 0.008 | 0.027 | 0.012 |
| 公司文化 | 0.162 | 0.502 | 0.187 |
| 制度与发文 | 0.161 | 0.349 | 0.179 |
| 个人工作台 | 0.166 | 0.422 | 0.187 |
| 活动中心 | 0.007 | 0.039 | 0.012 |
| 详情页面 | 0.165 | 0.241 | 0.179 |
| 在线预览 | 0.008 | 0.048 | 0.015 |
1、 总体性能情况
Ø Performance Vs. Time
一段时间内的平均虚拟用户运行时间
添加图片注释,不超过 140 字(可选)
Ø Trans Failed/sec Vs. Time
虚拟用户每秒失败的事务数量
添加图片注释,不超过 140 字(可选)
Ø Statistics Vs. Time
虚拟用户点击次数,页面数,请求次数以及每秒千字节的平均值,
黄线:每秒千字节的平均值
绿线:点击次数
蓝线:页面数
红线:请求次数
添加图片注释,不超过 140 字(可选)
Ø Performance Vs. Users
每个正在运行的虚拟用户的平均运行时间
添加图片注释,不超过 140 字(可选)
Ø Trans Failed/sec Vs. Users
每个虚拟用户每秒失败事务数
添加图片注释,不超过 140 字(可选)
Ø Users Vs. Time
虚拟用户开始运行时的相对时间
添加图片注释,不超过 140 字(可选)
测试场景详细报告:
1.压测各项指数说明
Ø Virtual Users 并发用户
Ø With Errors 失败事务
Ø Transactions 执行事务
Ø Avg Trans./sec 事务平均执行时间
Ø Totals 汇总
Ø Transactions 总事务数
Ø Pages 页面访问总数
Ø Hits 用户点击数
Ø Kilobytes 网络访问千字节
6.1.2.测试用例二
混合场景测试,考虑到2-3年内系统的使用情况,模拟100个并发用户,开始执行50个用户,每5秒增加10个用户,用户思考时间2秒,持续10分钟
处理事务数:1000
|------|-------|-------|
| 事务名称 | 成功事务数 | 失败事务数 |
| 压测场景 | 1000 | 0 |
压测时间
|---------|------------------|------------------|
| 压测时间(分) | 开始时间 | 结束时间 |
| 10 | 2019/09/04 17:59 | 2019/09/04 18:10 |
响响应时间如下:
| 事务名称 | 响应时间(秒) |
|-------|---------|-------|-------|
| | 最小 | 最大 | 平均 |
| 门户登录 | 0.008 | 0.389 | 0.03 |
| 门户首页 | 0.208 | 0.633 | 0.26 |
| 华兴新闻 | 0.007 | 0.034 | 0.015 |
| 华兴文化 | 0.172 | 0.69 | 0.227 |
| 制度与发文 | 0.183 | 0.302 | 0.199 |
| 个人工作台 | 0.175 | 2.427 | 0.286 |
| 活动中心 | 0.007 | 0.127 | 0.022 |
| 详情页面 | 0.176 | 1.155 | 0.236 |
| 在线预览 | 0.007 | 0.055 | 0.017 |
2、 总体性能情况
Ø Performance Vs. Time
一段时间内的平均虚拟用户运行时间
添加图片注释,不超过 140 字(可选)
Ø Trans Failed/sec Vs. Time
虚拟用户每秒失败的事务数量
添加图片注释,不超过 140 字(可选)
Ø Statistics Vs. Time
虚拟用户点击次数,页面数,请求次数以及每秒千字节的平均值,
黄线:每秒千字节的平均值
绿线:点击次数
蓝线:页面数
红线:请求次数
添加图片注释,不超过 140 字(可选)
Ø Performance Vs. Users
每个正在运行的虚拟用户的平均运行时间
添加图片注释,不超过 140 字(可选)
Ø Trans Failed/sec Vs. Users
每个虚拟用户每秒失败事务数
添加图片注释,不超过 140 字(可选)
Ø Users Vs. Time
虚拟用户开始运行时的相对时间
添加图片注释,不超过 140 字(可选)
压测场景详细报告:
1.压测各项指数说明
Ø Virtual Users 并发用户
Ø With Errors 失败事务
Ø Transactions 执行事务
Ø Avg Trans./sec 事务平均执行时间
Ø Totals 汇总
Ø Transactions 总事务数
Ø Pages 页面访问总数
Ø Hits 用户点击数
Ø Kilobytes 网络访问千字节
添加图片注释,不超过 140 字(可选)
测试用例三
混合场景测试,考虑到2-3年内系统的使用情况,模拟200个并发用户,开始执行50个用户,每5秒增加20个用户,用户思考时间3秒,持续10分钟
处理事务数:1569
|------|-------|-------|
| 事务名称 | 成功事务数 | 失败事务数 |
| 压测场景 | 1569 | 0 |
压测时间
|---------|------------------|------------------|
| 压测时间(分) | 开始时间 | 结束时间 |
| 10 | 2019/09/05 13:37 | 2019/09/05 13:47 |
响响应时间如下:
|-------|---------|-------|-------|---|
| 事务名称 | 响应时间(秒) |
| | 最小 | 最大 | 平均 | |
| 门户登录 | 0.02 | 0.288 | 0.061 | |
| 门户首页 | 0.26 | 1.563 | 0.571 | |
| 公司新闻 | 0.008 | 0.102 | 0.047 | |
| 公司文化 | 0.216 | 2.293 | 0.62 | |
| 制度与发文 | 0.205 | 2.716 | 0.568 | |
| 个人工作台 | 0.197 | 3.889 | 0.69 | |
| 活动中心 | 0.007 | 0.119 | 0.043 | |
| 详情页面 | 0.21 | 2.193 | 0.645 | |
| 在线预览 | 0.009 | 0.125 | 0.042 | |
稳定性测试
测试用例一
混合场景测试,模拟100个并发用户,开始执行50个用户,每5秒增加10个用户,思考时间2秒,持续30分钟
处理事务数:1575
|------|-------|-------|
| 事务名称 | 成功事务数 | 失败事务数 |
| 汇总 | 1575 | 0 |
压测时间
|---------|------------------|------------------|
| 压测时间(分) | 开始时间 | 结束时间 |
| 30 | 2019/09/05 14:20 | 2019/09/05 15:08 |
响应时间如下:
|-------|---------|-------|-------|---|
| 事务名称 | 响应时间(秒) | | | |
| | 最小 | 最大 | 平均 | |
| 门户登录 | 0.007 | 0.107 | 0.015 | |
| 门户首页 | 0.079 | 0.825 | 0.12 | |
| 华兴新闻 | 0.007 | 0.098 | 0.014 | |
| 华兴文化 | 0.052 | 3.681 | 0.331 | |
| 制度与发文 | 0.054 | 2.361 | 0.246 | |
| 个人工作台 | 0.053 | 4.133 | 0.322 | |
| 活动中心 | 0.007 | 0.05 | 0.013 | |
| 详情页面 | 0.05 | 25.35 | 0.597 | |
| 在线预览 | 0.007 | 0.222 | 0.019 | |