I'm using the Test Complete plugin on Jenkins to run Test Items within my project suite. Through each assertion of a step in a test scenario, I call the following function to take a screen shot of the app to add it to the log for verification -
The test log comes out fine when I manually start the tests, but when I run them through Jenkins and look at the test report there, the images of the application and the desktop are blank (see attachment).
Currently Jenkins connects to the slave through Java Web Start, but I also see in the logs that when I perform a click "The operation cannot be performed, because the user session is disconnected." Upon an error I have an Event set up to restart the application, which based on the logs it is able to do, thus I don't think the user session is truly disconnected. Since I am using Java Web Start, based on the document I linked, Test Complete should be able to interact with the app's GUI. However, this error message that shows up when a click function is called makes me think otherwise.
Has anyone encountered / been able to resolve these issues? I would be happy to add more information if needed.
"If your tests interact with the GUI, configure your TestComplete Test build steps in your Jenkins projects to open an interactive user session in which they will run. Otherwise, your tests will fail. See the description of the Run interactive user session property of the TestComplete Test build step."
However, with my initial setup I was getting an error when I specified the "Run interactive user session" flag in the Jenkins config.
"The node is connected via Java Web Start (JNLP). In this mode, the "Run interactive user session" property of the TestComplete Test step is ignored. TestComplete (or TestExecute) will work in the current user session."
After installing Jenkins as a service, I was able to use the "Run interactive user session" property, but I also needed to use the "Use active session," meaning I had to manually set up a RDC with the specified user prior to starting the Jenkins job.