Re: Solidifying acceptance-test-harness API

2014-06-10 Thread Jesse Glick
On Thu, Jun 5, 2014 at 5:16 PM, Ulli Hafner ullrich.haf...@gmail.com wrote:
 it feels quite unusual to make the Assert class the topmost class of our 
 inheritance hierarchy

Agreed, extending a class (or implementing an interface) to get static
methods (resp. constants) is poor style when a static wildcard import
would suffice.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Solidifying acceptance-test-harness API

2014-06-05 Thread Kohsuke Kawaguchi


Thanks. I'd encourage Chris to write up some stuff in docs/ to introduce 
this feature.


And can we get extends Assert back in CapybaraPortingLayerImpl?
Maybe it's just me, but personally I found it convenient that it was 
extending Assert, which makes my IDE auto-completion a lot smoother.


On 06/04/2014 03:15 PM, Ulli Hafner wrote:

The Spock and Geb changes are now merged. In order to get those frameworks 
running with the current classes, Christian needed to introduce several 
interfaces. The corresponding classes have been renamed to *Impl.

Here is an example of the new capabilities:
https://github.com/jenkinsci/acceptance-test-harness/blob/master/src/test/groovy/groovy/plugins/JacocoPluginTest.groovy
Design of page objects is also quite simple:
https://github.com/jenkinsci/acceptance-test-harness/tree/master/src/main/groovy/org/jenkinsci/test/acceptance/plugins/jacoco

Am 13.05.2014 um 10:59 schrieb Ulli Hafner ullrich.haf...@gmail.com:


One of our students is currently trying to integrate Spock and Geb: this also 
requires API changes (at least we need to introduce additional interfaces for 
all those concrete selenium base classes). This part still is work in progress.

I also thought the purpose of this project is to collect all acceptance tests for 
Jenkins. So if we need to change the framework we just go ahead and commit the required 
changes. Up to now it was not clear that we need to publish a stable version 
at all.
Are there any other plans for additional test suites that are based on the 
acceptance test harness project (besides your Cloudbees test suite)?

Am 13.05.2014 um 02:26 schrieb Kohsuke Kawaguchi kkawagu...@cloudbees.com:


On 05/12/2014 04:09 PM, Stephen Connolly wrote:

You know I have *very* strong feelings on a lot of the lower layers... but you
also know that I haven't had the time to get the replacement layer published
yet... It's coming... there is the possibility that it may break some stuff...
but I am reasonably confident that it shouldn't


Good point, so there's at least that group of changes that we should expect 
before we consider it solidified.


On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org 
mailto:k...@kohsuke.org
wrote:


   So I jumped the gun a little bit and cut a release of
   acceptance-test-harness, as it was blocking me on developing other sets of
   tests internally.

   But this triggered a comment from Oliver [1] in terms of what we want to see
   in the code before we consider the API stable enough.

   Specifically,

   I hoped there will be a discussion before making the API public. I
   wanted to get rid off all the public Controls exposed from page objects
   because we will not be able to preserve the API as Jenkins UI evolves.
   Changes like af98505 will surely follow.


   So first of all, I wanted to set the expectation right that 1.0 and 1.1 I
   released shouldn't be considered stable.


   With that said, personally I didn't anticipate that we hold ourselves to the
   level of backward compatibility that we do for Jenkins, and public final
   Control fields are nice, namely they are very concise to write.

   But I'm willing to follow what we want as a whole, so if you have any strong
   feelings and thoughts on this, this is the opportunity to speak up.


   [1]
   
https://github.com/jenkinsci/__acceptance-test-harness/__commit/__8a4bacb386ee0b5a34c5dd499bd74f__50b35c726d#commitcomment-__6297001
   
https://github.com/jenkinsci/acceptance-test-harness/commit/8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001
   --
   Kohsuke Kawaguchi http://kohsuke.org/

   --
   You received this message because you are subscribed to the Google Groups
   Jenkins Developers group.
   To unsubscribe from this group and stop receiving emails from it, send an
   email to jenkinsci-dev+unsubscribe@__googlegroups.com
   mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com.
   For more options, visit https://groups.google.com/d/__optout
   https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email
to jenkinsci-dev+unsubscr...@googlegroups.com
mailto:jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.




