簡體   English   中英

通過 Groovy 腳本讀取一個 HTML 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM