Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jubula-rc-dev] Webdriver AUT Agent

Hi Markus,

No worries, I hope you had an enjoyable (and productive!) time. Thanks - I will review the contributor setup and start using that checkstyle.  The talk slides look interesting - do you know if there is video of your presentation?

Yes, I have got the CaA_HTML tests running (I'm only using linux/chrome at the moment). These have shown a few bad assumptions in my code, but most of the suite now passes. I've had a few distractions this last week - I'm currently looking at the frameset tests.

I have a few meetings next week, so would prefer maybe Tuesday 31st?

Kind regards,
Dave


From: jubula-rc-dev-bounces@xxxxxxxxxxx [jubula-rc-dev-bounces@xxxxxxxxxxx] on behalf of Markus Tiede [Markus.Tiede@xxxxxxxxx]
Sent: 19 March 2015 08:26
To: Jubula remote control components development
Subject: Re: [jubula-rc-dev] Webdriver AUT Agent

Hello Dave,


as I just came back this week from the EclipseCon NA [1] - sry for the delay - I'd say we re-schedule a phone call for next week - maybe thurday afternoon?


I've just recently updated our contribution wiki page [2] - the necessary checkstyle configuration is now listed there as a recommendation to use.


Did you in the meantime succeeded executing our CaA_HTML tests?


Best regards,

Markus Tiede


[1] https://www.eclipsecon.org/na2015/session/jekyll-and-hyde-jubula

[2] http://wiki.eclipse.org/Jubula/JubulaContribGuide#Workspace_setup

--

BREDEX GmbH

Mauernstr. 33

38100 Braunschweig

 

Tel.: +49-531-24330-0

Fax:  +49-531-24330-99

http: www.bredex.de

 

Geschäftsführer: Andreas Vogel, Ulrich Obst, Achim Lörke

Amtsgericht Braunschweig HRB 2450


Von: jubula-rc-dev-bounces@xxxxxxxxxxx <jubula-rc-dev-bounces@xxxxxxxxxxx> im Auftrag von Dave Ball <d.ball@xxxxxxxxxxxx>
Gesendet: Donnerstag, 5. März 2015 17:40
An: Jubula remote control components development
Betreff: Re: [jubula-rc-dev] Webdriver AUT Agent
 
Hi Markus,

Thanks for the feedback! A phone call or web session would be very useful. I am in the UK; how about sometime in the afternoon of either 16th, 17th or 18th?

Do you have a code style / code format spec that I should follow? I will try to follow existing formatting to make review easier.

My next steps will be :
  • try and run the existing tests against my code
  • Catch WebDriver exceptions and throw as StepExecutionException
  • have a look at screenshots.
  • multiple frames / multiple windows. Hopefully the tests will get me up to speed with what is expected here!

For mouse movements, I was planning to use webdriver's simulated mouse, rather than actually moving the OS mouse. This still uses native events, but is referenced to elements within the page - e.g
    mouseDown(element)
    mouseMove(toElement)
    mouseUp(element)
see [1]


Many thanks,
Dave

[1] https://code.google.com/p/selenium/wiki/AdvancedUserInteractions#Mouse


From: jubula-rc-dev-bounces@xxxxxxxxxxx [jubula-rc-dev-bounces@xxxxxxxxxxx] on behalf of Markus Tiede [Markus.Tiede@xxxxxxxxx]
Sent: 05 March 2015 14:15
To: Jubula remote control components development
Subject: Re: [jubula-rc-dev] Webdriver AUT Agent

Hello Dave,


First of all: many thanks for providing this!


A few feedback points:

- the modifications seem to be going in the right direction; however it's pretty hard to "see" / review the actual changes as there is much noise within it - as far as I can see - caused due to changes within the indentation of the code (probably caused by invoking auto-formatting) - it'd be very handy for a real review if you could avoid changing unnecessary things within the same commit of necessary ones and point me to the relevant commits for a review.

- there are actually quite a lot of tests and test suites that you can execute on this [1] AUT - simply import all XML-projects from here [2] e.g. into the h2-db and execute the FULLTEST from the CaA_HTML project (CaA stands for "Components and Action"-tests)


To answer your questions:

1) to communicate back e.g. action errors when executing CAPs you throw a StepExecutionException containing an "org.eclipse.jubula.tools.internal.objects.event.EventFactory.createActionError(String, Object[])" error event with a detailed description and it's parameters.

2) In order to implement "real" UI mouse movements I'd recommend taking a look at our other Robot-Implementations that actually do that using the AWT robot e.g. for SWT: org.eclipse.jubula.rc.swt.driver.RobotSwtImpl.moveImpl(Widget, Rectangle, int, boolean, int, boolean, ClickOptions). But please keep in mind that this is a non-trivial task as there are quite a lot of requirements to implement to achieve a reliable test execution afterwards (implicit recursively scrolling to the component to make it visible + and this is the hard part: correctly synchronize to 1. the mouse state and 2. AUTs UI state).

3) the implementation of this command does necessarily needs to be altered / re-implemented as this is already implemented in the base class of the HtmlApplicationImplClass: org.eclipse.jubula.rc.common.implclasses.AbstractApplicationImplClass.takeScreenshot(Rectangle, double, File)

3.1) I'd recommend doing a short web session - maybe in ~2 weeks to properly setup a workspace at yours and directly discuss these (currently undocumented) details. The required repositories are the one at eclipse and the one at bitbucket - nothing more.

4) We've also been thinking about adding the specification of different "locator" strategies - as it's already present in selenium - within the OMM of the ITE. Available options here could indeed be:

- heuristic approach (current solution)

- ID

- CSS

- XPath

...

I'd recommend to also discuss this within a short web session / phone call.