--
Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
Try Jenkins Enterprise, our professional version of Jenkins

--
You received this message because you are subscribed to the Google Groups Jenkins 
Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.







--
Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
Try Jenkins Enterprise, our professional version of Jenkins

--
You received this message because you are subscribed to the 

Re: Solidifying acceptance-test-harness API

2014-06-05 Thread Ulli Hafner

Am 05.06.2014 um 19:00 schrieb Kohsuke Kawaguchi kkawagu...@cloudbees.com:

 
 Thanks. I'd encourage Chris to write up some stuff in docs/ to introduce this 
 feature.
 

Yes, this will be part of his next steps…

 And can we get extends Assert back in CapybaraPortingLayerImpl?
 Maybe it's just me, but personally I found it convenient that it was 
 extending Assert, which makes my IDE auto-completion a lot smoother.

I see. This is one of the drawbacks of IntelliJ:-) I also noted that after my 
switch from Eclipse that you need to press a different shortcut 
(CTRL-ALT-Space) to get code completion on static assert* methods (in Eclipse 
these completions are unified)… If this is too cumbersome we can revert that 
part of the change (even though it feels quite unusual to make the Assert class 
the topmost class of our inheritance hierarchy).

 
 On 06/04/2014 03:15 PM, Ulli Hafner wrote:
 The Spock and Geb changes are now merged. In order to get those frameworks 
 running with the current classes, Christian needed to introduce several 
 interfaces. The corresponding classes have been renamed to *Impl.
 
 Here is an example of the new capabilities:
 https://github.com/jenkinsci/acceptance-test-harness/blob/master/src/test/groovy/groovy/plugins/JacocoPluginTest.groovy
 Design of page objects is also quite simple:
 https://github.com/jenkinsci/acceptance-test-harness/tree/master/src/main/groovy/org/jenkinsci/test/acceptance/plugins/jacoco
 
 Am 13.05.2014 um 10:59 schrieb Ulli Hafner ullrich.haf...@gmail.com:
 
 One of our students is currently trying to integrate Spock and Geb: this 
 also requires API changes (at least we need to introduce additional 
 interfaces for all those concrete selenium base classes). This part still 
 is work in progress.
 
 I also thought the purpose of this project is to collect all acceptance 
 tests for Jenkins. So if we need to change the framework we just go ahead 
 and commit the required changes. Up to now it was not clear that we need to 
 publish a stable version at all.
 Are there any other plans for additional test suites that are based on the 
 acceptance test harness project (besides your Cloudbees test suite)?
 
 Am 13.05.2014 um 02:26 schrieb Kohsuke Kawaguchi kkawagu...@cloudbees.com:
 
 On 05/12/2014 04:09 PM, Stephen Connolly wrote:
 You know I have *very* strong feelings on a lot of the lower layers... 
 but you
 also know that I haven't had the time to get the replacement layer 
 published
 yet... It's coming... there is the possibility that it may break some 
 stuff...
 but I am reasonably confident that it shouldn't
 
 Good point, so there's at least that group of changes that we should 
 expect before we consider it solidified.
 
 On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org 
 mailto:k...@kohsuke.org
 wrote:
 
 
   So I jumped the gun a little bit and cut a release of
   acceptance-test-harness, as it was blocking me on developing other sets 
 of
   tests internally.
 
   But this triggered a comment from Oliver [1] in terms of what we want 
 to see
   in the code before we consider the API stable enough.
 
   Specifically,
 
   I hoped there will be a discussion before making the API public. I
   wanted to get rid off all the public Controls exposed from page 
 objects
   because we will not be able to preserve the API as Jenkins UI 
 evolves.
   Changes like af98505 will surely follow.
 
 
   So first of all, I wanted to set the expectation right that 1.0 and 1.1 
 I
   released shouldn't be considered stable.
 
 
   With that said, personally I didn't anticipate that we hold ourselves 
 to the
   level of backward compatibility that we do for Jenkins, and public final
   Control fields are nice, namely they are very concise to write.
 
   But I'm willing to follow what we want as a whole, so if you have any 
 strong
   feelings and thoughts on this, this is the opportunity to speak up.
 
 
   [1]
   
 https://github.com/jenkinsci/__acceptance-test-harness/__commit/__8a4bacb386ee0b5a34c5dd499bd74f__50b35c726d#commitcomment-__6297001
   
 https://github.com/jenkinsci/acceptance-test-harness/commit/8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001
   --
   Kohsuke Kawaguchi http://kohsuke.org/
 
   --
   You received this message because you are subscribed to the Google 
 Groups
   Jenkins Developers group.
   To unsubscribe from this group and stop receiving emails from it, send 
 an
   email to jenkinsci-dev+unsubscribe@__googlegroups.com
   mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com.
   For more options, visit https://groups.google.com/d/__optout
   https://groups.google.com/d/optout.
 
 
 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email
 to jenkinsci-dev+unsubscr...@googlegroups.com
 mailto:jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit 

