recommendation for webapp testing?

lkcl luke.leighton at googlemail.com
Wed Sep 23 16:23:36 EDT 2009


On Sep 17, 8:19 am, Simon Brunning <si... at brunningonline.net> wrote:
> 2009/9/17 Schif Schaf <schifsc... at gmail.com>:
>
> > What's the difference between WebDriver and Selenium?
>
> Selenium runs in a browser, and usesJavaScriptto perform all your
> automated actions. It need a browser running to work. Several are
> supported, Firefox, Safari, IE and I think others. You are at thier
> mercy of the browser'sJavaScriptengine - I've often had trouble with
> IE's XPath support, for instance - tests will run fine in Firefox and
> safari, but not work in IE.
>
> One big advantage of Selenium is that there an "IDE" available, a
> Firefox add-on which will allow you to record actions. This is useful
> for building regression tests and acceptance tests for bugs. Sadly, it
> often tempts people into writing their acceptance tests after the
> fact, too - a grave mistake IMHO.
>
> Selenium tests can be written in Python, Ruby, Java, and in the form
> of HTML tables. This last seems quite popular with QAs for some reason
> which escapes me entirely.
>
> WebDriver runs outside a browser. It can be (and usually is) used to
> drive a real browser, though there's is a HtmlUnit driver available,
> which bypasses any real browser and goes direct to the site you are
> testing. Even this last option, though, does allow the testing of
> sites which make use ofJavaScript- which is just about all of them
> these days.
>
> It makes use of native drivers for each of the browsers it supports,
> so it runs very much faster than Selenium. Since it presents the test
> program with its own version of the page's DOM tree, it's also less
> likely to give browser incompatibilities.
>
> WebDriver tests can be written in Java or Python, at the moment.
>
> The Selenium people have recognized the superiority of the WebDriver
> approach, so the nascent Selenium 2 will use WebDriver under the
> covers. For the moment, though, you have to pick one or the other.
>
> Mechanize is a superb library for its intended purpose - I use it all
> the time. It's lack of support for pages withJavaScript
> functionality, though, means it's not very useful at a testing tool
> for modern web sites.

 if you ask flier liu (http://code.google.com/p/pyv8) veeery nicely,
he _might_ be persuaded to make the work he's doing be free software.
hint: if you check closely into the pyv8 tests, you'll see a module
"w3c.py" which implements DOM.

 in other words, he's writing a command-line-web-browser-without-the-
gui-to-get-in-the-way.

 in other words, he's taking HTML off the web and _executing the
javascript_ (using pyv8) to construct the exact same kind of page that
a user would normally see _if_ you actually put the resultant DOM
(after the javascript is done executing) into a web browser's display
engine.

 the reason why he's doing is this is because he has quite literally
miilllions of web pages to analyse, and working with e.g. selenium
just absolutely does not cut the mustard, performance-wise.

 so, if you can get him to make the work he's doing free software, you
will get a test suite whereby you can have pyv8 actually execute the
on-page javascript, then use e.g. BeautifulSoup to walk the resultant
DOM, and can do proper analysis of the DOM, which would otherwise be
impossible.

 l.



More information about the Python-list mailing list