Sorry, I forgot I had already added
https://sling.apache.org/documentation/tutorials-how-tos/testing-sling-based-applications.html#http-based-integration-tests

Would it make sense to add it to the page you linked and maybe drop a
couple of lines regarding the usecases?

 - Andrei

On Wed, Sep 21, 2016 at 10:31 AM Andrei Dulvac <dul...@apache.org> wrote:

> Hi Konrad,
>
> On Wed, Sep 21, 2016 at 10:18 AM Konrad Windszus <konra...@gmx.de> wrote:
>
>> Hey Andrei, could you briefly mention those new bundles in
>> https://sling.apache.org/documentation/development/sling-testing-tools.html
>> and/or
>> https://sling.apache.org/documentation/bundles/org-apache-sling-junit-bundles.html
>> just to have the complete picture on those pages?
>>
>
> Yes, I'll update those pages. Might take a while, as I'm still learning
> the ways of the apache CMS and all that.
>
>
>>
>> To me the difference to the Teleporter approach is not that obvious.
>> Maybe you can write some sentences on when it is recommended to choose
>> which approach.
>>
>
> Hmm, I think there are almost NO collisions there.
>
> The teleporter is a brilliant mechanism that runs a test on both the
> client-side (but only what's going on before the teleporter rule swaps the
> junit statement with a bundle creation, upload and test trigger on the
> server) and on the server-side, using sling junit core. You write tests on
> the serverside, but trigger them from the client-side and report them on
> the client-side.
>
> The Sling HTTP testing clients/ rules are a toolset of HTTP/ Junit goodies
> for writing tests that interact with instances at HTTP level. Think that
> you'd wanna test a servlet or a jsp. It would be a bit weird to do that
> from a server-side test written with the teleporter.
>
> Or that you want to test some clustering functionality where you have/
> provision 3 instances and interact with them "from the top" and the test
> logic needs 3 instances (see *SlingInstanceRule*). If you write a test
> with the teleporter, it will run *inside* one instance.
>
> Or that you want to use the clients in a stress-testing scenario (we're
> using the http clients in an internal tool in Adobe to stress test the
> system with Sling-specific operations, like creating and deleting nodes).
> The client-side junit stays stable and can keep going if the server is
> unresponsive.
>
> Also, you can perfectly have a module with some  tests using the http
> framework and some tests using the teleporter.
>
> I hope this makes sense and that I haven't misunderstood the question.
>
> - Andrei
>
>
>>
>> Thanks,
>> Konrad
>>
>> > Am 21.09.2016 um 10:11 schrieb Andrei Dulvac <dul...@apache.org>:
>> >
>> > Hi Stefan.
>> > Thanks for the +1.
>> > On Tue, Sep 20, 2016 at 6:20 PM Stefan Seifert <sseif...@pro-vision.de>
>> > wrote:
>> >
>> >> +1
>> >>
>> >> this is a lot of interesting stuff - do we already have some
>> >> documentation/sample project for this?
>> >>
>> > We have some docu on the junit rules [0] - the entrypoint for writing a
>> > test, some docu on the clients [1] (the FAQ at the end also provides
>> some
>> > insight into some design choices).
>> >
>> > I've also adapted the old SlingTestBase from sling.testing.tools in
>> > serversetup [2] in order to use those in the sling tests, using the
>> > existing mechanism to start a new sling instance for tests, as part of
>> the
>> > maven build. It's used in the SlingInstanceRule [3] which I used to
>> adapt
>> > some sample tests like [4] (I didn't want to touch launchpad tests or
>> > anything like that, but I'm willing to put in some work if needed). I
>> see
>> > Bertrand also adapted some tests there, in samples/ lately.
>> >
>> > That's mostly what we have, no wholesome documentation, unfortunately.
>> Ah,
>> > another helpful thing to have a look at is the unit tests for the
>> clients,
>> > like AbstractSlingClientGetUrlTest [5] which makes sure there are no
>> > regressions in terms of how URIs are dealt with.
>> >
>> > HTH,
>> > - Andrei
>> >
>> > ---
>> > [0] https://github.com/apache/sling/tree/trunk/testing/junit/rules
>> > [1] https://github.com/apache/sling/tree/trunk/testing/http/clients
>> > [2]
>> >
>> https://github.com/apache/sling/blob/trunk/testing/serversetup/src/main/java/org/apache/sling/testing/serversetup/instance/SlingTestBase.java
>> > [3]
>> >
>> https://github.com/apache/sling/blob/trunk/testing/junit/rules/src/main/java/org/apache/sling/testing/junit/rules/SlingInstanceRule.java
>> > [4]
>> >
>> https://github.com/apache/sling/blob/b0debb458d0ac7098ded772412adc11163865d2c/testing/samples/bundle-with-it/src/test/java/org/apache/sling/testing/samples/bundlewit/OsgiConsoleHttpIT.java
>> > [5]
>> >
>> https://github.com/apache/sling/blob/trunk/testing/http/clients/src/test/java/org/apache/sling/testing/AbstractSlingClientGetUrlTest.java
>>
>>

Reply via email to