[英]Reading a HTML file through Groovy Script
我需要使用 Groovy 編寫一個 Jenkins 管道腳本,其中以下 HTML 是輸入。
<table style="width:30%">
<TR>
<TD>Failed A Count</TD>
<TD>2869</TD>
</TR>
<TR>
<TD>Failed B Count</TD>
<TD>9948</TD>
</TR>
<TR>
<TD>Failed C Count</TD>
<TD>3456</TD>
</TR></table>
我從 RestAPI 獲取它,如果任何值超過 100,我需要觸發 email。
def response = httpRequest 'REST_API_URI'
println("Status: "+response.status)
def responseBody = response.content
String[] TDcollection;
String[] splitData = responseBody.split("\n");
for (String eachSplit : splitData) {
if (eachSplit.contains("Failed")) {
print(eachSplit);
}
}
我試過這個,但無法獲取值並驗證它。
這可能看起來很容易,但因為我很
Groovy 的新手,我有點被困住了。 提前致謝。
毫無疑問 groovy:
String input = '''\
<table style="width:30%">
<TR>
<TD>Failed A Count</TD>
<TD>2869</TD>
</TR>
<TR>
<TD>Failed B Count</TD>
<TD>9948</TD>
</TR>
<TR>
<TD>Failed B Count</TD>
<TD>10000</TD>
</TR>
<TR>
<TD>Failed C Count</TD>
<TD>3456</TD>
</TR></table>'''
Map<String,Integer> failedValues = [:].withDefault{ 0 }
input.eachMatch( /<TD>Failed (\w+) Count<\/TD>\s*<TD>(\d+)<\/TD>/ ){ _, name, count -> failedValues[ name ] += count.toInteger() }
assert failedValues == [A:2869, B:19948, C:3456]
boolean errorOccured = failedValues.any{ 100 <= it.value }
assert errorOccured
還要注意相同“名稱”的計數總和。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.