QF-Test forces the application to repaint itself to take a screenshot of the SUT (not the whole monitor). If the application embeds another technology, e.g. Swing in SWT or an OpenGL canvas in Swing, it can happen that this embedded part is black if the session is locked or the application is running within the service session. Additionally in this case the screenshots of the whole screen are usually completely black due to reasons described below.
Anyway, you should always take care to run GUI tests in an active user session. (Partially) black screenshots are only a minor problem compared with other possible troubles.
From: qftest-list-bounces@?.de [mailto:qftest-list-bounces@?.de] On Behalf Of ????
Sent: Wednesday, October 10, 2012 12:43 PM
To: Michael Höber, QFS Support
Subject: Re: [QF-Test] Problem with QF Test on Jenkins CI
But I have a bit different problem - black parts are only on places, where swing rendered panels are - everything else is fine. You can see this problem on screenshot, attached earlier. Right now I've temporarily solved this problem by logging in into VM and starting slave manually (not as slave), but as I understand, this operation cant be automated, isn't it?
2012/10/10 Michael Höber, QFS Support <support@?.de>
Whenever you get black screenshots within QF-Test's run-log, it's usually the case that the tests have been executed within the Windows service session or a locked user session.
For GUI testing it's necessary to run GUI tests on a real (virtual) display. Otherwise you can run into serious troubles for grabbing screenshots, drag & drop operations (Dnd), using hard events or even recognizing components. Java WebStart applications may even fail to startup.
The way how Windows treats its sessions is to blame for these problems. Microsoft advices at MSDN/Technet to not run any GUI based applications within the service session. You can find more information by searching for the keywords "session 0 isolation" to get some technical background, especially for Windows Vista and newer.
If you start the Jenkins slave as Windows Service, the SUT also runs within this session and thus the SUT's GUI cannot be displayed and rendered like in a real non-locked user session. First of all you should ensure that the Jenkins slave is not started as service nor started via Windows Task Scheduler within the service session. You have to start it either via Windows autostart or Task Scheduler within a real user session. You should also take care that this user session does not get locked and the user stays logged in while the tests are running. This keeps the session and its context active.
If this is not possible due to security policies you should think about running the tests at virtual machines like VMWare or VirtualBox. The rules above apply for the sessions at the virtual machine itself, but of course not for the host, thus you could lock the host to prevent unauthorized desktop access.
> -----Original Message-----
> From: qftest-list-bounces@?.de [mailto:qftest-list-bounces@?.de] On Behalf Of ????
> Sent: Monday, October 08, 2012 2:33 PM
> To: qftest-list@?.de
> Subject: [QF-Test] Problem with QF Test on Jenkins CI
> Hello again!
> New problem here: I'm trying to integrate qf test with Jenkins. We have swing rendered panels and everything works fine on
> developers computers, but when it's running on remote computer > we've got problems with actions on such panels and black areas on screenshots (see attachment).
> Any ideas about it?
> Финкельштейн П.М.
Get the most out of QF-Test - through training directly from the authors
* via webinar http://www.qfs.de/en/info/OnlineTraining_QF-Test.pdf
* here at QFS http://www.qfs.de/en/info/Training_QF-Test.pdf
QFS Support - Michael Hoeber
Quality First Software GmbH http://www.qfs.de
Tulpenstr. 41 Tel: +49 8171 38648-20
DE-82538 Geretsried Fax: +49 8171 38648-16
GF: Gregor Schmid, Karlheinz Kellerer HRB München 140833