#!/bin/bash
user="admin"
pwd="11966e4dd8c33a730abf88e98fb952ebc3"
builds=$(curl -s --user $user:$pwd localhost:8080/job/test/api/json)
urls=$(echo $builds | jq '.builds[] | .url')
while read -r url
do
url=$(echo $url | sed -nr 's/"([^|]*)"/\1/p')
# get the build log
build=$(curl -s --user $user:$pwd "${url}api/json")
# transform the log in a simple structure
build=$(echo $build | jq '.result as $result | .actions[].parameters[]? | select(.name == "certainParam") | {(.name): .value, "result": $result}')
# check if the parameter value and the build result are the expected
result=$(echo $build | jq 'if .certainParam == "certainValue" and .result == "SUCCESS" then true else false end')
# print the result of each build
echo "url=${url}api/json;result=$result"
if [[ $result == true ]]
then
break
fi
done <<< $urls
1条答案
按热度按时间cyvaqqii1#
到目前为止,我知道没有直接的方法来实现它。
我编写了递归脚本,从最后一个构建开始,按每个构建值进行搜索,直到匹配信息。
它打印每个构建URL和查询结果。
相关性
脚本
结果
请访问jenkins.sh
在此基础上,提出了一种新的测试方法,并对测试结果进行了分析。结果=假
在此基础上,提出了一种新的测试方法,并对测试结果进行了分析。结果=真