La liste de diffusion est fermée depuis juillet 2022, mais sert toujours d'archive d'informations sur QF-Test.
Cependant, si vous souhaitez rester informé des nouveautés concernant QF-Test, vous pouvez simplement vous abonner à la newsletter :
abonner à la 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. Cookies fonctionnels
Nous utilisons des cookies fonctionnels pour garantir la fonctionnalité de base du site web.
2. Cookies de performance et de statistique
Nous utilisons Matomo pour analyser et améliorer notre site web. Des cookies permettent une collection anonyme des informations qui nous aident à vous offrir un visite clair et facile à utiliser de nos pages web.
This cookie contains a unique, pseudonymized visitor ID internal to Matomo for recognizing repeat visitors.
This cookie is used to track from which website the anonymized user proceeded to any page or sub-page.
The Matomo session cookie is used to track the visitor's page requests during the session. The cookie is automatically deleted at the end of each session (website visit), at the latest after one day.
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.