Since the start of this thread, I've only just looked into using
Selenium RC and how to integrate that with web2py.  I haven't come up
with a "good" solution yet, but I'll keep you posted.

How does selenium compare with other products?  I haven't used
anything else, but a cursory look at the two mentioned, shows Selenium
as being more flexible/powerful than twill and more cross-browser than
TestGen4Web.

How I use selenium now is I've downloaded selenium core and put it in
my static files (it's just a few webpages and lots of javascript).  I
have a test script that runs through all possible combinations of how
logging into my website should behave.

How has selenium helped my web dev?  Easy question, it speeds up
testing by magnitudes and makes testing less boring and more
thorough.  Also it gives you a CYA factor for when someone says
something doesn't work right.  All you have to do is show them the
test.  If you haven't tested a particular aspect of something, it will
become apparent rather quickly.  The solution is to add that
particular regression to your test script and in no time, you'll have
an extensive battery of tests for your webapp.

Web app testers such as Selenium do not only test the View...however,
it is through the view that they do their testing.  In a true MVC
model, the Controller is the only thing that can be tested since it is
the only place where logic should exist in the process.  However, most
developers have views that show things differently based on different
input from the controller.  So we have logic in our views as well.  It
goes without saying that certain behaviors in the controller produce
certain manifestations in the corresponding view.  For example,  in my
login application, if the user enters an incorrect password, it
returns with a flash-message based on how it is incorrect (illegal
characters, no password supplied, etc.).  This flash is testable (via
Selenium or others) and it is testing both the view logic and the
controller logic.  Hence, we can use Selenium to test both the
controller and the view.  Models don't possess logic in themselves
(unless you want to test constraints but that's silly).

Selenium core can only run javascript and manipulate a browser.  For
that reason, it cannot set application state without you providing a
web-facing front-end to facilitate that (if you do, be wary of
security concerns).  Selenium RC, can run as a normal Python unittest
and could therefore manipulate application state when run from the
web2py shell as Massimo pointed out.  I'm going to look more into this
on Monday.

@yarko:
The Selenium RC server is the only portion written in Java and that is
only necessary for tests written in languages other than HTML
Selenese.  You could make tests via the IDE and run them purely with
Selenium core without having to mess with Java at all.  Actually, I'd
like to find a way to cleanly start/stop Selenium RC Server from
web2py for good integrated testing.  I'll let you know.  But if you
want to get started with it, download Selenium Core and the IDE and
get going.

=)

On Oct 18, 11:15 am, morningovermidnight <[EMAIL PROTECTED]>
wrote:
> Thanks for pointing me to selenium (http://selenium.openqa.org/). It
> looks great. I've also seen some other automated web testing soultions
> such as twill (http://twill.idyll.org/) and TestGen4Web (http://
> developer.spikesource.com/wiki/index.php?title=Projects:TestGen4Web).
> If you don't mind, could you give me a scenario of how you test your
> web application with selenium ( selenium rc in particular) and how
> testing with selenium has helped your web dev?
>
> I ask because honestly i am still on the fence about whether or not to
> implement something such as selenium, or twill, or TestGen4Web. They
> all seem to run tests well, but -- and correct me if i'm wrong -- when
> thinking about the MVC architecture, it seems all of these only test
> the V, the view. You know, testing to see that a page displayed, that
> a link is present, or that a page contains some text. And while
> testing the view is of course important, testing the MC part of
> things, the application logic is just as important -- or at least a
> testing solution is not complete if not all components, the M, the V,
> and the C can be tested. Such a solution may be a combination of
> several different products...but it is something definitely worth
> looking into. Again, maybe I am only seeing Selenium on the
> surface...is there a way for Selenium to test application logic (e.g.
> setting the status of the website to "down for maintenance" then
> verifying that no users can access the site via login or otherwise) ?
>
> On Oct 17, 10:25 am, Timothy Farrell <[EMAIL PROTECTED]> wrote:
>
> > Massimo,
>
> > I implied in my previous post, that I don't use web2py's built-in
> > testing.  This brings me to a question...what is the "test" directory
> > for under the application root?  Since the admin interface only runs
> > doctests, what would be a good way of running a unittest that I place in
> > /applications/init/tests/ ?
>
> > This sort of setup, combined with selenium-rc, would be the ultimate in
> > web app testing (well almost, but it's really close).
>
> > -tim
>
> > Timothy Farrell wrote:
> > > An excellent question.  Testing in web2py is somewhat of a misnomer
> > > since you use web2py to create web applications but you can only truly
> > > test the models or controllers, not the product of all three MVC
> > > components.  However, there isn't really a better way unless Massimo
> > > wants to include another external libary (and therefore dependency).
>
> > > What I use for webpage testing is Selenium.  Selenium is a
> > > javascript-based scripting/testing engine.  However, it has Python
> > > modules that you can use to write and invoke tests (which it translates
> > > to Javascript and runs.)  It even has a cool IDE plugin for Firefox
> > > which makes test-making pretty easy.  Take a look.
> > >http://www.openqa.org/selenium/
>
> > > -tim
>
> > > morningovermidnight wrote:
>
> > >> I've been reading earlier posts on unittests and using doctests in
> > >> web2py. I have tried and run some successful doctests in web2py.
> > >> However, it seems that the doctest is testing the value that my
> > >> function returns, as it should, but is there a way to write a test to
> > >> check an intermediate value in my function, say the value of a session
> > >> variable that is stored but not returned to the view?
>
> > >> Also, just curious, what are some of the solutions people here in the
> > >> group are using for testing and for debugging web2py applications?
>
> >  tfarrell.vcf
> > < 1KViewDownload
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to