性能测试报告模板:
链接: https://pan.baidu.com/s/1iQju8u0MditHDkTQogItxQ
提取码: 2gu6
前端性能分析
使用 Chrome 浏览器
结果查看:
图中各种颜色代表的含义:
- 蓝色 Loading:加载
- 黄色 Scripting:脚本
- 紫色 Rendering:渲染
- 绿色 Painting:绘制
- 浅灰 Other:其他
若需要通过 Jmeter 进行测试,则需要☑️从HTML文件获取所有内含的资源
前端性能优化
- 静态资源加缓存,使用 CDN 与 独立域名
- JavaScript 压缩,去掉重复请求
- JavaScript 加载后移
- CSS 依赖减少,置顶
- 异步接口请求优化、合并、减少
- 检查页面请求失败与跳转的外部资源
- 减少页面请求个数,减少 JavaScript 与 CSS 加载
- JavaScript 内存泄露,JavaScript 清除定时器
Cache-Control: max-age=31536000
测试用例场景
数据分析
进行性能测试时,GUI 界面仅作为调试用;
真实运行性能测试时,使用非 GUI 方式运行。
使用命令行启动脚本:
参考链接:https://www.cnblogs.com/kaibindirver/p/10766659.html
jmeter -n -t xxx.jmx
生成 jtl 文件:jmeter -n -t xxx.jmx -l xxx.jtl
生成的 jtl 文件,可通过 jmeter 中的监听器进行浏览
监听器中生成的图形,可以导出到 csv
直接生成 csv 文件:jmeter -n -t xxx.jmx -l xxx.csv
注意:需要修改 bin/jmeter.properties 配置文件
生产 csv 文件:jmeter.save.saveservice.output_format = xml
需要生成 jtl 文件时,需要将 xml 改为 csv
生产 jtl 文件:jmeter.save.saveservice.output_format = csv
生成 HTML 测试报告
jmeter -n -t xxx.jmx -l xxx.jtl -e -o HTMLReport(报告存放文件夹)
注意事项:
- 命令执行路径下,不能存在 xxx.jtl 文件,已经生成的,需要删除
- 命令执行路径下,必须要有 报告存放文件夹,且文件夹内必须清空所有内容
测试报告展示:
重点关注 APDEX 表
Apdex 值是性能评测标准;
值的范围:0~1
- 0:代表最差
- 1:代表最优
- 越接近 1,表示性能越好
APDEX 详细说明:
https://testerhome.com/topics/21278
非 GUI 运行动态线程
- 使用函数助手生成一个变量:
- 在线程组中应用生成值,其他变量同理:
- 以 Windows 系统的 bat 脚本文件为例:
echo off
rem 生成当前日期
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET yyyy=%%A
FOR /F "TOKENS=1,2 DELIMS=/ eol=/" %%A IN ('DATE/T') DO SET mm=%%B
FOR /F "TOKENS=2,3 DELIMS=/ " %%A IN ('DATE/T') DO SET dd=%%B
set date=%yyyy%%mm%%dd%
set tmp_time=%time:~-11,2%%time:~-8,2%%time:~-5,2%
set time=%tmp_time: =%
set d=%date%%time%
echo 当前日期: %d%
rem 获取用户输入的值
set thread=
set /p thread= 请输入线程数:
set everytime=
set /p everytime= 请输入阶梯间隔时间:
set ramp-up =
set /p ramp-up= 请输入线程启动时间:
set hold =
set /p hold= 请输入持续时间:
rem 执行脚本
# -Jxxx 指定义变量,例如 -Jthread:定义了一个 thread 变量
# %thread%:读取第16行设置的变量 thread
call Jmeter -Jthread=%thread% -Jeverytime=%everytime% -Jramp-up=%ramp-up% -Jhold=%hold% -n -t 天猫.jmx -l Jtl文件/%d%_tmall/tmall_%d%.jtl -j Jtl文件/%d%_tmall/场景设计_%d%.log -e -o Jtl文件/%d%_tmall/tmall_%d%_httpreport
pause