TestingBot Blog

TestingBot provides a cloud of browsers to run Automated, Live and Visual browser testing.

< Back to Blog Overview

Selenium testing with Robot Framework


robot framework selenium testing

With Robot Framework you can build easy to read test cases, which can then be run via Selenium webdriver on our Selenium Grid.
It allows using keyword driven, behavior driven approaches and provides reports in HTML format.

Setting up Robot Framework

First you have to make sure you've installed pip. To install the other libs, please run:
pip install robotframework-selenium2library requests

Running your first test

Below is an example on how to run a simple test on Firefox. When the test has finished, the test name and success state is sent to TestingBot so you can see the test success/failures in our dashboard.

Save the example below in a test.txt file:

*** Settings ***

Library Selenium2Library
Library TestingBot

Test Setup Open test browser
Test Teardown Close test browser

*** Variables ***

${CREDENTIALS} key:secret (get these for free from testingbot)

*** Test Cases ***

Simple Test
Go to https://www.google.com
Page should contain Google

*** Keywords ***

Open test browser
Open browser about: firefox
... remote_url=http://${CREDENTIALS}@hub.testingbot.com:4444/wd/hub
... desired_capabilities=browserName:firefox,version:14

Close test browser
... Report TestingBot status
Close all browsers

Save this code in TestingBot.py:
import re

import requests
import base64

from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn

def report_testingbot_status(name, status, credentials):
selenium = BuiltIn().get_library_instance('Selenium2Library')
session_id = selenium._current_browser().session_id

token = base64.b64encode(credentials)
payload = {'test[name]': name,
'test[success]': int(status == 'PASS')}
headers = {'Authorization': 'Basic {0}'.format(token)}

url = 'https://api.testingbot.com/v1/tests/{0}'.format(session_id)
response = requests.put(url, data=payload, headers=headers)
assert response.status_code == 200, response.text

To run the test, run this command:
pybot test.txt

Once the test has finished running, you will see it in the TestingBot member dashboard.

< Back to Blog Overview