Skip to content

billmcgee/simple_sauce

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sauce Bindings

Codacy Badge Travis Status License: MIT

The Sauce Bindings project contains

The Idea - Making Sauce Simple To Use

Writing and maintaining automated good test frameworks is hard work. Sauce Labs wants to help make this work simpler. We've created Simple Sauce, a collection of tools to make connecting to and working with Sauce Labs simple.

Simple Sauce has three main goals:

  • Providing test developers with a wrapper or binding for each programming language commonly used with web and mobile testing,
  • Providing a concise API for connecting to Sauce Labs in test frameworks and making use of Sauce Labs features,
  • Providing an excellent developer user experience for using Sauce Labs in a straightforward, intuitive way.

The focus of this project is to make using Sauce Labs simple so that test developers can focus on developing the best automated test frameworks possible for their teams.

Supported Language Bindings

This project is a cross-language effort, with bindings available in the following languages:

Each binding balances having a shared API and feature set while being idiomatic to the language and ecosystem the binding is a part of. Features should be available in all language bindings.

Getting Started and Prerequisites

To get started using Simple Sauce, install your preferred language binding(s) based on these language documentation:

For all bindings, the following is required:

  • A valid Sauce Labs account
  • Sauce Labs username and access key values set on the environment tests will be executing on as the following environment variables:
SAUCE_USERNAME='valid.username'
SAUCE_ACCESS_KEY='valid.key'

Here are instructions on how to set environment variables on Windows 10, MacOS and Linux.

Features and Style

Simple Sauce should be a tool for both novice and experienced test developers. This means providing basic functionality such as being able to start a browser session on Sauce Labs with minimal code as well as creating Sauce Labs sessions directly from W3C options.

Here's a pseudocode example of creating a browser session on Sauce Labs with Simple Sauce:

sauce = new SauceSession();

sauce.start();

sauce.driver.get("https://www.saucelabs.com")

sauce.stop();

This creates a new sauce object that uses reasonable defaults for browser options, starts a session on Sauce Labs, visits the Sauce Labs website then closes the browser session. This pseudocode sample idealizes the goals of Simple Sauce: starting a session on Sauce with reasonable defaults in a few lines of code. It is simple, straightforward, readable and translates well across multiple programming languages.

Building

Currently each binding follows its own language-specific build process for building and installing each language binding.

Tests

Currently each binding has tests that can be executed in a language-specific way.

Contributing

Sauce Labs is proudly based on open source technologies and encourages open source projects like Simple Sauce. If you would like to contribute there are several ways of doing so:

  • Development: Bug fixes and implementing new features are welcome. There are also good first issues labeled if you'd like to get started on development but don't know how. Please fork this this repository and open a pull request if you'd like to contribute this way.
  • Features and Issues: See something you'd like fixed? Have a good idea for how to improve Simple Sauce? Create an issue or add to an existing issue.
  • Documentation: A great way to start working with any open source project is through improving documentation. You can add or edit doc strings, either in a pull request or directly from GitHub. You can edit a file in GitHub as long as you're signed in and create a pull request from those edits.

Special Thanks

Special thanks to Aaron Evans. Nikolay Advolodkin worked with him in the beginning through several working sessions to create the Alpha version of these bindings. Although Aaron has not contributed much code, he has been instrumental in laying the foundation for the Java bindings :)

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 57.9%
  • Python 24.2%
  • C# 10.7%
  • Ruby 5.9%
  • Other 1.3%