Skip to main content

Provides basic steps for a Gauge project, that runs tests with Selenium and Appium

Project description

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

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

gauge_web_app_steps-0.68.tar.gz (38.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gauge_web_app_steps-0.68-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

File details

Details for the file gauge_web_app_steps-0.68.tar.gz.

File metadata

  • Download URL: gauge_web_app_steps-0.68.tar.gz
  • Upload date:
  • Size: 38.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gauge_web_app_steps-0.68.tar.gz
Algorithm Hash digest
SHA256 02e153d86070431ac62dc30e3aaaa1261a29801f7731c7f49242905a929e2de2
MD5 168a3b85b22a38c11ff62e000feeaf5c
BLAKE2b-256 1c705556e363cf9348c0bd7bc0c213d0ea36b8ccc39a7e0c8e8acc0e8ec94f14

See more details on using hashes here.

Provenance

The following attestation bundles were made for gauge_web_app_steps-0.68.tar.gz:

Publisher: publish.yaml on IBM/gauge-web-app-steps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gauge_web_app_steps-0.68-py3-none-any.whl.

File metadata

File hashes

Hashes for gauge_web_app_steps-0.68-py3-none-any.whl
Algorithm Hash digest
SHA256 2a7d3f4e64fe04a12ca442c2fe7aae190885ead16a38af59f4ed91c9434db474
MD5 ca2826c19cb24dc631528b23eaf85c2d
BLAKE2b-256 b9b4618b3eedcb776c0093bd1673d81bf420c149e6054af31ef3f0e93c8027b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for gauge_web_app_steps-0.68-py3-none-any.whl:

Publisher: publish.yaml on IBM/gauge-web-app-steps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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