The mailing list has been closed since July 2022, but continues to serve as an archive of information about QF-Test.
If you want to stay informed about news about QF-Test, you can simply subscribe to our newsletter:
Subscribe to Newsletter
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [QF-Test] Shouldn't "Wait for client to connect" check if the client is (still) running?
Hi Michael, unfortunately there are many common cases where the process started by QF-Test is not the same as the one that connects to QF-Test. In some cases even the parent/child process relationship becomes impossible to track. The most notable example is Java WebStart which always starts a second process and terminates the first one. Thus, whether a process terminates or not is irrelevant, QF-Test has to wait for an SUT connection until the entire timeout period has elapsed. In addition to that, you need to be able to access already terminated clients, e.g. when checking their exit code or retrieving their output. Consequently a NoSuchClientException is only thrown if no client be the given name was ever started (or is no longer among the recently terminated processes). That said, your short cut implementation for the case where the client terminates immediately is basically fine. I'd modify it slightly, but I guess that's just a matter of taste: + Start SUT client: $(client) + Try + Wait for client to terminate (timeout 2000) + call qfs.utils.testrun.stop.stopTestRun // terminated quickly + Catch ClientNotTerminatedException + Try + Wait for client to connect + Catch ClientNotConnectedException + ... deal with it somehow ... Best regards, Greg Michael Pruemm <eso@?.org> writes: > Hi all, > > I just had the following interesting scenario: My tests start the > client, which immediately fails because the JVM cannot allocate > sufficient memory. Right after the "Start SUT client", I wait for the > client to connect. This fails of course after the timeout with a > "ClientNotConnectedException". > > This is of course technically correct, since the client did not connect. > > However, since the client failed to start immediately, it was not even > running when the "Wait for client to connect" started to execute. In > that case, I would expect a "NoSuchClientException". > > The description for ClientNotConnectedException seems to back me up here: > >> It differs from a NoSuchClientException in that there is an active >> process for that name but no RMI connection. > > I just confirmed that behavior by creating a new "Wait for client to > connect" node with a time-out of 2s and a client name of "foo". When I > execute this, it leads to a ClientNotConnectedException instead of a > NoSuchClientException. > > > To work around this problem, I am using this: > > + Start SUT client: $(client), delay after 2000 -- client starts slowly > + If "${qftest:client.exitcode.$(client)}" != "" > + call qfs.utils.testrun.stop.stopTestRun > + Try > + Wait for client to connect > + Catch ClientNotConnectedException > + ... deal with it somehow ... > > Is this the best approach? > > > Here a few more details about my setup: QFTest 4.0.5; the client is a > Java application that gets started via a shell script. > > - Michael > _______________________________________________ > qftest-list mailing list > qftest-list@?.de > http://www.qfs.de/mailman/listinfo/qftest-list -- Gregor Schmid E: gregor.schmid@?.de T: +49 8171 38648-11 F: +49 8171 38648-16 Quality First Software GmbH | www.qfs.de Tulpenstr. 41 | 82538 Geretsried | Germany GF Gregor Schmid, Dr. Martina Schmid, Karlheinz Kellerer HRB München 140833
|
1. Functional cookies
We use functional cookies to ensure the basic functionality of the website.
2. Performance and statistic cookies
We use Matomo for analyzing and optimizing our website. Cookies permit an anonymous collection of information that help us offering you a clear and user-friendly visit of our web pages.
This cookie contains a unique, pseudonymized visitor ID internal to Matomo for recognizing returning visitors.
This cookie is used to track from which website the anonymized user proceeded to our website.
The Matomo session cookie is used to track the visitor's page requests during the session.
is created and should be then directly deleted (used to check whether the visitor’s browser supports cookies).
short lived cookies used to temporarily store data for the visit.
short lived cookies used to temporarily store data for the visit.