Search code examples
regexjenkinsjenkins-pluginsjenkins-email-ext

Jenkins send email with part of log line


I have SOAPUI project with 10 test cases in Jenkins. I set up Jenkins to send me email with information from console output (log). I have set up email notification content as HTML (text/html).

I have this log in console output in Jenkins:

07:25:05,957 INFO  [SoapUITestCaseRunner] Running SoapUI testcase [Login with username and password]
07:25:05,957 INFO  [SoapUITestCaseRunner] running step [Clear access token]
07:25:05,957 INFO  [log] Environment URL: url.test.environment
07:25:05,958 INFO  [SoapUITestCaseRunner] running step [Retrieve accessToken]
07:25:05,959 DEBUG [HttpClientSupport$SoapUIHttpClient] Stale connection check
07:25:05,960 DEBUG [HttpClientSupport$SoapUIHttpClient] Attempt 1 to execute request
07:25:05,960 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Sending request: POST /api/v2/path HTTP/1.1
07:25:06,010 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Receiving response: HTTP/1.1 200 
07:25:06,011 DEBUG [HttpClientSupport$SoapUIHttpClient] Connection can be kept alive indefinitely
07:25:06,017 INFO  [SoapUITestCaseRunner] Assertion [JsonPath Existence Match] has status VALID
07:25:06,017 INFO  [SoapUITestCaseRunner] Assertion [Valid HTTP Status Codes] has status VALID
07:25:06,017 INFO  [SoapUITestCaseRunner] Assertion [JsonPath Existence Match 1] has status VALID
07:25:06,017 INFO  [SoapUITestCaseRunner] Assertion [JsonPath Existence Match 2] has status VALID
07:25:06,017 INFO  [SoapUITestCaseRunner] running step [Pass accessToken]
07:25:06,019 INFO  [SoapUITestCaseRunner] Finished running SoapUI testcase [Login with username and password], time taken: 51ms, status: FINISHED

I have set up Jenkins to send email just with this line from log:

07:25:06,019 INFO  [SoapUITestCaseRunner] Finished running SoapUI testcase [Login with username and password], time taken: 51ms, status: FINISHED

To that I use this regex to find just that line:

<pre>${BUILD_LOG_REGEX, regex="Finished running SoapUI testcase \\[Login with username and password\\]", showTruncatedLines=false}</pre>

But I want to have in email notification just parts of that line, something like this:

"Login with username and password: FINISHED"

or

"Login with username and password: FAILED"

Is there any way to send email with just part of that line?


Solution

  • Thanks to Aaron I found a solution.

    Now I use this regex:

    <b>Login with username and password: </b> <font color="green">${BUILD_LOG_REGEX, regex=".*Finished running SoapUI testcase \\[Login with username and password\\].*status: FINISHED", showTruncatedLines=false, substText="SUCCESS"}</font>
    <font color="red">${BUILD_LOG_REGEX, regex=".*Finished running SoapUI testcase \\[Login with username and password\\].*status: FAILED", showTruncatedLines=false, substText="FAILED"}</font>
    

    E-mail notification now looks like this:

    Login with username and password: SUCCESS


    or this:

    Login with username and password: FAILED


    "SUCCESS" text has green color and "FAILED" text has red color