Attempting to use Bamboo to Build Ranorex Solution:
I found when trying to setup Bamboo to build the Ranorex project that it required Ranorex Studio to be installed. I don't want to use one of our Studio licenses for just the build server so I changed my approach. Now I am building the solution locally and checking in the DLLs/EXEs/etc into BitBucket when I commit my changes. Bamboo pulls the Bin folder (which includes the Ranorex Runtime) down from the repository and uses the desired project's EXE to execute tests on a Remote Agent. This solution seems to be working but are there any downsides to using this approach?
Remote Agent Instrumentation:
I have the Ranorex Remote Agent installed and talking to the license manager on the server that will be used to execute my tests. I have the Chrome and Firefox extensions installed as well. Bamboo is able to run the EXE on the remote agent, however, I am running into an issue for Internet Explorer. I cannot figure out how to get the Ranorex Internet Explorer add-on/extension installed on the Remote Agent. It doesn't seem to get installed when you install the Ranorex Remote Agent (RanorexRemoteAgent-4.0.0.msi) and the documentation all says that you need to install Ranorex Studio to get the IE Extension to install. I do not see why I need to install Studio on that machine just to get the extension. Is there some other way around this?
Side Note About IE Extension: On the machine I am developing my tests on Ranorex keeps warning that the Ranorex extension is not installed for IE whenever I run the tests in InPrivate mode. I have already made sure my IE is configured how Ranorex recommends and on the Privacy tab in IE Options "Disable toolbars and extensions when InPrivate Browsing starts" is NOT checked. I don't think it is just a false warning as it does seem to be taking a long time to identify objects. Has anyone else encountered this?
JUnit Test Results:
I am able to get tests to run on the Remote Agent and generate both rxzlog and junit results. However, when Bamboo tries to parse the junit results I keep getting that it failed to parse. I have tried Bamboo's JUnit Parser and XUnit Parser. Based on Ranorex's documentation it looks like the .rxlog.junit.xml logs should be both JUnit and XUnit compatible. I downloaded a standalone XUnit Parser and it was able to parse it with no problems so I'm thinking it's an issue with Bamboo's parsers. Has anyone else run into this? I need to parse the results to see if there was a test failure otherwise the plan always passes because the EXE is able to successfully run.
The specific error that Bamboo is giving me is:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog. INFO | jvm 1 | 2018/09/19 09:03:24 | at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) INFO | jvm 1 | 2018/09/19 09:03:24 | at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) INFO | jvm 1 | 2018/09/19 09:03:24 | at com.atlassian.security.xml.RestrictedXMLReader.parse(RestrictedXMLReader.java:103) INFO | jvm 1 | 2018/09/19 09:03:24 | at com.atlassian.bamboo.build.test.junit.JunitTestResultsParser.parse(JunitTestResultsParser.java:96) INFO | jvm 1 | 2018/09/19 09:03:24 | at com.atlassian.bamboo.build.test.junit.JunitTestResultsParser.parse(JunitTestResultsParser.java:85) INFO | jvm 1 | 2018/09/19 09:03:24 | at com.atlassian.bamboo.build.test.junit.JunitTestReportCollector.collect(JunitTestReportCollector.java:42) INFO | jvm 1 | 2018/09/19 09:03:24 | at com.atlassian.bamboo.build.test.TestCollationServiceImpl$1$1.run(TestCollationServiceImpl.java:129) INFO | jvm 1 | 2018/09/19 09:03:24 | at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) INFO | jvm 1 | 2018/09/19 09:03:24 | at java.util.concurrent.FutureTask.run(Unknown Source) INFO | jvm 1 | 2018/09/19 09:03:24 | at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) INFO | jvm 1 | 2018/09/19 09:03:24 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) INFO | jvm 1 | 2018/09/19 09:03:24 | at java.lang.Thread.run(Unknown Source)