cancel
Showing results for 
Search instead for 
Did you mean: 

Is it possible to run the Testrunner in a docker container?

SOLVED
Community Hero

Re: Is it possible to run the Testrunner in a docker container?

That is correct. What I mean was, unsatisfied link error is not observed.


Regards,
Rao.
Occasional Visitor

Re: Is it possible to run the Testrunner in a docker container?

Same / related issue here. If I just try to run testrunner.sh (no options) I get this error:

 

java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
	at sun.awt.HeadlessToolkit.getScreenSize(HeadlessToolkit.java:284)
	at com.eviware.soapui.analytics.providers.BaseAnalyticsProvider.getStrScreenSize(BaseAnalyticsProvider.java:48)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.getEventLabel(GoogleAnalyticsProvider.java:165)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.buildParametersString(GoogleAnalyticsProvider.java:73)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.trackAction(GoogleAnalyticsProvider.java:48)
	at com.eviware.soapui.analytics.AnalyticsManager$3.run(AnalyticsManager.java:167)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

 

Then I add export DISPLAY=:0.0 and get the following error:

 

Exception in thread "Thread-3" java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at java.awt.Toolkit$2.run(Toolkit.java:860)
	at java.awt.Toolkit$2.run(Toolkit.java:855)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:854)
	at com.eviware.soapui.analytics.providers.BaseAnalyticsProvider.getStrScreenSize(BaseAnalyticsProvider.java:48)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.getEventLabel(GoogleAnalyticsProvider.java:165)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.buildParametersString(GoogleAnalyticsProvider.java:73)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.trackAction(GoogleAnalyticsProvider.java:48)
	at com.eviware.soapui.analytics.AnalyticsManager$3.run(AnalyticsManager.java:167)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

 

Then if I add`-Djava.awt.headless=true` to `JAVA_OPTS` inside `testrunner.sh` I get:

 

java.awt.HeadlessException
	at sun.awt.HeadlessToolkit.getScreenSize(HeadlessToolkit.java:284)
	at com.eviware.soapui.analytics.providers.BaseAnalyticsProvider.getStrScreenSize(BaseAnalyticsProvider.java:48)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.getEventLabel(GoogleAnalyticsProvider.java:165)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.buildParametersString(GoogleAnalyticsProvider.java:73)
	at com.eviware.soapui.analytics.providers.GoogleAnalyticsProvider.trackAction(GoogleAnalyticsProvider.java:48)
	at com.eviware.soapui.analytics.AnalyticsManager$3.run(AnalyticsManager.java:167)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

Version: 5.2.1 (Open Source)

OS: 64bit Alpine Linux

JRE: 8

 

There have been several threads here about the same issue, and clearly something is not quite right anymore. Doesn't seem to be any real solution from SmartBear either? This seems pretty basic functionality (to want to run tests headlessly on a box with no X11).

 

Has there been any updates / resolutions to this issue? 

Community Hero

Re: Is it possible to run the Testrunner in a docker container?

May be you can change the preferences -> UISettings -> Disable Analytics? Save the preferences.

If you can't do the above on linux machine, then you can do the same in windows and see the soapui-settings.xml, there you would find a relevant entry. Then make the same change in linux machine.

You can also the do the same using groovy script below, but you can try putting it in Project's After Load script and see that works.

com.eviware.soapui.SoapUI.getSettings().setBoolean(com.eviware.soapui.settings.UISettings.DISABLE_ANALYTICS,true)



Regards,
Rao.
Community Hero

Re: Is it possible to run the Testrunner in a docker container?

This may be too delayed.
here you go:
soapui latest dockerized version

https://hub.docker.com/r/nmrao/soapui/


Regards,
Rao.
New Contributor

Re: Is it possible to run the Testrunner in a docker container?

Hi Rao,

 

First of all, thanks for this great docker image.

 

I'm having issued to set the proxy in my project, I already have proxy set in my soapui-settings.xml. Is there any way to pass my soapui-settings.xml to the container, instead of using the one from /opt/SoapUI-5.4.0/soapui-settings.xml

 

Thanks 

 

 

Highlighted
Community Hero

Re: Is it possible to run the Testrunner in a docker container?

@kikecuevas,

You should be able to use "docker cp" to copy your settings file to the image/container.


Regards,
Rao.
Community Hero

Re: Is it possible to run the Testrunner in a docker container?

Copy settings file under /root directory of image.


Regards,
Rao.
New Contributor

Re: Is it possible to run the Testrunner in a docker container?

Thanks for the suggestions @nmrao I ended using quotes in the command, like this:

 

docker run --name testsoap540 --rm -i -v ${PWD}/Reports:/drive -v ${PWD}/soapui_project:/soapui_project --env "RESULTS=/drive/Results" --entrypoint ant nmrao/soapui:5.4.0 "-Dsoapui.project=/soapui_project/soapui-project.xml -Dsoapui.properties=/soapui_project/parameters.ini -Dsoapui.settings=/soapui_project/soapui-settings.xml"
 
Thanks!
Community Hero

Re: Is it possible to run the Testrunner in a docker container?

Happy that you could solve it and proceed.


Regards,
Rao.
New Here?
Join us and watch the welcome video:
Watch the New Interview
7Mistakes
Join the exciting event
SeptemberHubBub
Top Kudoed Authors
Join the September Hub-bub to show off, learn and win