分析持续性能测试结果

一个实用程序,用于对持续性能测试生成的结果执行自定义分析。

持续性能测试

ROSA 每日计划运行工作流 是一个自动化流程,确保持续性能测试,该测试计划在每个工作日运行。

此工作流通过部署多可用区集群、激活外部 Infinispan 和持久会话等功能来启动。它执行一系列功能测试,以验证系统在主动-主动配置中的性能和稳定性。

在这些测试之后,扩展基准测试评估系统处理不同负载的能力,提供关于实际条件下性能的关键见解,然后将结果持久化到基准测试 GitHub 仓库的 result-data 分支 中,以供进一步分析。

这种自动化计划确保一致的测试、潜在问题的早期检测以及 Keycloak 性能的持续改进。

分析结果

我们有一个 Python 脚本 perfInsights.py,它允许我们分析上述持续性能测试生成的结果。

安装所需的 Python 库

pip3 install -U -r requirements.txt

我们可以使用以下命令检查是否满足所有要求。

python3 -m pip check

用法

运行以下命令以访问 result-data 分支 的结果,并将分析结果保存到本地目录。

python3 perfInsights.py <result_json_dir_path_on_github> <output_dir_path>
Example:
python3 perfInsights.py rosa_scalability/2024/07/23 results

可视化结果

我们可以使用 generate_timeseries_plots.py 脚本来可视化从上述步骤生成的数据。

用法

运行以下命令以可视化来自本地 results 目录的结果。

python3 generate_timeseries_plots.py <results_dir_path>
Example:
python3 generate_timeseries_plots.py results
Saved combined plot for memoryUsageTest to results/memoryUsageTest_combined_timeseries_plot.png
Saved combined plot for cpuUsageForLoginsTest to results/cpuUsageForLoginsTest_combined_timeseries_plot.png
Saved combined plot for cpuUsageForCredentialGrantsTest to results/cpuUsageForCredentialGrantsTest_combined_timeseries_plot.png