Notes on this webinar: presented by Dave Haeffner, and hosted by Sauce Labs
---------------------
Another Dave Haeffner webinar! This time rather than considering the broad why and how of introducing automation, he talks about what is certainly an area of expertise for him: specific ideas to extend, and/or overcome challenges in, Selenium browser automation.
The amount of good, free learning that Haeffner offers around Selenium is commendable. He also offers his own "the-internet" site/application which you can use to practice on - and for which the code is open-sourced on Github.
---------------------
Another Dave Haeffner webinar! This time rather than considering the broad why and how of introducing automation, he talks about what is certainly an area of expertise for him: specific ideas to extend, and/or overcome challenges in, Selenium browser automation.
The amount of good, free learning that Haeffner offers around Selenium is commendable. He also offers his own "the-internet" site/application which you can use to practice on - and for which the code is open-sourced on Github.
The
format of the webinar was in line with Haeffner's free weekly Selenium tips email; and with the second half of his Selenium Guidebook.
(At least that's what I think the second half of the book does ... I'm still working through it!)
The
learning here is not really about the details of using the WebDriver
API to find, and interact with, elements in web pages. Rather it's about ways you can add value to your
automation efforts.
My notes aren't extensive but here's what I took from it:
My notes aren't extensive but here's what I took from it:
Headless automation
"Headless"
automation, ie. performed without launching an actual browser instance,
is especially useful for running on a Continuous Integration server providing feedback every
time there is a build.
Haeffner mentioned:
-- Xvfb. Which is limited to running on linux, and which he suggests offers no real speed benefits over launching a browser
-- Ghostdriver (PhantomJS). Which is multi-platform and does offer faster performance.
Visual Testing
I
only became aware of the existence of "visual
testing" recently and know very little about it. It sounded kind of
counter-intuitive because checking for small changes in the UI was
always exactly the kind of thing that automation couldn't sensibly do.
(I thought maybe this was just another example of over-promising by
excitable automation tool vendors!)
However,
there are now open-source tools that will work alongside WebDriver to
look for problems like layout or font issues that WD on its own won't
really handle. In effect giving "hundreds of assertions for a few lines
of code".
This looked like interesting stuff although,
without having tried it, it still sounds a little too good to be true
and I would need convincing before I trusted it. As you'd expect,
Haeffner does talk about the inherent complexity and that false positives
are more of a problem than usual. It seems like some human intervention
is still necessary to confirm "failures" that the automation reports.
Proxy Tools
Configuring automation to run through a proxy tool (like Browsermob or Fiddler) opens up a range of extra options:
- Checking returned HTTP status codes at URLs
- "Blacklisting". An idea which appealed to me from past experience. Here you manipulate the traffic so that third-party elements like ads .... which are slow to load thus affecting your checks ... can be excluded.
- Load testing by capturing traffic and then converting it into a Jmeter file
-
Checking for broken images by examining the status code of all IMG
elements. (Haeffner also talks about other ways to check for broken
images without needing a proxy.)
Forgotten Password Scenarios
Difficult
to fully automate something like forgotten password workflow when that
typically involves the generation and receipt of email. At least I
thought so.
But Haeffner describes how you
can use Gmail's API to look for and scan an email rather than attempting
the madness of automating your way in and out of the Gmail web front
end.
A/B testing
Pesky
A/B tests running on your site (Marketing! *shakes fist* ) can make
automation checks fail because the page may not be as expected when the
driver gets there. Haeffner shows ways to opt out of A/B tests when
running your automation eg. by creating an opt-out cookie, or by using
URLs which bypass the page variants.
File Management Scenarios
Scenarios
involving file upload buttons are tricky because they will generally
involve a standard system/OS file management dialog - which WebDriver
can't automate. But get WebDriver to submit the full file path and you
may be able to bypass system dialogs entirely.
Additional Explanatory Output
Haeffner showed how to add explicit messaging around the assertions in your checks by highlighting located web elements using Javascript. Having captured the original styling you can add your own styling with Javascript - and revert back to the original when done.
There was, of course, more information - and more detail in the webinar itself.
A recording of it is available here: http://sauceio.com/index.php/2015/04/recap-practical-tips-tricks-for-selenium-test-automation/
There was, of course, more information - and more detail in the webinar itself.
A recording of it is available here: http://sauceio.com/index.php/2015/04/recap-practical-tips-tricks-for-selenium-test-automation/
No comments:
Post a Comment