Re: Solidifying acceptance-test-harness API

2014-06-04 Thread Ulli Hafner
The Spock and Geb changes are now merged. In order to get those frameworks 
running with the current classes, Christian needed to introduce several 
interfaces. The corresponding classes have been renamed to *Impl. 

Here is an example of the new capabilities:
https://github.com/jenkinsci/acceptance-test-harness/blob/master/src/test/groovy/groovy/plugins/JacocoPluginTest.groovy
Design of page objects is also quite simple: 
https://github.com/jenkinsci/acceptance-test-harness/tree/master/src/main/groovy/org/jenkinsci/test/acceptance/plugins/jacoco
 
Am 13.05.2014 um 10:59 schrieb Ulli Hafner ullrich.haf...@gmail.com:

 One of our students is currently trying to integrate Spock and Geb: this also 
 requires API changes (at least we need to introduce additional interfaces for 
 all those concrete selenium base classes). This part still is work in 
 progress.
 
 I also thought the purpose of this project is to collect all acceptance tests 
 for Jenkins. So if we need to change the framework we just go ahead and 
 commit the required changes. Up to now it was not clear that we need to 
 publish a „stable“ version at all. 
 Are there any other plans for additional test suites that are based on the 
 acceptance test harness project (besides your Cloudbees test suite)? 
 
 Am 13.05.2014 um 02:26 schrieb Kohsuke Kawaguchi kkawagu...@cloudbees.com:
 
 On 05/12/2014 04:09 PM, Stephen Connolly wrote:
 You know I have *very* strong feelings on a lot of the lower layers... but 
 you
 also know that I haven't had the time to get the replacement layer published
 yet... It's coming... there is the possibility that it may break some 
 stuff...
 but I am reasonably confident that it shouldn't
 
 Good point, so there's at least that group of changes that we should expect 
 before we consider it solidified.
 
 On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org 
 mailto:k...@kohsuke.org
 wrote:
 
 
So I jumped the gun a little bit and cut a release of
acceptance-test-harness, as it was blocking me on developing other sets 
 of
tests internally.
 
But this triggered a comment from Oliver [1] in terms of what we want to 
 see
in the code before we consider the API stable enough.
 
Specifically,
 
I hoped there will be a discussion before making the API public. I
wanted to get rid off all the public Controls exposed from page 
 objects
because we will not be able to preserve the API as Jenkins UI 
 evolves.
Changes like af98505 will surely follow.
 
 
So first of all, I wanted to set the expectation right that 1.0 and 1.1 I
released shouldn't be considered stable.
 
 
With that said, personally I didn't anticipate that we hold ourselves to 
 the
level of backward compatibility that we do for Jenkins, and public final
Control fields are nice, namely they are very concise to write.
 
But I'm willing to follow what we want as a whole, so if you have any 
 strong
feelings and thoughts on this, this is the opportunity to speak up.
 
 
[1]

 https://github.com/jenkinsci/__acceptance-test-harness/__commit/__8a4bacb386ee0b5a34c5dd499bd74f__50b35c726d#commitcomment-__6297001

 https://github.com/jenkinsci/acceptance-test-harness/commit/8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001
--
Kohsuke Kawaguchi http://kohsuke.org/
 
--
You received this message because you are subscribed to the Google Groups
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an
email to jenkinsci-dev+unsubscribe@__googlegroups.com
mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/__optout
https://groups.google.com/d/optout.
 
 
 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email
 to jenkinsci-dev+unsubscr...@googlegroups.com
 mailto:jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.
 
 
 
 -- 
 Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
 Try Jenkins Enterprise, our professional version of Jenkins
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.
 



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Solidifying acceptance-test-harness API

