Skip to content

sncf-connect-tech/soda-test-service

Repository files navigation

SODA - Test Service PRs Welcome Build Status codecov crates.io Join the chat at https://gitter.im/voyages-sncf-technologies/soda-test-service

Plase note that the API will strongly evolve until the stable version in 1.0.0. Do not use if you're looking for a stable software.

The test service is a microservice belonging to the project Selenium On Demand Acronym. It acts like a reverse proxy in front of your Selenium hub. The test service is useful to :

  • Get some insights on test sessions (teams, browers, os)
  • Correlate test session failures to specific OS / browers
  • Follow the test sessions in realtime

Demo with a test session

Getting Started

These instructions will get you a minimal Selenium Grid with :

  • A Selenium hub
  • A test-service in front of your hub
  • A Selenium node Chrome (Linux)
  • A Selenium node Firefox (Linux)

Docker compose

By using our docker-compose.yml

By adding the test service to your docker compose

Copy the following snippet to add the test service in your docker-compose file and customize it as you want. It's fully compatible with the official repositories of SeleniumHQ/docker-selenium.

test-service:
  image: soda/test-service:0.3.1
  ports:
    - "8080:8080"
  environment:
    - HUB_PORT_4444_TCP_ADDR=hub
    - HUB_PORT_4444_TCP_PORT=4444
  networks:
    - your-selenium-network

Then run your services with the following docker-compose command :

# Equivalent to docker-compose up -d test-service hub chrome firefox
docker-compose up -d

Finally access the Selenium hub through the test-service : http://localhost:8080

Development

Prerequisites

Pro tip : when you're developing, always use cargo check to avoid long build times. Then, when you are ready to test your work, use cargo run which will build a non-optimized binary and launch it.

Launch the Selenium grid behind the test service

# Launch the Selenium hub with chrome and firefox on localhost:4444
docker-compose up -d hub chrome firefox

# Launch the test service on localhost:8080 and forward requests to the hub, a default client timeout is set to 60s
# Arguments : <LISTEN ADDR>:<LISTEN PORT> <FWD ADDR>:<FWD PORT> <DURATION_IN_SECS>
./soda-test-service.exe --listen=localhost:8080 --forward=localhost:4444 --timeout=300

Tests

cargo test

You can also get the code coverage with Tarpaulin :

cargo install cargo-tarpaulin && cargo tarpaulin

# You can also generate the html report
cargo tarpaulin -o Html --output-dir ./report

License

This project is licensed under either of

at your option.

Contribution

Your contribution is welcome! You can find more information in the CONTRIBUTING.md.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.

About

A lightweight test service to follow your Selenium-Grid activity.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published