测试背景
为了解xxxx服务 在并发访问下的性能表现,本次选取了2个接口调用来实施并发性能测试。发现并解决(或规避)系统的性能缺陷,为系统良好运行提供质量保障。
测试目的
- 测试系统在并发请求下的性能表现是否满足性能需求。在大并发时有无出错信息产生。考察指标有:并发数、响应时间、RPS、资源状况等。
- 检查系统在高负载压力下是否会出现如:应用异常终止、数据丢失、内存泄露等问题。
术语定义
术语 | 解释 |
---|---|
最大并发 | 最大并发操作的虚拟用户数 |
正常返回 | 如设置了检查点,检查点通过的事务响应数,如未设置默认为返回2XX的事务响应数 |
带宽 | 记录压测任务运行所消耗的实时带宽变化 |
响应时间 | 指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间 |
平均RPS | 是指云性能测试服务在统计周期内平均每秒发送到被测服务器的请求数统计。(RPS=统计周期内发送的请求数/统计周期) |
平均响应时间 | 某一秒发出的所有请求的平均响应时间 |
测试环境
软硬件配置
机器类别及IP地址 | 硬件配置 | 操作系统 | 软件配置 | 网路环境 |
---|---|---|---|---|
kong | 1核2G/2核4G/… | Alpine Linux 3.13 | kong:2.5.0 | 阿里云ack集群环境下 |
测试机 | CPU:4CPU8G 带宽:1M 资源组:1台4CPU8G,1台2CPU4G VUM: | 在华为云 云性能测试服务CPTS |
测试内容及性能需求
接口名称 | 交易频度(高、中、低) | 性能需求 | 备注 |
---|---|---|---|
xxxx | 高 | 支持200并发用户、接口响应时间<5s | 普通get请求 |
xxxxx | 低 | 支持200并发用户、接口响应时间<5s | 带有redis请求 |
指标名称 | 指标值 | ||
应用服务器CPU平均使用率 | <90% | ||
应用服务器内存平均使用率 | <90% |
测试脚本
xxxxx
影响服务性能的因素
指标 | 解释 |
---|---|
CPU | 分配给服务的CPU数 |
内存 | 分配给服务的内存大小 |
带宽 | 分配给服务的带宽,网络性能 |
节点数 | 节点数量,服务部署了多少个节点 |
最大并发数 | 最大并发操作的虚拟用户数 |
响应时间 | 从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间 |
测试思路
- 压nginx与kong的区别(其他变量一样);
- 压规格,看内存影响还是cpu影响,以及最后得出一个软件瓶颈的最佳规格(其他变量一样);
- 压并发数,看是否有影响,以及错误率,qps变化(其他变量一样);
- 压引入lua业务与没引入lua业务的场景,看业务对其影响大不大(其他变量一样);
测试场景
此模块用于真实生产环境下,根据业务量来调试合适的机器配置。
主要分为以下场景进行测试及测试数据:
部分名词解释:
名词 | 解释 |
---|---|
测试数据:以下是测试报告,可供参考。
测试数据:
结论
xxxxx