2014-05-13 Thread Ulli Hafner
One of our students is currently trying to integrate Spock and Geb: this also 
requires API changes (at least we need to introduce additional interfaces for 
all those concrete selenium base classes). This part still is work in progress.

I also thought the purpose of this project is to collect all acceptance tests 
for Jenkins. So if we need to change the framework we just go ahead and commit 
the required changes. Up to now it was not clear that we need to publish a 
„stable“ version at all. 
Are there any other plans for additional test suites that are based on the 
acceptance test harness project (besides your Cloudbees test suite)? 

Am 13.05.2014 um 02:26 schrieb Kohsuke Kawaguchi kkawagu...@cloudbees.com:

 On 05/12/2014 04:09 PM, Stephen Connolly wrote:
 You know I have *very* strong feelings on a lot of the lower layers... but 
 you
 also know that I haven't had the time to get the replacement layer published
 yet... It's coming... there is the possibility that it may break some 
 stuff...
 but I am reasonably confident that it shouldn't
 
 Good point, so there's at least that group of changes that we should expect 
 before we consider it solidified.
 
 On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org 
 mailto:k...@kohsuke.org
 wrote:
 
 
 So I jumped the gun a little bit and cut a release of
 acceptance-test-harness, as it was blocking me on developing other sets 
 of
 tests internally.
 
 But this triggered a comment from Oliver [1] in terms of what we want to 
 see
 in the code before we consider the API stable enough.
 
 Specifically,
 
 I hoped there will be a discussion before making the API public. I
 wanted to get rid off all the public Controls exposed from page 
 objects
 because we will not be able to preserve the API as Jenkins UI 
 evolves.
 Changes like af98505 will surely follow.
 
 
 So first of all, I wanted to set the expectation right that 1.0 and 1.1 I
 released shouldn't be considered stable.
 
 
 With that said, personally I didn't anticipate that we hold ourselves to 
 the
 level of backward compatibility that we do for Jenkins, and public final
 Control fields are nice, namely they are very concise to write.
 
 But I'm willing to follow what we want as a whole, so if you have any 
 strong
 feelings and thoughts on this, this is the opportunity to speak up.
 
 
 [1]
 
 https://github.com/jenkinsci/__acceptance-test-harness/__commit/__8a4bacb386ee0b5a34c5dd499bd74f__50b35c726d#commitcomment-__6297001
 
 https://github.com/jenkinsci/acceptance-test-harness/commit/8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001
 --
 Kohsuke Kawaguchi http://kohsuke.org/
 
 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to jenkinsci-dev+unsubscribe@__googlegroups.com
 mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/__optout
 https://groups.google.com/d/optout.
 
 
 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email
 to jenkinsci-dev+unsubscr...@googlegroups.com
 mailto:jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.
 
 
 
 -- 
 Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
 Try Jenkins Enterprise, our professional version of Jenkins
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.



signature.asc
Description: Message signed with OpenPGP using GPGMail


RE: Solidifying acceptance-test-harness API

2014-05-13 Thread Sandell, Robert
As long as the version number reflects API compatibility I don't see any 
problems with not staying backwards compatible and no direct need for a 
stable version.

I will probably have some internal test suite that tests the internal tool 
chain that can't be published, as long as I can easily see what bumping up to a 
newer version would bring in terms of adaptation effort I see no harm in 
keeping it fast and loose ;)



Robert Sandell
Sony Mobile Communications
Tel: +46 10 80 12721
sonymobile.com


-Original Message-
From: jenkinsci-dev@googlegroups.com [mailto:jenkinsci-dev@googlegroups.com] On 
Behalf Of Ulli Hafner
Sent: den 13 maj 2014 11:00
To: jenkinsci-dev@googlegroups.com
Subject: Re: Solidifying acceptance-test-harness API

One of our students is currently trying to integrate Spock and Geb: this also 
requires API changes (at least we need to introduce additional interfaces for 
all those concrete selenium base classes). This part still is work in progress.

I also thought the purpose of this project is to collect all acceptance tests 
for Jenkins. So if we need to change the framework we just go ahead and commit 
the required changes. Up to now it was not clear that we need to publish a 
stable version at all. 
Are there any other plans for additional test suites that are based on the 
acceptance test harness project (besides your Cloudbees test suite)? 

