Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 364553 - install Jubula on Hudson slaves
Summary: install Jubula on Hudson slaves
Status: RESOLVED WONTFIX
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: CI-Jenkins (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: CI Admin Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 364554 (view as bug list)
Depends on:
Blocks: 364551
  Show dependency tree
 
Reported: 2011-11-23 04:40 EST by Steffen Pingel CLA
Modified: 2013-11-08 14:11 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steffen Pingel CLA 2011-11-23 04:40:58 EST
In order to run automated UI tests for EPP with Jubula we need a database that is accessible from Hudson slaves.
Comment 1 Steffen Pingel CLA 2011-11-23 04:42:54 EST
Felix, can you provide more background what databases are supported? I am not sure that we have the option to run an Oracle database.
Comment 2 Eclipse Webmaster CLA 2011-11-23 09:41:57 EST
*** Bug 364554 has been marked as a duplicate of this bug. ***
Comment 3 Eclipse Webmaster CLA 2011-11-23 09:46:02 EST
Well, technically we do have access to an Oracle database.  It just happens to
be MySQL is all ;)

So do you just need access to a dbserver of some kind or is there something
more specific?  Is network access ok or does it need to be 'local'?

-M.
Comment 4 Felix Ziesel CLA 2011-11-23 10:02:37 EST
(In reply to comment #3)
> Well, technically we do have access to an Oracle database.  It just happens to
> be MySQL is all ;)
> 
> So do you just need access to a dbserver of some kind or is there something
> more specific?  Is network access ok or does it need to be 'local'?
> 
> -M.

