Skip to main content

Introduction

Robotframework-DebugLibrary is a debug library for RobotFramework, which can be used as an interactive shell(REPL) also.

Maintainability Test Coverage test Latest version Support robotframework versions Support python versions PyPI Downloads License

Installation

To install using pip:

pip install robotframework-debuglibrary

NOTICE: 2.0 is not compatible with python 2

DebugLibrary >= 2.0.0 supports Python versions 3.x only. If you still using python 2.7, please use DebugLibrary < 2.0.0

pip install 'robotframework-debuglibrary<2'

Usage

You can use this as a library, import DebugLibrary and call Debug or Debug If keywords in your test files like this:

*** Settings ***
Library         DebugLibrary

** test case **
SOME TEST
    # some keywords...
    Debug
    # some else...
    ${count} =  Get Element Count  name:div_name
    Debug If  ${count} < 1

Or you can run it standalone as a RobotFramework shell:

$ rfdebug
[...snap...]
>>>>> Enter interactive shell
> help
Input Robotframework keywords, or commands listed below.
Use "libs" or "l" to see available libraries,
use "keywords" or "k" to see the list of library keywords,
use the TAB keyboard key to autocomplete keywords.

Documented commands (type help <topic>):
========================================
EOF  continue  docs  help  keywords  libs  ll        n     pdb  selenium
c    d         exit  k     l         list  longlist  next  s    step
> log  hello
> get time
< '2011-10-13 18:50:31'
> # use TAB to auto complete commands
> BuiltIn.Get Time
< '2011-10-13 18:50:39'
> import library  String
> get substring  helloworld  5  8
< 'wor'
> # define variables as you wish
> ${secs} =  Get Time  epoch
# ${secs} = 1474814470
> Log to console  ${secs}
1474814470
> @{list} =  Create List    hello    world
# @{list} = ['hello', 'world']
> Log to console  ${list}
['hello', 'world']
> &{dict} =  Create Dictionary    name=admin    email=admin@test.local
# &{dict} = {'name': 'admin', 'email': 'admin@test.local'}
> Log  ${dict.name}
> # print value if you input variable name only
> ${list}
[u'hello', u'world']
> ${dict.name}
admin
> # start a selenium server quickly
> help selenium
Start a selenium webdriver and open url in browser you expect.

        s(elenium)  [<url>]  [<browser>]

        default url is google.com, default browser is firefox.
> selenium  google.com  chrome
# import library  SeleniumLibrary
# open browser  http://google.com  chrome
< 1
> close all browsers
> Ctrl-D
>>>>> Exit shell.

The interactive shell support auto-completion for robotframework keywords and commands. Try input BuiltIn. then type <TAB> key to feeling it. The history will save at ~/.rfdebug_history default or any file defined in environment variable RFDEBUG_HISTORY.

In case you don’t remember the name of keyword during using rfdebug, there are commands libs or ls to list the imported libraries and built-in libraries, and keywords <lib name> or k to list keywords of a library.

rfdebug accept any pybot arguments, but by default, rfdebug disabled all logs with -l None -x None -o None -L None -r None.

Step debugging

DebugLibrary support step debugging since version 2.1.0. You can use step/s, next/n, continue/c, list/l and longlist/ll to trace and view the code step by step like in pdb:

$ robot some.robot
[...snap...]
>>>>> Enter interactive shell
> l
Please run `step` or `next` command first.
> s
.> /Users/xyb/some.robot(7)
-> log to console  hello
=> BuiltIn.Log To Console  hello
> l
  2         Library  DebugLibrary
  3
  4         ** test case **
  5         test
  6             debug
  7 ->          log to console  hello
  8             log to console  world
> n
hello
.> /Users/xyb/some.robot(8)
-> log to console  world
=> BuiltIn.Log To Console  world
> c
>>>>> Exit shell.
world

Note: Single-step debugging does not support FOR loops currently.

Submitting issues

Bugs and enhancements are tracked in the issue tracker.

Before submitting a new issue, it is always a good idea to check is the same bug or enhancement already reported. If it is, please add your comments to the existing issue instead of creating a new one.

Development

If you want to develop and run DebugLibrary locally, you can use

$ python DebugLibrary/shell.py tests/step.robot

shell.py is calling robot through a child process, so it will interrupt python debugging capabilities. If you want to debug in tools like vscode, pdb, you should run

$ python -m robot tests/step.robot

If you want to run the test, please install the dependency packages first and then execute the test

$ python -m pip install setuptools
$ python setup.py develop
$ python setup.py test

Since RF takes over stdout, debugging information can be output with

import sys
print('some information', file=sys.stdout)

License

This software is licensed under the New BSD License. See the LICENSE file in the top distribution directory for the full license text.

Release files for robotframework-debuglibrary 2.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robotframework-debuglibrary 2.5.0
File Size Uploaded
robotframework-debuglibrary-2.5.0.tar.gz 18.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robotframework-debuglibrary 2.5.0
File Interpreter ABI Platform
robotframework_debuglibrary-2.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.7 kB

Release files / robotframework-debuglibrary-2.5.0.tar.gz

Download URL robotframework-debuglibrary-2.5.0.tar.gz
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
c8e135c7561721d36210d6f59a09b7538064367e82d8a3be67cb87088cf9cba7
BLAKE2b-256 checksum
How to use checksums
fdb3c5fa5fb8e0786efacc30a16f9ae62d90d838516c2dea08ad2733d679bd66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.1

Release files / robotframework_debuglibrary-2.5.0-py3-none-any.whl

Download URL robotframework_debuglibrary-2.5.0-py3-none-any.whl
Size 19.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2bfb2636ead7be440c224317891b4b406a9a71d84b26924031ccf3791a00b96
BLAKE2b-256 checksum
How to use checksums
733294f7b214f9bbbbf4d461e44a58533a7bf144477df43d3d741fe57f5a5143
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.12.1

Release history Release notifications | RSS feed

This release

2.5.0 This release

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8

2 release files

0.7.1

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

1 release file

0.3

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page