Am 13.05.2014 um 02:26 schrieb Kohsuke Kawaguchi kkawagu...@cloudbees.com:

 On 05/12/2014 04:09 PM, Stephen Connolly wrote:
 You know I have *very* strong feelings on a lot of the lower 
 layers... but you also know that I haven't had the time to get the 
 replacement layer published yet... It's coming... there is the possibility 
 that it may break some stuff...
 but I am reasonably confident that it shouldn't
 
 Good point, so there's at least that group of changes that we should expect 
 before we consider it solidified.
 
 On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org 
 mailto:k...@kohsuke.org
 wrote:
 
 
 So I jumped the gun a little bit and cut a release of
 acceptance-test-harness, as it was blocking me on developing other sets 
 of
 tests internally.
 
 But this triggered a comment from Oliver [1] in terms of what we want to 
 see
 in the code before we consider the API stable enough.
 
 Specifically,
 
 I hoped there will be a discussion before making the API public. I
 wanted to get rid off all the public Controls exposed from page 
 objects
 because we will not be able to preserve the API as Jenkins UI 
 evolves.
 Changes like af98505 will surely follow.
 
 
 So first of all, I wanted to set the expectation right that 1.0 and 1.1 I
 released shouldn't be considered stable.
 
 
 With that said, personally I didn't anticipate that we hold ourselves to 
 the
 level of backward compatibility that we do for Jenkins, and public final
 Control fields are nice, namely they are very concise to write.
 
 But I'm willing to follow what we want as a whole, so if you have any 
 strong
 feelings and thoughts on this, this is the opportunity to speak up.
 
 
 [1]
 
 https://github.com/jenkinsci/__acceptance-test-harness/__commit/__8a4bacb386ee0b5a34c5dd499bd74f__50b35c726d#commitcomment-__6297001
 
 https://github.com/jenkinsci/acceptance-test-harness/commit/8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001
 --
 Kohsuke Kawaguchi http://kohsuke.org/
 
 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to jenkinsci-dev+unsubscribe@__googlegroups.com
 mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/__optout
 https://groups.google.com/d/optout.
 
 
 --
 You received this message because you are subscribed to the Google 
 Groups Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, 
 send an email to jenkinsci-dev+unsubscr...@googlegroups.com
 mailto:jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.
 
 
 
 --
 Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/ Try 
 Jenkins Enterprise, our professional version of Jenkins
 
 --
 You received this message because you are subscribed to the Google Groups 
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an 
 email to jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https

Re: Solidifying acceptance-test-harness API

2014-05-13 Thread Stephen Connolly
Oh I forgot my point... I suspect that some of the acceptance tests would
be easier to write if you use the scalability framework's DSL to set up a
lot of the acceptance test... at least they would be less fragile as you
have a known scenario with inter-job relationships. I have found that
setting up complex job scenarios via Selenium can be somewhat fragile and
you end up with brittle tests that fail at random.

I do not think all acceptance tests should use the scalability framework's
Plan model to set up the test environment (other than the bare Plan with
plugins installed) as there is value in testing the path... but the more
complex ones where the setup path is already covered... they can get value