5) The multiple window / iframe / frameset approach is something we've added in the recent past on the basis of customer needs. We therefore require the support / addressing of multiple windows / multiple frames being open at the same time and can't drop this / simplify our view to this.


I'm looking forward to hearing from you!


Best regards,
Markus Tiede


[1] https://bitbucket.org/jubula/com.bredexsw.jubula.core/src/61b192bfbbb0/org.eclipse.jubula.qa.aut.caa.html/WebContent/?at=master

[2] https://bitbucket.org/jubula/com.bredexsw.jubula.core/src/61b192bfbbb0a54142756bec066a302c55579b67/org.eclipse.jubula.qa/Testprojects/testweek/?at=master

--

BREDEX GmbH

Mauernstr. 33

38100 Braunschweig

 

Tel.: +49-531-24330-0

Fax:  +49-531-24330-99

http: www.bredex.de

 

Geschäftsführer: Andreas Vogel, Ulrich Obst, Achim Lörke

Amtsgericht Braunschweig HRB 2450


Von: jubula-rc-dev-bounces@xxxxxxxxxxx <jubula-rc-dev-bounces@xxxxxxxxxxx> im Auftrag von Dave Ball <d.ball@xxxxxxxxxxxx>
Gesendet: Montag, 2. März 2015 12:24
An: Jubula remote control components development
Betreff: Re: [jubula-rc-dev] Webdriver AUT Agent
 
Hi Markus,

I've created a branch containing some initial progress on webdriver. See [1].

I've upgraded to latest selenium, completely replaced the old Selenium with native WebDriver (skipping WebDriverBackedSelenium), and fixed up some differences between the two (e.g. around how the _javascript_ is executed). This is working for me - but probably has many gaps to the current selenium impl, which I hope to fill with your help. I've left a few TODO's in the code for things I know I'll need to come back too.

I would be very grateful if you could take a look, and let me have any general thoughts. It's probably not yet polished enough to warrant a thorough review, but any feedback you have will be appreciated. Is there a test suite I can use to see where my changes break current behaviour?

In addition, I was hoping you (or someone) could help me with a few thoughts:
  1. Sometimes it seems that test step failures aren't producing helpful error messages in the ITE, but webdriver has some specific information about wht has failed. e.g. if a click fails because the element is not visible. How should I be exposing these to the ITE?
  2. I'd like to support some Mouse movement commands. This seems to be fairly straightforward from a webdriver perspective, but I could do with some pointers on how to integrate with the jubula UI. I'm particularly keen on adding a "hover over" test step, but eventually drag and drop too. My current code has a naive implementation of IRobot.mousePress, move and mouseRelease (only for left mouse button). Where should I be looking to hook these all together?
  3. Equally, how can I enable the "Take screenshot of active window" command? Webdriver seems to provide a handy way to do this, but I cant see what I need to implmenet to tie it together. I've not quite got my head around all the different projects (and repositories!) necessary for the complete product...
  4. I would like my tests to be more robust to simple changes in our page's DOM. In particular, I'd like to implement some form of component identification that uses an element ID, rather than (or perhaps combined with) it's absolute position within our DOM. One thought I had was whether this should be an (optional) alternative AUTHtmlHierarchy, but it seems I may still need to maintain the FQ path as this is what the OMM uses. Is it worth considering OMM that interrogates WebDriver directly rather than using the current _javascript_ based DOM approach?
  5. Lastly, I'm not clear what the expected behaviour is for singleWindowMode or multiple frames. Is singleWindowMode Selinium specific functionality that can be dropped? For now my naive approach is just a single window and single frame.

Kind regards,

From: jubula-rc-dev-bounces@xxxxxxxxxxx [jubula-rc-dev-bounces@xxxxxxxxxxx] on behalf of Markus Tiede [Markus.Tiede@xxxxxxxxx]
Sent: 16 February 2015 09:08
To: Jubula remote control components development
Subject: Re: [jubula-rc-dev] Webdriver AUT Agent

Hello Dave,


we are ourselves also interested in switching Jubulas HTML RC part to a Webdriver based approach - see [1].


The current implementation is hosted publicly @bitbucket - see [2]. I think the current implementation might be a good starting point.


Keep in mind that the AUT-Agent itself is not responsible for the remote controlling part - it's simply invoking - see [3] - and monitoring the AUTs process (which is for the HTML toolkit an AbstractStartPseudoJavaAUT).


Best regards,

Markus Tiede


Von: jubula-rc-dev-bounces@xxxxxxxxxxx <jubula-rc-dev-bounces@xxxxxxxxxxx> im Auftrag von Dave Ball <d.ball@xxxxxxxxxxxx>
Gesendet: Samstag, 14. Februar 2015 18:10
An: jubula-rc-dev@xxxxxxxxxxx
Betreff: [jubula-rc-dev] Webdriver AUT Agent
 
Hi,

I am interested in writing an AUT Agent that uses webdriver APIs directly, rather than through selenium. Eventually I want to use this for testing a Vaadin based app across a number of target platforms.

I have had a play and produced a very hacked together experiment as a learning exercise, but now planning to start from scratch with a (hopefully) properly structured implementation.

So to help me kick this off, is this something anyone has looked into in the past, and do you have any suggestions on the best way to start, or ideas i should look to incorporate?

Many thanks,
Dave




The information in this email and any attachments is strictly confidential and may be legally privileged. It is intended solely for the addressee. Access to this email by anyone else is unauthorised. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. If you think you have received this email in error, please contact the sender immediately.
The information in this email and any attachments is strictly confidential and may be legally privileged. It is intended solely for the addressee. Access to this email by anyone else is unauthorised. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. If you think you have received this email in error, please contact the sender immediately.

Back to the top