Thanks for all this, Timbo! Looking forward to hearing more on your experience, thoughts with this.
Yarko On Oct 19, 9:54 am, Timbo <[EMAIL PROTECTED]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---