On 13 May 2014 12:21, Stephen Connolly stephen.alan.conno...@gmail.comwrote:

 Well I have a scalability test framework that makes it very easy to test
 jenkins at scale. I also think that the DSL for scaling jenkins is probably
 very handy for acceptace tests. For example, here is my *current* API for
 load testing the SSH Slaves connector:

 Plan p = new Plan();
 Ec2MachineFactory factory = new Ec2MachineFactory(new Ec2Config());
 try (Execution e = new Execution(p)
 .with(MasterNode.factory())
 .with(SlaveNode.factory())
 .machines(factory)
 .machines(new MultitenantMachinesFactory(factory, 15),
 PlannedSlave.class)) {
 PlannedMaster master = p.createMaster()
 .withPlugins(metrics, random-job-builder)
 .withView(new
 PlannedCloudBeesDashboardView().withName(Dashboard))
 .withPluginsDisabled(translation)
 .withExecutors(0);
 NioSshSlaveLauncher launcher = new NioSshSlaveLauncher();
 for (int i = 0; i  60; i++) {

 master.withSlave(p.createSlave().withLauncher(launcher).withExecutors(2));
 }
 for (int f = 0; f  10; f++) {
 PlannedFolder folder = p.createFolder(master);
 for (int g = 0; g  3; g++) {
 PlannedFolder subfolder = p.createFolder(folder);
 for (int h = 0; h  10; h++) {
 p.createMockJob(subfolder);
 }
 }
 }
 e.start();
 MasterNode executionMaster = e.resolve(master);
 // give the user a browser window to observe the load

 Desktop.getDesktop().browse(URI.create(executionMaster.getJenkinsUrl()+view/Dashboard/));
 // wait for the user to request tear-down
 }

 I have found this *very* powerful for testing load. The above scenario let
 me determine, for example, that on an m3.large you can have about 60
 concurrent mock load builds using the JNLP launcher, or about 10 concurrent
 mock load builds using the Trilead SSH launcher... above those levels by
 more than 5 concurrent builds and Jenkins blows up. With the CloudBees
 NioSSH launcher you can have 15 concurrent builds without slowing of build
 times... and you can have 120 concurrent builds without Jenkins blowing up.

 What I need to do is detangle some of the CloudBees specific bits: e.g. in
 the above example there are two classes that will not be made public:
 PlannedCloudBeesDashboardView and NioSshSlaveLauncher because those classes
 will decorate the provisioned Jenkins master with a CloudBees Jenkins
 Enterprise license ;-)

 I also want to get a hashing function for a Plan so that the JUT server
 can be made compatible in the face of requests for specific plans.


 On 13 May 2014 09:59, Ulli Hafner ullrich.haf...@gmail.com wrote:

 One of our students is currently trying to integrate Spock and Geb: this
 also requires API changes (at least we need to introduce additional
 interfaces for all those concrete selenium base classes). This part still
 is work in progress.

 I also thought the purpose of this project is to collect all acceptance
 tests for Jenkins. So if we need to change the framework we just go ahead
 and commit the required changes. Up to now it was not clear that we need to
 publish a „stable“ version at all.
 Are there any other plans for additional test suites that are based on
 the acceptance test harness project (besides your Cloudbees test suite)?

 Am 13.05.2014 um 02:26 schrieb Kohsuke Kawaguchi 
 kkawagu...@cloudbees.com:

  On 05/12/2014 04:09 PM, Stephen Connolly wrote:
  You know I have *very* strong feelings on a lot of the lower layers...
 but you
  also know that I haven't had the time to get the replacement layer
 published
  yet... It's coming... there is the possibility that it may break some
 stuff...
  but I am reasonably confident that it shouldn't
 
  Good point, so there's at least that group of changes that we should
 expect before we consider it solidified.
 
  On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org mailto:
 k...@kohsuke.org
  wrote:
 
 
  So I jumped the 

Re: Solidifying acceptance-test-harness API

2014-05-13 Thread ogondza
On Tuesday, May 13, 2014 12:49:54 PM UTC+2, Robert Sandell wrote:

 As long as the version number reflects API compatibility I don't see any 
 problems with not staying backwards compatible and no direct need for a 
 stable version.


This is a good compromise.

-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Solidifying acceptance-test-harness API

2014-05-13 Thread Kohsuke Kawaguchi
Yes, I think it's quite complementary.

Looking forward to seeing the code land on the acceptance-test repo.


