Main Content
Some TestWise examples - helping use Ruby code to check your web site operation Archive - Originally posted on "The Horse's Mouth" - 2012-02-24 22:41:33 - Graham Ellis
How to test your website and browser based applications? In a previous article I covered watir-webdriver which lets you run the Firefox Browser from a Ruby script, passing in instructions as to what to fill into certain fields, and then lets you check with all the power of Ruby the pages that are returned as a result.
TestWise goes a whole lot further. You can download an evaluation version from http://itest2.com/en/testwise . Amongst the feature we used on today's private extension to our Ruby course were:
• Adding a driver to Firefox to record operations to paste into Testwise
• Running a series of stories (tests) to ensure that things work according to a plan
• Using Loops and Conditionals to run multiple tests and vary tests depending on earlier results
• Logging issues arising to the console and to files
• Reading data for tests from external data file sources
• Login and page status control
• Using Page objects to associate behaviours with particular pages / page types
Here's our log for today - to give you something of an idea, and as a reminder for delegates:
Early steps to get going
1. Download
2. Install
Seeing TestWise in action
3. Add driver to Firefox (we did this on the mac by going to the URL ...)
file:///Users/grahamellis/Downloads/TestWise.app/Contents/Resources/thirdparty/Firefox_AddOns/testwise_recorder.xpi
4. Run and record some tests on Firefox
5. Cut and paste into a new test file (at the place it tells you if you use the "create new test" template
N.B. Need to modify open_browser:
open_browser("http://www.wellho.net/index.html")
5a) Run and see (source [here] )
6. Duplicate tests (more stories), changing what they do
6a) Run and see (source [here] )
Move onto some more facilities
7. Add in some more stuff:
a) browser.text.include to check return pages
b) if, else condition to do different things based on response
c) before(:each) to set the same start sequence for every test
See source code [here]
8 Add loops of tests, arrays, all sorts of things!
See source code [here]
Page Objects
9. Page objects are a refactoring of your testing into page objects. This is a huge help in code maintainability and reusablity ...
See source code [here]
Logging to file and console, reading instructions from file
10. You want log files, and you want inputs from file ... here's how
See source code [here]
Sample output log file [here]
Sample input file [here]
Some other articles
R114 - Ruby on the Web Reading and parsing a JSON object in Ruby Web and console - same principle, same code - Ruby example Ruby on the web - a simple example using CGI This article 3 digit HTTP status codes - what are they, which are most common, which should be a concern? Ruby at both extremes of your website Answers on Ruby on Rails Ruby on Rails - a sample application to teach you how Ruby to access web services H311 - Testing your PHP Testing new algorithms in PHP Testing code coverage (have I tested everything?) in PHP Testing classes for your PHP website with PHPUnit This article Automed web site testing scripted in Ruby using watir-webdriver G902 - Web site techniques, utility and visibility Almost so wrong, but perhaps it's right for some? Effect on external factors on traffic to our web sites - an update Selecting RECENT and POPULAR news and trends for your web site users Well House Consultants, Well House Manor, First Great Western Coffee shop, TransWilts / 2014 web site reports Facebook marketing - early experiences How do I post automatically from a PHP script to my Twitter account? More or less back - what happened to our server the other day Web site - fully back! Helping search engines with appropriate 400 error codes TV show appearance - how does it effect your web site? An email marathon Some traps it's so easy to fall into in designing your web site Legal change - You need to obtain user consent if you use cookies on your website Short Web Addresses for Melksham QR codes with marketing logos embedded This article Promoting a single one of your domains on the search engines How big is a web page these days? Does the size of your pages matter? Learning more about our web site - and learning how to learn about yours Sharing the user experience - designing a form with the customer in mind Who is knocking at your web site door? Are you well set up to deal with allcomers? Automed web site testing scripted in Ruby using watir-webdriver Google +1 - what is it? Finding and diverting image requests from rogue domains Looking back at www.wellho.net Making the most of critical emails - reading behind the scene Retaining web site visitors - reducing the one page wonders How to set up short and meaningfull alternative URLs Is it worth it? How to run a successful online poll / petition / survey / consultation Web site traffic - real users, or just noise? Analysing Google arrivals by country of origin Status Page / breaks of service in early December Removal of technical resources from this site Writing with our customers words Koulutus, Open Source tietokone kielillä ldning, Open Source dator sprÃ¥k ldning, Open Source dator sprÃ¥k Opplæring, Open Source datamaskinen sprÃ¥k Uddannelse, Open Source computer sprog Opleiding, Open Source computertalen Formação, Open Source computador lÃnguas Ausbildung, die Open-Source-Sprachen Formazione, Open Source computer lingue Formación, de los lenguajes de código abierto Formation, des langages Open Source How important is a front page ranking on a search engine? Static mirroring through HTTrack, wget and others Web Site Loading - experiences and some solutions shared Cooking bodies and URLs Plagarism - who is copying my pages? Making our things easier to find How to avoid duplicating web page maintainance Find the link A few of my favourite things Web Bloopers - good form design - avoiding pitfalls I have been working hard but I do not expect you noticed Which country does a search engine think you are located in? Ever had One of THOSE mornings? Who is watching you? Rapid growth leads to server move How do Google Ads work? Kiss and Book To provide external links, or not? PHP course dot co, dot uk Online hotel reservations - Melksham, Wiltshire (near Bath) Colour, Composition or Content Where in the world / country is my visitor from? Perl, PHP or Python? No - Perl AND PHP AND Python! Ongoing Image Copyright Issues, PHP and MySQL solutions Script to present commonly used images - PHP A time to update pictures Above the fold with First Great Western Stuffing content into a web page - easy maintainance What proportion of our web traffic is robots? What brought YOU to our web site? Simple but effective use of mod_rewrite (Apache httpd) From Web to Web 2 Two new pages / sites Finding resources - some pointers Sorting out for a site map Drawing dynamic graphs in PHP Above the fold Our search engine placement is dropping. Search engine placement - long term strategy and success Training on Cascading Style Sheets Santa at the station Driving customers away Visibility Effective web campaign? Finding the language preference of a web site visitor Horse and Python training Where is a web site visitor browsing from Protecting images from theft Mirroring a dynamic site Keeping the visitors happy and browsing Denial of Service ''attack'' Bigger Box Campaign Getting favicon to work - avoiding common pitfalls Dynamic Web presence - next generation web site New Navigation Aid - Launch of My Wellho Form Madness What brings people to my web site? CMS - the minefield of Choices Graveyard pages Frightening and from-friend viruses and spams More maps Ordnance Survey - using a 'Get a map' What language is this written in? Growth pains Colour blindness for web developers The Iconish language Cover all the options An apology to Mr Boneparte Our most popular resources Information request forms, cleaning up spam Putting a form online Responding to spam Who are all these visitors? Searching for numbers Allow for peak traffic on your web site Your personal Google ranking The hunt for unique words Data Mining Implementing an effective site search engine Colour for access A case of case URLs - a service and not a hurdle No more 'Error 404' pages. Something better. Web design platoon Skills and responsibilities