如何让Prometheus/Grafana变量保留历史查询结果?
解决query_result只返回最新结果、获取历史分支名的方法
利用
query_result的历史返回参数
多数支持query_result的工具会提供limit或类似参数指定返回的历史记录数量,比如:# 拉取最近10次测试的结果 HISTORY_RESULTS=$(query_result(test, limit=10)) # 批量提取所有分支名 ALL_BRANCHES=$(echo "$HISTORY_RESULTS" | grep -E '你的分支名正则')这样就能一次性获取多条历史结果,再批量提取分支名。
变量追加而非覆盖
如果不需要跨会话保留,直接在当前会话里把每次提取的分支名追加到数组变量中:# 初始化数组(首次运行时) declare -a BRANCHES=() # 提取最新分支名 NEW_BRANCH=$(query_result(test) | grep -E '你的分支名正则') # 追加到数组并自动去重 if [[ ! " ${BRANCHES[@]} " =~ " ${NEW_BRANCH} " ]]; then BRANCHES+=("$NEW_BRANCH") fi # 查看所有分支名 echo "${BRANCHES[@]}"持久化存储历史分支
要跨会话保留历史分支,可将分支名写入本地文件,每次读取后追加新内容并去重:# 读取已有历史分支(文件不存在则为空) EXISTING_BRANCHES=$(cat branch_history.txt 2>/dev/null) # 提取最新分支名 NEW_BRANCH=$(query_result(test) | grep -E '你的分支名正则') # 合并、去重后写入文件 echo -e "$EXISTING_BRANCHES\n$NEW_BRANCH" | awk '!seen[$0]++' > branch_history.txt # 将文件内容加载到变量 ALL_BRANCHES=$(cat branch_history.txt)调用工具的历史查询接口
如果你使用的是特定测试管理工具(如TestRail、Zephyr)或CI/CD平台(如Jenkins、GitLab CI),直接调用其提供的历史执行记录API,一次性获取该测试的所有历史结果,再从中提取所有分支名。
内容的提问来源于stack exchange,提问作者bag24
相关产品推荐
相关产品推荐

