ContributionsMost RecentMost LikesSolutionsAvoid readyapi adding sequence number to testcase filename Hi, I have a composite project and when you look at project.content file I have below entries Flows\Find-Matching-Offer-Outward-4.xml Flows\Find-Matching-Offer-Outward-3.xml Flows\Find-Matching-Offer-Outward-5.xml In my file system I have: Find-Matching-Offer-Outward.xml Find-Matching-Offer-Outward-2.xml Find-Matching-Offer-Outward-3.xml Find-Matching-Offer-Outward-4.xml Find-Matching-Offer-Outward-5.xml But I only have 1 test case "Find-Matching-Offer-Outward". How can I fix this to have only Find-Matching-Offer-Outward.xml? And how can I avoid that readyapi creates files with these sequence numbers? Reason: we working with multiple testers with git and we want to keep our changes simple. We already have issues that every test run causes test cases to changes (cause the used data is stored with the test case by readyapi). This is also marked as a changed file in git. We want to reduce the number of unnecessary changes. Thanks in advance, Said Re: how to collect assertion message from Assertion Teststep With help from Smartbear support I found the solution. For assertion test step the code to collect assertion messages is slightly different: see below... public static String getTestCaseRunAssertionMessages( def testRunner, def context, def log ) { log.debug "*** Method getTestCaseRunAssertionMessages ***" def testStepList = testRunner.getTestCase().getTestStepList() String assertErrors = "" if (context.requestAttempt >= 3 ) { assertErrors = "Stop processing after " + context.requestAttempt + " request attempts"; } testStepList.each { if ( it.isDisabled() == false ) { log.debug it.getClass() // Collecting assertion messages differs from AssertionTestStep and wsdl/rest steps if ( it.getClass().toString().contains( "AssertionTestStep") ) { log.debug "*** AssertionTestStep ***" def list = it.getAssertionEntryList() for( assertion in list) { for (err in assertion.getAssertion().getErrors()) { log.debug "Failed assertions found in: " + it.getName(); if ( assertErrors.equals("") ) { assertErrors = it.name + ": " + err.getMessage(); } else { assertErrors = assertErrors + "\n" + it.name + ": " + err.getMessage(); } } } } else if ( it.metaClass.hasProperty( it, 'assertionStatus' ) ) { log.debug "Collecting assertion messages in: " + it.getName(); for( assertion in it.assertionList ) { for( e in assertion.errors ) { log.debug "Failed assertions found in: " + it.getName(); if ( assertErrors.equals("") ) { assertErrors = it.name + ": " + e.message; } else { assertErrors = assertErrors + "\n" + it.name + ": " + e.message; } } } } } } return assertErrors Re: Data Sink diff windows vs Jenkins (Linux) This issue was not ReadyAPI related 😊 Data Sink diff windows vs Jenkins (Linux) Hi, below screenshot of my data sink configuration. Below result when I run test case on my computer (Windows) "20211122_130947","mr52-accept-c04","0_BTSC-1134 NS OnlineMultipaxSparpreisAYS+4,6","HNMXKWP","PASS","" Below result when the test case is executed from Jenkins (Linux): "20211124_164123,""mr53-accept-c01"",""0_BTSC-1134 NS OnlineMultipaxSparpreisAYS+4,6"",""GVKNKLW"",""PASS"","""""; As you can see it has a different lay-out. The first I can import properly into Excel. The second is 1 column in Excel. Please advice how to get same result in Windows and Jenkins. Thanks in advance! SolvedRe: how to collect assertion message from Assertion Teststep I checked ready-api-errors.log: no stacktrace. how to collect assertion message from Assertion Teststep Hi, For reporting I have a test step that calls below method in script library. This method collects all assertion messages from al test steps in the running test case. public static String getTestCaseRunAssertionMessages( def testRunner, def context, def log ) { log.debug "*** Method getTestCaseRunAssertionMessages ***" def testStepList = testRunner.getTestCase().getTestStepList() String assertErrors = "" testStepList.each { if ( it.isDisabled() == false ) { if ( it.metaClass.hasProperty( it, 'assertionStatus' ) ) { log.debug "Collecting assertion messages in: " + it.getName(); for( assertion in it.assertionList ) { for( e in assertion.errors ) { log.debug "Failed assertions found in: " + it.getName(); if ( assertErrors.equals("") ) { assertErrors = it.name + ": " + e.message; } else { assertErrors = assertErrors + "\n" + it.name + ": " + e.message; } } } } } } return assertErrors } My issue: the statement for( e in assertion.errors ) { does not go into the loop when the teststep is an "Assertion" test step. This assertion step has failed assertion. Is there is work around for this? Solvedjava.net.SocketException: Connection reset by peer Hi All, For a specific request I am getting error below: Wed Jun 09 10:37:31 CEST 2021: ERROR: java.net.SocketException: Connection reset by peer java.net.SocketException: Connection reset by peer at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:420) at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:826) at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1051) at com.eviware.soapui.impl.wsdl.support.http.SoapUILoggingOutputStream.write(SoapUILoggingOutputStream.java:41) at org.apache.http.impl.io.SessionOutputBufferImpl.streamWrite(SessionOutputBufferImpl.java:126) at org.apache.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:162) at org.apache.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:115) at org.apache.http.entity.ByteArrayEntity.writeTo(ByteArrayEntity.java:116) at org.apache.http.impl.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:158) at org.apache.http.impl.conn.CPoolProxy.sendRequestEntity(CPoolProxy.java:162) at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:237) at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$SoapUIHttpRequestExecutor.doSendRequest(HttpClientSupport.java:530) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:122) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71) at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$SoapUIHttpClient.doExecute(HttpClientSupport.java:276) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:657) at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:631) at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.submitRequest(HttpClientRequestTransport.java:337) at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:254) at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:130) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at java.base/java.lang.Thread.run(Thread.java:832) I cannot share the request in this forum, but I can give some details: The error does not occur for all request. Most of them work fine. I got it in a specific case (reproducable). I noticed that one of the values for an element is much longer (164.956 character). The total Message Size in ReadyAPI is: 166220. In case without error the element size around 106.000 characters, but I am not sure length is the cause. I am using ReadyAPI 3.6. Can someone advice me on this issue? Please tell me if you need additional information. If needed I can share request with SmartBear support. Thanks in advance! Re: Can I check assertion status for groovy teststep nmrao wrote: So do you run the same code for Groovy step? <code> return testRunner.testCase.testSteps["Groovy TestStep"].assertionStatus <code> What happens if groovy script fails or passes currently ? When I run the statement return testRunner.testCase.testSteps["Groovy TestStep"].assertionStatus on a groovy test step I get error below No such property: assertionStatus for class: com.eviware.soapui.impl.wsdl.teststeps.DebuggableWsdlGroovyScriptTestStep That is why I need some other way to check if scrip passed or failed Re: Can I check assertion status for groovy teststep Thanks for your response... Below is a (simplified) structure of my test case. TestCase Init Groovy DataSource Soap Call1 Groovy TestStep Set TestResult (DataGen) Save TestResult (DateSync) DataSource Loop use case: I have a DataSource Loop processing a few hunderd rows. I need to report pass / fail for each row. In the step Set TestResult (DataGen) I have this statement: return testRunner.testCase.testSteps["Soap Call1"].assertionStatus With this I know if the current row passed or failed. I have some assertions in the Groovy TestStep. I also would like to know per row if any of the assertions in that step failed. This is needed for the reporting that I am doing in the step Save TestResult (DateSync). Hope you can advise on the best way to do this. Thanks in advance! Can I check assertion status for groovy teststep Hi, I would like to check the assertionStatus of a groovy testStep, cause I have some assertions there. I need this for reporting. E.g. below statements works very well on teststeps that are instanceof com.eviware.soapui.model.testsuite.Assertable log.info testRunner.testCase.testSteps["myTeststepName"].assertionStatus In my case the groovy testStep is NOT Assertable. How to do this then? Thanks in advance!