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 -~----------~----~----~----~------~----~------~--~---