[Product-Developers] Re: Selenium tests
Balazs Ree
ree at ree.hu
Sun May 25 06:54:44 UTC 2008
Hi Martin,
I am not following this list and Russ called my attention to your post.
On Sat, 24 May 2008 09:32:02 +0100, Martin Aspeli wrote:
> Is anyone successfully using Selenium testing in projects? My goal is:
>
> - to use existing PloneTestCase + a custom layer for fixture setup -
> to use DemoStorage
> - to record tests using the Selenium IDE for firefox (which supports
> Python output)
> - to run tests as part of a buildbot
>
> I know of Zelenium and PloneSelenium, but they both seem quite old and
> TTW driven. Perhaps not?
You may not be aware that we did some progress on this during the Sorrento
sprint. Our goals were somewhat different from the ones you state above,
though.
http://kssproject.org/blog/archive/2008/04/08/plone-app-kss-sprint-in-sorrento
There is also an overlapping PSPS topic:
http://dev.plone.org/plone/ticket/7871
This targets Plone to be Selenium-testable, but testing applications is
in fact not different from testing Plone itself so this makes it
relevant to the topic of testing custom applications.
It was also a requirement that testing should be possible on all
platforms and browsers, and that we can both support testing invoked by
the developer on any choosen browser, and also run tests nightly in an
automated manner on several supported browsers (this last piece is
currently broken and will work once "kissbot" is fixed.)
The main approach we used was extending the kss testrunner to handle
application level tests. This means it's not only usable for kss but
for anything in general. Although, the structure to be used to set up a
test suite is still to be discussed and finalized in kss.demo.
For the recording of tests, Selenium IDE is used. For the running of
tests, Zelenium is used which means it runs on every browser.
It was not a goal to be runnable from within
PloneTestCase, instead we wanted to make a group of tests
runnable from a browser with a single click.
It also does not use DemoStorage but operates on an existing server, but
this could be extended if needed.
For the test runner we decided not to use setup and teardown (like
PloneTestCase) instead we applied a simple testlayer based approach.
The main reason is that running tests with Zelenium is slow and thus
separating all tests in the same layer with setup/teardown would be
unbearably slow in practice. However layers work effectively, although tests
are not allowed to leave trash behind, in order for this to work.
As far the results, the testrunner works very well in practice, I am
using it to test plone.app.kss on every browser before releasing.
There are not yet many tests written for Plone, but this is an issue separate
from the testrunner itself.
You can easily check out this method by using its buildout and following
the step to step documentation.
The second approach that Sylvain was working on the sprint is funittest
and it may also fit your needs:
This is a different method, it has a model based approach for creating
tests. Recording tests with Selenium IDE is not possible, you write code
only. For running the tests Selenium RC is needed which means additional
requirements for installation on the server side. May not work on all
platforms and browsers, but it has a working buildout available.
We are looking for a solution to allow a combination of both kinds of tests,
for the Plone testing story. There has been a long discussion about this on
the sprint, and we came to important conclusions.
You find links of all that I mentioned here from the pages I referred to
above.
Best wishes,
--
Balazs Ree
More information about the Product-Developers
mailing list