目录
自己只做黑盒测试,从未做过性能测试,公司现需要做性能测试。所以经过看书研究,自己写了一份简单的性能测试计划(可能不叫计划,就是指导自己做性能测试的文档)
目前工具选用 Loadrunner11。环境是 web 环境(CentOs+PHP+Nginx+Apche+MySql),在线上做压力测试,目标是获取服务器的最大访问和并发人数。
两个疑问 :
一、压力是如何计算的,比如 100 个 Vuser,每个 Vuser 产生 4 个请求,平均响应时间是 5 秒钟。那么应该是 QPS =(100 * 4 )/ 5 。最后并发数 = QPS / 4 ,想问一下这么计算正确吗?
二、计划中应该有很多纰漏的问题,请指教
一、了解项目和服务器信息
项目在线上或线下
线上
线上是否有其他服务运行
测试受网络情况影响较大,响应时间偏差、压力可能不足
是否有 CDN 的影响
项目中是否用到了第三方接口
线下
服务器硬件、软件配置是否和线上一样或相似
搭建环境会影响性能测试时间进度
局域网带宽
项目类型
架构
B/S
C/S
接口测试
协议
http、https
服务器配置
硬件信息:
CPU:CPU 系列、主频、核心数
内存:类型 DDR、主频、大小、通道
磁盘:容量、转速、接口速度、理论读写速度
网卡:
服务器系统信息及版本
服务器容器信息及版本
服务器数据库信息及版本
服务器类型
服务器带宽
可参考数据
类似项目的日平均 IP、PV、UV
日峰值时间段、峰值大小、峰值百分比
计算峰值时间段的每秒访问并发数量
二、制定测试计划
项目的各个功能点,归纳出可测试的功能点
查看不可测试的功能点,如验证码的功能
根据功能点划分事务
三、执行性能测试
录制/回放脚本
修改脚本
关联
响应乱码(编码方式)
内容检查
参数化
事务
集合点
基线测试
无压力环境下,对每一个事务单 Vuser 运行 N 次,记录平均响应时间、点击次数和吞吐量。
压力环境准备
确定测试 Vuser 人数
确定压力机数量,并部署压力机
确定每台压力机分配的 Vuser 数量
设置运行时设置
迭代次数
运行间隔
日志
思考时间
网络速度模拟
浏览器设置(去除下载非 HTML 资源)
场景压力测试
确定场景方式
渐进式:如先运行 100Vuser 持续一段时间,再增加到 200Vuser 持续一段时间,达到指定值后,最后直接结束所有 Vuser。
爆炸式:持续增加 Vuser 到制定目标值
驼峰式:执行增加 Vuser,缓步减少 Vuser
确定每秒启动的 Vuser 数量、持续时间、每秒结束数量
确定监控指标:
CPU:CPU 使用率(cup%,User%,Sys%)、单核 CPU 使用率、进程 CPU 占用率
内存:可用内存、swap 空间、进程占用内存
磁盘:IO 读写、IO 峰值、进程 IO 读写
网络:
确定监控方式(暂时选用 nmon 和命令结合方式)
IP 欺骗(只适用于线下局域网环境)
集合(配置集合点百分比)
调试
其他配置(正式运行)
关闭网络诊断
关闭日志(只在出现错误时才显示日志)
正式运行
四、分析结果
Analysis 分析结果
QPS 每秒查询率
TPS 每秒处理事务数
系统吞吐率(字节)
平均响应时间
nmon 导出性能指标图形
五、报告