I defined a custom file logger configuration (ASSERTION.SCRIPT.LOGGER) in soapui-log4j.xml that is located in the soapUI installation directory under bin folder. The configuration is a standard log4j configuration. Then add a script assertion to my test request. In groovy script, I create a logger instance with using logger name in configuration file as in the example below. The example groovy assertion script takes the current response time duration. After that checks if it is greater than 10 seconds; log the message in to file(ASSERTION.log).
Log4J Custom Configuration
<!-- custom logger for assertion scripts --> <logger name="ASSERTION.SCRIPT.LOGGER"> <level value="INFO"/> <appender-ref ref="ASSERTION"/> </logger> <appender name="ASSERTION" class="org.apache.log4j.RollingFileAppender"> <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/> <param name="File" value="ASSERTION.log"/> <param name="Threshold" value="INFO"/> <param name="Append" value="false"/> <param name="MaxFileSize" value="10000KB"/> <param name="MaxBackupIndex" value="50"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c{1}] %m%n"/> </layout> </appender>
Groovy Assertion Script for Logging to File
import org.apache.log4j.Logger // ASSERTION.SCRIPT.LOGGER is defined in soapui-log4j.xml as below def fileLogger = Logger.getLogger("ASSERTION.SCRIPT.LOGGER"); def timeTaken = messageExchange.timeTaken if(timeTaken > 10000) fileLogger.info "FAULT: SampleService.login() took:" + timeTaken
You can add an assertion script to your existing Test Request of Test Suite by following screenshots.
Adding Assertion to Test Request |
Selecting Type of Assertion |
![]() |
SoapUI Script Assertion Panel |
No comments:
Post a Comment
Thx for reading! Comments are appreciated...