[aerogear-dev] Automatic quickstart ftesting solution

Tadeas Kriz tkriz at redhat.com
Fri Apr 3 05:33:47 EDT 2015


On Wed, Mar 25, 2015 at 4:53 PM, Lukáš Fryč <lukas.fryc at gmail.com> wrote:

> This sounds great, Stefan,
>
> questions:
> 1. what about automate this as a commit-triggered CI build on AeroGear
> CloudBees jenkins?
> 2. are we able to automate more platforms such as iOS?
>

Yes but not on iOS simulator so it won't be possible to do this on remote
Jenkins. iOS unfortunately supports push notifications only on real devices.


>
> It would be huge time-saver if this build could actually test that UPS
> pushes successfully to Android (and potentially iOS) and report that as a
> comment to each Pull Request. No matter how long it would take, half an
> hour is my ideal here considering the use case ;-)
>
> ~ Lukas
>
>
> st 25. 3. 2015 v 16:37 odesílatel Stefan Miklosovic <smikloso at redhat.com>
> napsal:
>
>> Hi,
>>
>> I think few days ago there was some information from Karel Piwko that we
>> developed fully automatic functional tests when it comes to Cordova
>> quickstarts (1) (hello world and shoot and share)
>>
>> We think that it could be useful for developers as well. This tests the
>> whole life cycle of the push from creation of UPS cartridge through
>> building of the example to the functional test in a fully automatic manner
>> from zero setup to push notification receive at mobile device you have
>> connected to your notebook and it could be useful for developers in order
>> to not execute it manually every time and set it up all over again.
>>
>> By what I mean "fully automatic" is the following scenario:
>>
>> 1) Automatic creation of UPS cartridge on OpenShift right from our test,
>> patched with this extension * (2), (3)
>> 2) Because of the deployed extension to UPS in 1), we can login via REST
>> and we do not need to change passwords so we can create application with
>> some variant directly from our test script (4)
>> 3) After this is done, quickstart example is downloaded from GH, Android
>> SDK is installed locally at your PC, quickstart is filled with application
>> and google credentials automatically and after that it is built
>> 4) APK built in 3) is then used in functional test by Arquillian Droidium
>> (5) which deploys that APK to physical device and in that test, we send
>> push notification request to UPS
>> 5) Once push notification comes to UPS, it sends it to GCM which in turn
>> sends it to physical device and Droidium test asserts that the message
>> really came and appeared on the mobile device.
>>
>> It takes about 10 minutes, you have to have Android device attached to
>> your PC since test will communicate with it. Time could be massively
>> decreased when you do not expect new OS UPS instance to be created every
>> time.
>>
>> You execute it like this in
>> https://github.com/aerogear/aerogear-unifiedpush-server-integration-tests
>> repository
>>
>> ./gradlew test -Pprofile=helloWorldCordovaQuickstart \
>>     -PgoogleProjectNumber=<your  project number> \
>>     -PgoogleKey=<your google key> \
>>     -PopenShiftUsername=<email of your openshift account>
>>     -PopenShiftPassword=<password for your openshift account> \
>>     -PopenShiftCartridge=
>> https://cartreflect-claytondev.rhcloud.com/reflect?github=aerogear/openshift-origin-cartridge-aerogear-push
>> \
>>     -PopenShiftAppDirectory=aerogear-push
>>
>> Similar process is executed with Shoot & Share demo where we send image
>> to Facebook. All triggered by one shell command from integration tests and
>> after that the above magic happens.
>>
>> I case you want to use it and you struggle with it, feel free to ask me
>> for guidance.
>>
>> * unified-test-extension adds custom functionality to UPS cartridge, it
>> adds fancy performance test endpoints where you can feed UPS instance with
>> custom number of generated installations / categories / variants and so on.
>> More to it, it can put proxy behind sender API so push notifications goes
>> nowhere in the end but it seems like they were indeed sent from UPS point
>> of view. This is particularly handy in test environment where you really do
>> not want to send anything to APNS or GCM.
>>
>> (1) https://github.com/jboss-mobile/unified-push-helloworld
>> (2)
>> https://github.com/aerogear/aerogear-testing-tools/tree/master/unifiedpush-test-extension
>> (3)
>> https://github.com/aerogear/aerogear-unifiedpush-server-integration-tests/blob/master/build.gradle#L354-L356
>> (4)
>> https://github.com/aerogear/aerogear-unifiedpush-server-integration-tests/blob/master/build.gradle#L472-L543
>> (5)
>> https://github.com/aerogear/aerogear-unifiedpush-server-integration-tests/blob/master/quickstartTests/aerogear-push-helloworld-cordova/src/test/java/org/jboss/aerogear/push/helloworld/cordova/test/AerogearPushHelloworldCordovaTestCase.java#L65-L85
>>
>> --
>> Stefan Miklosovic
>> Red Hat Brno - JBoss Mobile Platform
>>
>> e-mail: smikloso at redhat.com
>> irc: smikloso
>>  _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>



-- 
--
Tadeas Kriz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20150403/6a29875d/attachment-0001.html 


More information about the aerogear-dev mailing list