Hi Michael,
This is a great question ... thank you for raising it.
So you are asking about a mock resource ... or test fixture ... to facilitate integration
testing of Hawkular? I think that is a great idea. In fact, I can envision a small
portfolio or quiver of mock resources or test fixutres:
* availability up
* availability down
* availability unknown
* generating metrics low volume
* generating metrics high volume
* etc ...
* to cover absolutely every primary use-case & resource that Hawkular would me
monitoring
I agree if we had a set, quiver, portfolio, or inventory of test fixtures it would
facilitate integration testing.
Next question ... might be "where"?
* on the JON QE Bladecenter ...
* in a private Docker registry
* developers and QE could do a 'docker pull' and get whatever fixture they
needed
* this would de-couple the fixtures from the bladecenter ...and allow the test
fixtures to be manipulated more easily by the developers and QE
*
in a public Docker registry
* this would decouple from the bladecenter
* allow developers in the community to use these test fixtures
Something I saw recently ... is this thing called Arqullian Cube ... which can be used to
control the lifecycle of Docker containers as part of integration tests. Some info here
... --->>
http://blog.arungupta.me/run-javaee-tests-wildfly-docker-arquillian-cube/
So with this approach possibly ... integration tests could be written where test fixtures
for availability up/down/unknown are programmatically spun up in Docker and automated
integration tests run.
Also ... another possible approach ... is to programmatically control these test fixtures
in our Bladecenter via a REST API. So we/QE built a REST API to wrap the RHEV/Foreman
infrastructure in our Bladecenter. So anything that can be done thru the UI can be done
programmatically. So you can imagine an integration test for availability... where in
@BeforeClass ... the automated test makes a REST call to spin up ...say ... an
availability unknown test fixture ...and some tests run.
Let's please talk more about this. I would like to learn more about your mock site
idea where the availability state changes on a schedule. I'll set up a Bluejeans time
and an etherpad where we can discuss this ...requirements, approaches, use-cases, etc ....
Regards,
Michael Foley
JON and Lumbini QE Supervisor
----- Original Message -----
From: "mike thompson" <mithomps(a)redhat.com>
To: "Discussions around Hawkular development"
<Hawkular-dev(a)lists.jboss.org>
Cc: "Michael Foley" <mfoley(a)redhat.com>, "Armine Hovsepyan"
<ahovsepy(a)redhat.com>
Sent: Thursday, April 9, 2015 10:24:45 PM
Subject: Ways to Test Availability Down?
I guess this question is mainly targeted to Hawkular QE. So all of my testing (especially
on a dev box) shows availability 100% (as most sites will). So while I can mock this in
code to show downtime and unknown. It appears that we need a consistent way to demonstrate
up/down/unknown/whatever else. Is there a QE way to do this currently?
I’m thinking a mock site that changes states every 5 or 10 minutes that is publicly
available. This way we could all link our integration tests to this site to provide full
coverage of states(and there could be other availability states like I have mentioned in
other Hawkular ML mails).
The use case I want to add is as a developer I want to test all availability states within
a half hour (or whatever timeframe, but as everything waits on tests passing less is
better) by pulling in certain site(s).
Ideas?
— Mike T