2014-05-13 4:25 GMT-07:00 Stephen Connolly stephen.alan.conno...@gmail.com
:

 Oh I forgot my point... I suspect that some of the acceptance tests would
 be easier to write if you use the scalability framework's DSL to set up a
 lot of the acceptance test... at least they would be less fragile as you
 have a known scenario with inter-job relationships. I have found that
 setting up complex job scenarios via Selenium can be somewhat fragile and
 you end up with brittle tests that fail at random.

 I do not think all acceptance tests should use the scalability framework's
 Plan model to set up the test environment (other than the bare Plan with
 plugins installed) as there is value in testing the path... but the more
 complex ones where the setup path is already covered... they can get value


 On 13 May 2014 12:21, Stephen Connolly stephen.alan.conno...@gmail.comwrote:

 Well I have a scalability test framework that makes it very easy to test
 jenkins at scale. I also think that the DSL for scaling jenkins is probably
 very handy for acceptace tests. For example, here is my *current* API for
 load testing the SSH Slaves connector:

 Plan p = new Plan();
 Ec2MachineFactory factory = new Ec2MachineFactory(new
 Ec2Config());
 try (Execution e = new Execution(p)
 .with(MasterNode.factory())
 .with(SlaveNode.factory())
 .machines(factory)
 .machines(new MultitenantMachinesFactory(factory, 15),
 PlannedSlave.class)) {
 PlannedMaster master = p.createMaster()
 .withPlugins(metrics, random-job-builder)
 .withView(new
 PlannedCloudBeesDashboardView().withName(Dashboard))
 .withPluginsDisabled(translation)
 .withExecutors(0);
 NioSshSlaveLauncher launcher = new NioSshSlaveLauncher();
 for (int i = 0; i  60; i++) {

 master.withSlave(p.createSlave().withLauncher(launcher).withExecutors(2));
 }
 for (int f = 0; f  10; f++) {
 PlannedFolder folder = p.createFolder(master);
 for (int g = 0; g  3; g++) {
 PlannedFolder subfolder = p.createFolder(folder);
 for (int h = 0; h  10; h++) {
 p.createMockJob(subfolder);
 }
 }
 }
 e.start();
 MasterNode executionMaster = e.resolve(master);
 // give the user a browser window to observe the load

 Desktop.getDesktop().browse(URI.create(executionMaster.getJenkinsUrl()+view/Dashboard/));
 // wait for the user to request tear-down
 }

 I have found this *very* powerful for testing load. The above scenario
 let me determine, for example, that on an m3.large you can have about 60
 concurrent mock load builds using the JNLP launcher, or about 10 concurrent
 mock load builds using the Trilead SSH launcher... above those levels by
 more than 5 concurrent builds and Jenkins blows up. With the CloudBees
 NioSSH launcher you can have 15 concurrent builds without slowing of build
 times... and you can have 120 concurrent builds without Jenkins blowing up.

 What I need to do is detangle some of the CloudBees specific bits: e.g.
 in the above example there are two classes that will not be made public:
 PlannedCloudBeesDashboardView and NioSshSlaveLauncher because those classes
 will decorate the provisioned Jenkins master with a CloudBees Jenkins
 Enterprise license ;-)

 I also want to get a hashing function for a Plan so that the JUT server
 can be made compatible in the face of requests for specific plans.


 On 13 May 2014 09:59, Ulli Hafner ullrich.haf...@gmail.com wrote:

 One of our students is currently trying to integrate Spock and Geb: this
 also requires API changes (at least we need to introduce additional
 interfaces for all those concrete selenium base classes). This part still
 is work in progress.

 I also thought the purpose of this project is to collect all acceptance
 tests for Jenkins. So if we need to change the framework we just go ahead
 and commit the required changes. Up to now it was not clear that we need to
 publish a „stable“ version at all.
 Are there any other plans for additional test suites that are based on
 the acceptance test harness project (besides your Cloudbees test suite)?

 Am 13.05.2014 um 02:26 schrieb Kohsuke Kawaguchi 
 kkawagu...@cloudbees.com:

  On 05/12/2014 04:09 PM, Stephen Connolly wrote:
  You know I have *very* strong feelings on a lot of the lower
 layers... but you
  also know that I haven't had the time to get the replacement layer
 published
  yet... It's coming... there is the possibility that it may break some
 stuff...
  but I am reasonably confident that it shouldn't
 
  Good point, so there's at least 

Solidifying acceptance-test-harness API

2014-05-12 Thread Kohsuke Kawaguchi


So I jumped the gun a little bit and cut a release of 
acceptance-test-harness, as it was blocking me on developing other sets 
of tests internally.


But this triggered a comment from Oliver [1] in terms of what we want to 
see in the code before we consider the API stable enough.


Specifically,


I hoped there will be a discussion before making the API public. I
wanted to get rid off all the public Controls exposed from page objects
because we will not be able to preserve the API as Jenkins UI evolves.
Changes like af98505 will surely follow.


So first of all, I wanted to set the expectation right that 1.0 and 1.1 
I released shouldn't be considered stable.



With that said, personally I didn't anticipate that we hold ourselves to 
the level of backward compatibility that we do for Jenkins, and public 
final Control fields are nice, namely they are very concise to write.


