Skip to main content

gauge-web-app-steps

License: MIT Python 3.13 Selenium Appium Gauge SauceLabs OpenSSF Scorecard

A Python module, that provides re-usable steps for testing web applications with the Gauge framework. Development on native app testing has only just started.

Description

This is an extensible and flexible test-automation library for Gauge. It enables users with and without programming knowledge to create end-to-end test scenarios in Markdown syntax. Developers can still easily extend their test scenarios with custom code. Selenium and Appium are used to simulate user interaction with the browser or app. A wide range of platforms and browsers are supported. Tests can also be executed on devices and emulators in the SauceLabs cloud.

Gauge Step Overview

Find the documentation on all Gauge steps of this project in the overview:

Gauge Step Overview

Quick Start

This is a library for the Gauge framework, so Gauge+Python must be installed first.

It is useful to understand the basic workings of Gauge first. The documentation is excellent.

  • Install the gauge-web-app-steps module
  • Find out the path to this module after installation:
    It should be in <project>/virtualenvironment/lib/python/site-packages/gauge-web-app-steps
  • Add that path to the property STEP_IMPL_DIR inside the test project file env/default/python.properties. Paths to multiple modules are comma separated.
    Example on a Mac:
    STEP_IMPL_DIR = /<gauge-project-path>/virtualenvironment/lib/python/site-packages/gauge_web_app_steps, step_impl
    
  • Restart Visual Studio Code
  • Write a new scenario in specs/example.spec. VSC offers auto-completion

Installation

First, create a virtual environment in your Gauge project directory.

cd <project>
python -m venv virtualenvironment
source virtualenvironment/bin/activate

The Gauge module loader does not like dots . in directories, so a link must be created in the virtual environment for the python packages:

cd <project>/virtualenvironment
ln -sf python3.13 python

Afterwards, the latest version can be downloaded and installed from PyPi:

pip install gauge-web-app-steps --upgrade

Alternatively, it can also be installed from source:

cd path/to/gauge-web-app-steps
pip install .

Development

When coding on this project, unit tests can be executed like this:

TEST_SKIP_IT=1 python -m unittest discover -v -s tests/ -p 'test_*.py'

Contributions are welcome.

Troubleshooting

Some known inter-operability issues can be found on the troubleshooting page. If things don't work immediately, a solution might already be documented there.

Configuration

The Configuration follows the Gauge configuration approach. A lot of behaviour, including the browsers and devices to use for the tests, can be determined with properties.

Configuration Overview

Expressions in Parameters

Property Placeholders

Step parameters allow the use of placeholders, that can be defined in the Gauge environment properties files. Some steps also allow to set a placeholder value manually. Property keys act as placeholders, they are defined like ${key}. They will be replaced by its value if such a property key/value pair exists in any env/*/*.properties file or within the execution scope.

Mathematical Expressions

Mathematical expressions can also be evaluated. For example: #{5 + 5 * 5} is evaluated to 30.

It is possible to combine the two features. Placeholder substitution takes place before mathematical expression evaluation.

Functional Expressions

Functional expressions will generate a result during step execution. There are 2 expressions: One will generate a UUID, and the other will yield the current date and time: !{uuid}, !{time}, !{time:%Y-%m-%d}. The time format is optional, if omitted ISO format will be used. The time format pattern is described in the Python language documentation.

Expression Examples

Note that the property expressions start with $, mathematical expressions with #, and functional expressions with !.

* Open "${homepage_url}/home"

* Assert "id" = "sum" equals "#{5 + 6}"

* Assert "id" = "sum" equals "#{$addend + 5 * 5}"

* Type "!{uuid}"

* Type "!{time}"

* Type "!{time:%Y-%m-%d}"

The property "homepage_url" can be defined in env/default/test.properties like this:

homepage_url = https://my-app.net

It is also possible to define a property in a step:

* Save placeholder "addend" = "5"

Maintainers

Maintainers

Metadata

Release files for gauge-web-app-steps 0.68

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

Source distribution (sdist)

Source distribution for gauge-web-app-steps 0.68
File Size Uploaded
gauge_web_app_steps-0.68.tar.gz 38.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gauge-web-app-steps 0.68
File Interpreter ABI Platform
gauge_web_app_steps-0.68-py3-none-any.whl Python 3 none any Details

Total release size: 76.6 kB

Release files / gauge_web_app_steps-0.68.tar.gz

Download URL gauge_web_app_steps-0.68.tar.gz
Size 38.8 kB
Tags Source
SHA-256 checksum
How to use checksums
02e153d86070431ac62dc30e3aaaa1261a29801f7731c7f49242905a929e2de2
BLAKE2b-256 checksum
How to use checksums
1c705556e363cf9348c0bd7bc0c213d0ea36b8ccc39a7e0c8e8acc0e8ec94f14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 14, 2026.

Transparency log

Release files / gauge_web_app_steps-0.68-py3-none-any.whl

Download URL gauge_web_app_steps-0.68-py3-none-any.whl
Size 37.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2a7d3f4e64fe04a12ca442c2fe7aae190885ead16a38af59f4ed91c9434db474
BLAKE2b-256 checksum
How to use checksums
b9b4618b3eedcb776c0093bd1673d81bf420c149e6054af31ef3f0e93c8027b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 14, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.68 This release

2 release files

0.67

2 release files

0.66

2 release files

0.65

2 release files

0.64

2 release files

0.63

2 release files

0.62

2 release files

0.61

2 release files

0.60

2 release files

0.59

2 release files

0.58

2 release files

0.57

2 release files

0.56

2 release files

0.55

2 release files

0.54

2 release files

0.53

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