The database contains the Jubula test definitions and test results. Therefore we need network access for every user to maintain and extend the tests and for the Hudson jobs to run the tests.
I would prefer Oracle because this is the supported and tested database for Jubula. (See https://s3.amazonaws.com/jubula/install.pdf)
Comment 5 Eclipse Webmaster CLA 2011-11-23 11:00:39 EST
Well, it's unlikely we will ever run an Oracle db.

The best I can do is provide access to a mysql db on build.  You won't be able to access it 'remotely'(from your office) but from build.eclipse.org will be fine.

-M.
Comment 6 Denis Roy CLA 2011-11-23 11:13:11 EST
> but from build.eclipse.org will be fine.

.. and from the Hudson master & non-test slaves too.
Comment 7 Felix Ziesel CLA 2011-11-24 11:00:11 EST
We also can use an H2 db locally that we will use for the test runs.
We can add tests by exporting/importing them via xml.
then we don´t need an oracle db.

Then we need a server for the db and the jubula installation.
And as a start a Win32 VM for the eclipse packages.

Then we can start tests via Hudson.
Comment 8 Eclipse Webmaster CLA 2011-11-24 11:19:55 EST
(In reply to comment #7)

> Then we need a server for the db and the jubula installation.
> And as a start a Win32 VM for the eclipse packages.

I'm confused.  It sounded like you were going to run the server 'locally'?

Where does the Windows VM fit into this?

Perhaps I should be asking: Given our current hudson setup(with unix,OSX and Windows slaves) what do you need that isn't available?

-M.
Comment 9 Felix Ziesel CLA 2011-11-24 12:03:49 EST
When we can use given slaves and put the current jubula agent on it, we don´t need any further VMs. The agents will start the eclipse packages on every target. 
(Lin, Win Mac)

But we still need the jubula client for connecting to the agents and start the test runs. This client should use the H2 db locally. The client test runs itself will be started via Hudson.

The content of the db (test libs and projects) can be exchange via a xml export by the package maintainers if they want to add tests. Writing new tests can be done in the package maintainers environment locally. The new tests can be imported back into the db.
Comment 10 Steffen Pingel CLA 2011-11-24 17:17:25 EST
(In reply to comment #9)
> When we can use given slaves and put the current jubula agent on it, we don´t
> need any further VMs. The agents will start the eclipse packages on every
> target.
> (Lin, Win Mac)

Would we (need to) keep the agents running similar to how the Hudson agents are already running on the slaves? 

> But we still need the jubula client for connecting to the agents and start the
> test runs. This client should use the H2 db locally. The client test runs itself
> will be started via Hudson.

This would only be needed on the slave where the initial build runs, right? Would it make sense to limit this to one of slaves, e.g. "master" to simplify setup?

> The content of the db (test libs and projects) can be exchange via a xml export
> by the package maintainers if they want to add tests. Writing new tests can be
> done in the package maintainers environment locally. The new tests can be
> imported back into the db.

That sounds like a good solution to me to avoid the hassle of setting up a database.
Comment 11 Eclipse Webmaster CLA 2011-11-25 09:08:55 EST
(In reply to comment #10)

> Would we (need to) keep the agents running similar to how the Hudson agents are
> already running on the slaves? 

I was wondering about that.  Can you start the agents via an ant task(or some other script)?  I think that's how the platform team starts Eclipse to run their UI tests.

-M.
Comment 12 Felix Ziesel CLA 2011-11-25 09:43:03 EST
> I was wondering about that.  Can you start the agents via an ant task(or some
> other script)?  

Yes, we can start that via hudson.
1. Start autagent on the target
2. Run test suite via Jubula client
3. Stop autagent

If we just have one jubula client for this then we have to run this one after the other (target by target, package by package). But I think it isn´t critical right now, we can add more clients if we really need them.
Comment 13 Felix Ziesel CLA 2011-11-28 05:36:09 EST
> Perhaps I should be asking: Given our current hudson setup(with unix,OSX and
> Windows slaves) what do you need that isn't available?

I have some other questions: 
1. Do the slaves have a GUI frontend where jubula can work on?
2. It is necessary that we have a clean test environment to avoid side effects. Are there any other jobs (or user interaction) on the servers that can disturb the jubula test run?
3. How can we get access to add everything we need?
Comment 14 Steffen Pingel CLA 2011-11-28 08:04:45 EST
(In reply to comment #13)
> 1. Do the slaves have a GUI frontend where jubula can work on?

The Linux slaves use the Hudson Xvnc plug-in to start Xvnc as part of running the job. Not sure about Windows but I would assume that we have the default Windows UI available.

> 2. It is necessary that we have a clean test environment to avoid side effects.
> Are there any other jobs (or user interaction) on the servers that can disturb
> the jubula test run?

Each Hudson job gets an isolated Xvnc.

> 3. How can we get access to add everything we need?

Once a job has been created committers can configure it as needed.
Comment 15 Felix Ziesel CLA 2011-11-30 04:43:11 EST
> Each Hudson job gets an isolated Xvnc.

Is it possible to get a virtual machine for each job?
We used Xvnc about two years ago and we had some timing problems with that solution.
At bredex we use VMWare but I think solutions like VirtualBox should also work.
Comment 16 Eclipse Webmaster CLA 2011-11-30 09:14:26 EST
(In reply to comment #15)

> Is it possible to get a virtual machine for each job?

No.  We are presently out of room for new virtual servers, and those are linux only(without guis so you'd still need to consider xvnc).

-M.
Comment 17 Steffen Pingel CLA 2011-12-09 06:57:30 EST
Felix, what if we scoped the initial deployment to the following:

* Use database serialized from XML that is checked into source repository
* Run on Hudson Linux slave only in an exclusive Xvnc instance (we can add tests on Windows later)

What would we need in terms of infrastructure to be present on the slave? 

I think ideally we would be able to provision the Jubula agent as part of the build, e.g. through a Maven plug-in but I assume that's not (yet) supported?
Comment 18 Felix Ziesel CLA 2011-12-15 10:02:39 EST
After discussing this terms internally here at Bredex we decided that we should  involve you in testing your EPPs first and thinking about the technical details later. Therefore we want to set up a git for the test projects and the test environment here at bredex. Steffen if you like to be the guinea pig, you are welcome ;-). I will inform you here when everything is ready.

Once the smoke tests are ready, we still can decide what should be moved to build.eclipse.org.
Comment 19 Steffen Pingel CLA 2011-12-15 11:31:59 EST
Thanks Felix. That sounds reasonable as an interim solution. In the interest of vendor neutrality we should figure out what is missing on Eclipse.org in the long term or how we can integrate with the existing infrastructure.
Comment 20 Denis Roy CLA 2013-10-24 10:43:23 EDT
Moving to Hudson.  Steffen, what's left to do here?
Comment 21 Steffen Pingel CLA 2013-10-24 11:20:10 EDT
Good question. I haven't looked at this in a while. I'll chat with the Jubula team at EclipseCon to check what the next steps would be to move this forward.
Comment 22 Denis Roy CLA 2013-10-24 11:27:41 EDT
Please keep me in the loop -- I'll be at ECon as well and can participate if needed.
Comment 23 Steffen Pingel CLA 2013-11-03 12:05:17 EST
We had a quick discussion and this is what we came up with:

* Download and extract the EPP build
* Create a job that imports the DB from a Git repository using dbtool
* Run the aut using runaut
* Execute tests using testrun

From a quick look it seems that Jubula command line tools are all OSGi applications. Markus, Is that correct? 

It could be most simple to use Tycho's tycho-eclipserun-plugin [1] to run the applications in that case assuming they are published to a p2 repository.  

Has anyone tried this before? Is there any ready to use automation for downloading and extracting an OSGi application to prepare the testbed?

[1] ycho-eclipserun-plugin
Comment 24 Steffen Pingel CLA 2013-11-08 14:11:50 EST
Based on what I have come up with on bug 364551 comment 1 we don't necessarily need to install anything to do some basic Jubula testing for EPP. At least initially it seems that we are best of starting with the most basic setup that just runs everything from Maven and shares the database through git. 

Felix, if you are still interested in providing some basic tests we should look at the stuff on bug 364551 and see if we can build on that. I'll close this bug for now and move further discussion to bug 364551.