But I'm willing to follow what we want as a whole, so if you have any 
strong feelings and thoughts on this, this is the opportunity to speak up.



[1] 
https://github.com/jenkinsci/acceptance-test-harness/commit/8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001

--
Kohsuke Kawaguchi  http://kohsuke.org/

--
You received this message because you are subscribed to the Google Groups Jenkins 
Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Solidifying acceptance-test-harness API

2014-05-12 Thread Stephen Connolly
You know I have *very* strong feelings on a lot of the lower layers... but
you also know that I haven't had the time to get the replacement layer
published yet... It's coming... there is the possibility that it may break
some stuff... but I am reasonably confident that it shouldn't


On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org wrote:


 So I jumped the gun a little bit and cut a release of
 acceptance-test-harness, as it was blocking me on developing other sets of
 tests internally.

 But this triggered a comment from Oliver [1] in terms of what we want to
 see in the code before we consider the API stable enough.

 Specifically,

  I hoped there will be a discussion before making the API public. I
 wanted to get rid off all the public Controls exposed from page objects
 because we will not be able to preserve the API as Jenkins UI evolves.
 Changes like af98505 will surely follow.


 So first of all, I wanted to set the expectation right that 1.0 and 1.1 I
 released shouldn't be considered stable.


 With that said, personally I didn't anticipate that we hold ourselves to
 the level of backward compatibility that we do for Jenkins, and public
 final Control fields are nice, namely they are very concise to write.

 But I'm willing to follow what we want as a whole, so if you have any
 strong feelings and thoughts on this, this is the opportunity to speak up.


 [1] https://github.com/jenkinsci/acceptance-test-harness/commit/
 8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001
 --
 Kohsuke Kawaguchi  http://kohsuke.org/

 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to jenkinsci-dev+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Solidifying acceptance-test-harness API

2014-05-12 Thread Kohsuke Kawaguchi

On 05/12/2014 04:09 PM, Stephen Connolly wrote:

You know I have *very* strong feelings on a lot of the lower layers... but you
also know that I haven't had the time to get the replacement layer published
yet... It's coming... there is the possibility that it may break some stuff...
but I am reasonably confident that it shouldn't


Good point, so there's at least that group of changes that we should 
expect before we consider it solidified.



On 12 May 2014 23:28, Kohsuke Kawaguchi k...@kohsuke.org 
mailto:k...@kohsuke.org
wrote:


 So I jumped the gun a little bit and cut a release of
 acceptance-test-harness, as it was blocking me on developing other sets of
 tests internally.

 But this triggered a comment from Oliver [1] in terms of what we want to 
see
 in the code before we consider the API stable enough.

 Specifically,

 I hoped there will be a discussion before making the API public. I
 wanted to get rid off all the public Controls exposed from page objects
 because we will not be able to preserve the API as Jenkins UI evolves.
 Changes like af98505 will surely follow.


 So first of all, I wanted to set the expectation right that 1.0 and 1.1 I
 released shouldn't be considered stable.


 With that said, personally I didn't anticipate that we hold ourselves to 
the
 level of backward compatibility that we do for Jenkins, and public final
 Control fields are nice, namely they are very concise to write.

 But I'm willing to follow what we want as a whole, so if you have any 
strong
 feelings and thoughts on this, this is the opportunity to speak up.


 [1]
 
https://github.com/jenkinsci/__acceptance-test-harness/__commit/__8a4bacb386ee0b5a34c5dd499bd74f__50b35c726d#commitcomment-__6297001
 
https://github.com/jenkinsci/acceptance-test-harness/commit/8a4bacb386ee0b5a34c5dd499bd74f50b35c726d#commitcomment-6297001
 --
 Kohsuke Kawaguchi http://kohsuke.org/

 --
 You received this message because you are subscribed to the Google Groups
 Jenkins Developers group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to jenkinsci-dev+unsubscribe@__googlegroups.com
 mailto:jenkinsci-dev%2bunsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/__optout
 https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups
Jenkins Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email
to jenkinsci-dev+unsubscr...@googlegroups.com
mailto:jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.




--
Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
Try Jenkins Enterprise, our professional version of Jenkins

--
You received this message because you are subscribed to the Google Groups Jenkins 
Developers group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.