Enabling Test Automation in Java
SeLion builds on top of TestNG and Selenium to provide a set of capabilities that get you up and running with WebDriver in a short time. It can be used for testing web and mobile applications.
- A client module which you can add as a Maven dependency.
- Annotation based WebDriver session management.
- Runtime Reporter for real-time test execution status.
- Swap out browser targets at run-time.
- Automate native, hybrid, and web applications on iOS and Android devices.
- and more
- A set of TestNG compatible data providers which allow you to access test data from Excel, YAML, JSON, and XML.
- A maven archetype for creating new SeLion based projects.
- A customized Selenium Grid2 component.
- A Code generator Maven plugin for generating Java "page objects" out of YAML.
Project documentation including prerequisites, compilation, usage, and more is at http://paypal.github.io/SeLion/html/documentation.html
Create a new project using the SeLion maven archetype
mvn archetype:generate -B -DartifactId=Sample -Dversion=1.0.0 -DgroupId=com.mycompany.myproject \
-DarchetypeGroupId=com.paypal.selion -DarchetypeArtifactId=SeLion-Archetype -DarchetypeVersion=1.2.0
Client module (includes SeLion DataProviders)
<dependency>
<groupId>com.paypal.selion</groupId>
<artifactId>SeLion</artifactId>
<version>1.2.0</version>
</dependency>
SeLion-DataProviders only
<dependency>
<groupId>com.paypal.selion</groupId>
<artifactId>SeLion-DataProviders</artifactId>
<version>1.2.0</version>
</dependency
SeLion Grid enhancements -- Required for local run support with the Client module
<dependency>
<groupId>com.paypal.selion</groupId>
<artifactId>SeLion-Grid</artifactId>
<version>1.2.0</version>
</dependency
SeLion Code Generator Maven plugin -- Adds "page object" code generation
<plugin>
<groupId>com.paypal.selion</groupId>
<artifactId>SeLion-Code-Generator</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<basePackage>coo.foo.bar</basePackage>
</configuration>
</plugin>
Run the SeLion Grid as a standalone selenium server
java -jar SeLion-Grid-1.2.0-jar-with-dependencies.jar
Run the SeLion Grid as a selenium hub
java -jar SeLion-Grid-1.2.0-jar-with-dependencies.jar -role hub
Run the SeLion Grid as a selenium web node
java -jar SeLion-Grid-1.2.0-jar-with-dependencies.jar -role node
Run the SeLion Grid as a Selendroid node (beta feature)
java -cp SeLion-Grid-1.2.0-jar-with-dependencies.jar com.paypal.selion.grid.SelendroidJarSpawner
Run the SeLion Grid as an ios-driver node (beta feature)
java -cp SeLion-Grid-1.2.0-jar-with-dependencies.jar com.paypal.selion.grid.IOSDriverJarSpawner
Run the SeLion Grid as an Appium node (beta feature)
java -cp SeLion-Grid-1.2.0-jar-with-dependencies.jar com.paypal.selion.grid.AppiumSpawner
Run the SeLion Grid as a Sauce labs proxy
java -cp SeLion-Grid-1.2.0-jar-with-dependencies.jar -role hub -type sauce
Feel free to ask questions and/or share ideas.
- Raise a GitHub Issue.
- Join our Google Group.
- Find us on Gitter
- Initiate a pull request, if you have a contribution.
We use GitHub for tracking issues. Please scan the list of GitHub Issues before filing a new one.
Your contribution is welcome and appreciated!
- Code Development is done on the
develop
branch. - Documentation is done on the
gh-pages
branch.
- Complete and return either the Personal or Corporate CLA.
- Make sure your
~/.gitconfig
file has your full name with proper use of case asuser.name
and your real email address asuser.email
. GitHub has a nice write-up on this. - Make sure you rebase off of the latest upstream version before submitting your pull request.
- Project Documentation and/or Project Website.
- Project Tests and/or Testing.
- Any open item from GitHub Issues.
- Support for additional data formats such as CSV for data driven testing.
- Appium
- The Selendroid project.
- The ios-driver project.
1.2.0 (Selenium 2.53.x based)
2.0.0-SNAPSHOT (Selenium 3.x based)
Code - Apache Software License v2.0
Documentation and Site - Creative Commons Attribution 4.0 International License