3

Apologies if this is not the forum for such a generic question.

As our organisation moves to an Agile project methodology, we need to be able to rapidly automate applications as they are built up over a number of sprints, adding to the tests / test suites as we go, to create a re-useable test pack that can be maintained by more than one tester.

I understand fully how to create a framework for this using Webdriver and CI. The issue we have currently is the lack of Webdriver experience and the overheads in training testers to code. We're therefore looking at proving (or otherwise) the use of the Selenium IDE as either an interim or medium term solution. Potential might be to port Selenese tests / suites to e.g. Webdriver Java/Junit at a later date.

A few questions:-

  1. Can Selenese scripts (HTML) be usefully built into suites that can be maintained by multiple team members
  2. What prospect (if any) is there to benefit from Continuous Integration (e.g. Jenkins) when 'builds' consist only of Selenese scripts? I don't understand how this might work without a supporting tool such as Maven to manage builds
  3. Assuming that managing Selenese scripts in a CI environment is a non-starter, what alternative frameworks exist that might support using SeleniumIDE / Selenese as the primary automation tool? We need the option to run suites on schedules, if not to be triggered by code check ins.

My initial thoughts are to simply rule out CI and create an online Subversion repository to manage version control. We can then perhaps using a Windows or custom scheduler to run the scripts.

Thanks

3 Answers 3

3

Selenium Builder is the evolution of the Selenium IDE. Its tooling page has a video (11 minutes) about using it with Travis-CI. Although I haven't watched it I expect it will answer most of your questions.

To simplify test building (for non developers) I would suggest using something like Cucumber or another BDD framework, you can then make a lot of predefined steps that the testers can use to build tests. You can have a look at the Tellurium features page they have a similar concept which allows testers to build test with just predefined steps.

1

If your team members don't have much development experience and you would like to use Selenium Webdriver for your automation tests I highly recommend taking a look at Robot Framework.

Robot Framework is a generic framework to which you can easily plug in external libraries and script your automation tests using keywords. There is Selenium Library which gives you full power of Selenium Webdriver via library keywords.

Your Selenium test could look something like this (example taken from the official RF site):

*** Settings ***
Documentation     A test suite with a single test for valid login.
...
...               This test has a workflow that is created using keywords in
...               the imported resource file.
Resource          resource.txt

*** Test Cases ***
Valid Login
    Open Browser To Login Page
    Input Username    demo
    Input Password    mode
    Submit Credentials
    Welcome Page Should Be Open
    [Teardown]    Close Browser

It's also quite easy to plug in your Robot Framework tests into CI such as Jenkins. There is a ready made plugin for that.

As you have already suggested, having only automation test scripts on the CI server doesn't make that much sense although it could be used for example for hourly or nightly test automation runs.

You could benefit from CI process much more if had your software builds committed to a version control repository. CI server could then launch your functional / regression Selenium tests after each commit or hourly / nightly, in case the automation test set takes too long to run. Automation tests which are run after each commit shouldn't take longer than few mins in order to get quick feedback on the build.

2
  • The other benefit I've heard people get from Robot Framework is that it allows those testers who are interested to gradually transition into writing code, as they gradually get to understand the lower layers.
    – testerab
    Commented Jun 14, 2014 at 5:28
  • 1
    @testerab Yes, this is a very good point. RF keyword syntax allows users understand from technical point of view what steps are necessary to execute a test case. When they feel comfortable with that, the next step is to look under the hood of RF libraries. They are typically written in Python which is quite beginner friendly language. In my experience RF helps to decrease the gap between developers and testers in teams which is a good thing.
    – finspin
    Commented Jun 14, 2014 at 9:46
1

Selenese scripts generated by IDE are HTML without parameters, unlike traditional scripting/programming.

What programming language is main language in your organization?

Python is very easy to learn and has good Selenium bindings. Also, learning general programming language (Python) could be interesting career-enhancing move for your testers (so they might be very willing and interested), and there are excellent free/very cheap online resources. With one guru to customize general patterns to your needs, most of test development is quite repetitive and could be easily mastered by rest of your team.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.