Skip to main content

A robot framework library for Django.

Project description

https://travis-ci.org/kitconcept/robotframework-djangolibrary.svg?branch=master Downloads Latest Version Egg Status License

Introduction

DjangoLibrary is a web testing library to test Django with Robot Framework. It uses Selenium2Library to run tests against a real browser instance.

The library will automatically start and stop your Django instance while running the tests. It also comes with serveral autologin keywords that allow you to login different users during your tests, without the need to actually access the login page.

Documentation

Robot Framework Django Library Keyword Documentation

Installation

robotframework-djangolibrary is still in alpha, therefore you have to use ‘–pre’ to install it with pip:

$ pip install --pre robotframework-djangolibrary

In order to be able to use DjangoLibrary’s autologin keywords you have to add the AutologinAuthenticationMiddleware to your MIDDLEWARE_CLASSES in your settings.py:

MIDDLEWARE_CLASSES = (
    ...
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'DjangoLibrary.middleware.AutologinAuthenticationMiddleware',
)

First Robot Test

In order to write your first robot test, make sure that you include Selenium2Library and DjangoLibrary. Create a test.robot file with the following content:

*** Variables ***

${HOSTNAME}             127.0.0.1
${PORT}                 55001
${SERVER}               http://${HOSTNAME}:${PORT}/
${BROWSER}              firefox


*** Settings ***

Documentation   Django Robot Tests
Library         Selenium2Library  timeout=10  implicit_wait=0
Library         DjangoLibrary  ${HOSTNAME}  ${PORT}  path=mysite/mysite  manage=mysite/manage.py  settings=mysite.settings  db=mysite/db.sqlite3
Suite Setup     Start Django and open Browser
Suite Teardown  Stop Django and close Browser


*** Keywords ***

Start Django and open Browser
  Start Django
  Open Browser  ${SERVER}  ${BROWSER}

Stop Django and close browser
  Close Browser
  Stop Django


*** Test Cases ***

Scenario: As a visitor I can visit the django default page
  Go To  ${SERVER}
  Wait until page contains element  id=explanation
  Page Should Contain  It worked!
  Page Should Contain  Congratulations on your first Django-powered page.

Run Tests

Then you can run the test with pybot:

$ pybot test.robot

The output should look like this:

==============================================================================
Test :: Django Robot Tests
==============================================================================
Scenario: As a visitor I can visit the django default page            | PASS |
------------------------------------------------------------------------------
Test :: Django Robot Tests                                            | PASS |
1 critical test, 1 passed, 0 failed
1 test total, 1 passed, 0 failed
==============================================================================
Output:  /home/timo/workspace/prounix/robotframework-djangolibrary/output.xml
Log:     /home/timo/workspace/prounix/robotframework-djangolibrary/log.html
Report:  /home/timo/workspace/prounix/robotframework-djangolibrary/report.html

Development

Checkout repository from github:

$ git clone https://github.com/kitconcept/robotframework-djangolibrary.git

Create a virtual Python environment:

$ cd robotframework-djangolibrary/
$ virtualenv .env
$ source .env/bin/activate

Install robotframework-djangolibrary in development mode:

$ python setup.py develop

Install the requirements:

$ pip install -r requirements.txt

Run robotframework-djangolibrary tests:

$ pybot DjangoLibrary/tests/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robotframework-djangolibrary-1.0a4.tar.gz (52.2 kB view details)

Uploaded Source

File details

Details for the file robotframework-djangolibrary-1.0a4.tar.gz.

File metadata

File hashes

Hashes for robotframework-djangolibrary-1.0a4.tar.gz
Algorithm Hash digest
SHA256 f1f5209062b489098ff4b08840aea46e00839eb88693b89438b8aed603950d8f
MD5 b381c389caff85feb7577d77f02985b6
BLAKE2b-256 b806f5d55ad31b5395bf7a8442784541579d21f8135737a411cba0aa17c25d47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page