Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

License

NotificationsYou must be signed in to change notification settings

LambdaTest/lambdatest-java-selenium-sdk

Repository files navigation

Maven CentralLicense: MIT

A powerful Java SDK for seamlessly integrating Selenium tests with the LambdaTest cloud platform. This SDK provides automatic capability injection, test status management, and simplified configuration for running Selenium tests on LambdaTest's cloud infrastructure.

Features

Automatic Capability Injection - No need to manually configure LambdaTest capabilities
🔧Java Agent Support - Bytecode instrumentation for seamless integration
📊Test Status Management - Automatically mark tests as passed/failed on LambdaTest
🎯Framework Support - Works with TestNG, JUnit 5, and plain Selenium tests
🌐Tunnel Management - Built-in support for LambdaTest Tunnel
⚙️YAML Configuration - Simple YAML-based configuration
🚀Zero Code Changes - Just add the agent, no changes to existing tests

Installation

Maven

Add the following dependency to yourpom.xml:

<dependency>    <groupId>io.github.lambdatest</groupId>    <artifactId>lambdatest-selenium-java-sdk</artifactId>    <version>1.0.0</version></dependency>

Gradle

Add the following to yourbuild.gradle:

dependencies {    implementation'io.github.lambdatest:lambdatest-selenium-java-sdk:1.0.0'}

Gradle Kotlin DSL

Add the following to yourbuild.gradle.kts:

dependencies {    implementation("io.github.lambdatest:lambdatest-selenium-java-sdk:1.0.0")}

Quick Start

1. Configuration

Create alambdatest.yaml file in your project root:

# LambdaTest credentialsusername:YOUR_LAMBDATEST_USERNAMEaccessKey:YOUR_LAMBDATEST_ACCESS_KEY# Browser capabilitiescapabilities:browserName:chromebrowserVersion:latestplatformName:Windows 10# Test configurationtestName:My Selenium Testbuild:Build#1project:My Project

2. Using the Java Agent (Recommended)

The easiest way to use this SDK is with the Java agent, which automatically instruments your Selenium tests:

Maven:

mvntest -DargLine="-javaagent:/path/to/lambdatest-selenium-java-sdk-1.0.0-agent.jar"

Gradle:

./gradlewtest -Djvmargs="-javaagent:/path/to/lambdatest-selenium-java-sdk-1.0.0-agent.jar"

IDE (IntelliJ IDEA / Eclipse):

Add VM option:-javaagent:/path/to/lambdatest-selenium-java-sdk-1.0.0-agent.jar

3. Using Programmatically (Alternative)

If you prefer not to use the agent, you can use the SDK programmatically:

importcom.lambdatest.selenium.LambdaTestRemoteTest;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.remote.RemoteWebDriver;importorg.testng.annotations.Test;publicclassMySeleniumTestextendsLambdaTestRemoteTest {@TestpublicvoidtestGoogle() {WebDriverdriver =getDriver();// Automatically configured for LambdaTestdriver.get("https://www.google.com");System.out.println("Title: " +driver.getTitle());// Test will be automatically marked as passed/failed    }}

Configuration Options

YAML Configuration File

Createlambdatest.yaml in your project root:

# Authentication (Required)username:YOUR_USERNAMEaccessKey:YOUR_ACCESS_KEY# Or use environment variables:# username: ${LT_USERNAME}# accessKey: ${LT_ACCESS_KEY}# Capabilities (Optional - will be merged with test capabilities)capabilities:browserName:chromebrowserVersion:latestplatformName:Windows 10resolution:1920x1080# LambdaTest OptionsltOptions:build:Build#1project:My Projectnetwork:truevideo:trueconsole:truevisual:true# Tunnel Configuration (Optional)tunnel:enabled:truename:my-tunnel# Grid ConfigurationgridUrl:https://hub.lambdatest.com/wd/hub

Environment Variables

You can also configure using environment variables:

Framework Integration

TestNG

Add TestNG listener for automatic test status updates:

<!-- testng.xml--><suitename="LambdaTest Suite">    <listeners>        <listenerclass-name="com.lambdatest.selenium.LambdaTestStatusListener"/>    </listeners>        <testname="My Tests">        <classes>            <classname="com.example.MyTest"/>        </classes>    </test></suite>

Or programmatically:

@Listeners(LambdaTestStatusListener.class)publicclassMyTest {// Your tests}

JUnit 5

Use the JUnit transformer with the Java agent (automatically detected).

Advanced Usage

Tunnel Management

Enable LambdaTest Tunnel for testing local/private applications:

tunnel:enabled:truename:my-tunnel# Additional tunnel optionstunnelName:custom-tunnelverbose:true

Custom Capabilities

Merge custom capabilities with configured ones:

importcom.lambdatest.selenium.LambdaTestCapabilities;importorg.openqa.selenium.chrome.ChromeOptions;ChromeOptionsoptions =newChromeOptions();options.addArguments("--start-maximized");// SDK will merge these with lambdatest.yaml capabilitiesLambdaTestCapabilities.enhance(options);

Parallel Execution

The SDK fully supports parallel test execution:

TestNG:

<suitename="Parallel Suite"parallel="tests"thread-count="5">    <testname="Chrome Test">        <parametername="browser"value="chrome"/>        <classes><classname="com.example.Test1"/></classes>    </test>    <testname="Firefox Test">        <parametername="browser"value="firefox"/>        <classes><classname="com.example.Test1"/></classes>    </test></suite>

Building from Source

Prerequisites

  • Java 8 or higher
  • Gradle 7.0+

Build

# Clone the repositorygit clone https://github.com/LambdatestIncPrivate/lambdatest-selenium-java-sdk.gitcd lambdatest-selenium-java-sdk# Build the project./gradlew clean build# Generated artifacts will be in build/libs/# - lambdatest-selenium-java-sdk-1.0.0.jar (main JAR)# - lambdatest-selenium-java-sdk-1.0.0-agent.jar (agent JAR with dependencies)

Publishing

For maintainers publishing to Maven Central:

# See MAVEN_CENTRAL_PUBLISHING.md for detailed instructions./verify-setup.sh# Verify publishing prerequisites./gradlew publishToMavenLocal# Test local publishing./gradlew publishMavenJavaPublicationToOSSRHRepository# Publish to Maven Central

Examples

Basic Test

importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeOptions;importorg.openqa.selenium.remote.RemoteWebDriver;importorg.testng.annotations.AfterMethod;importorg.testng.annotations.BeforeMethod;importorg.testng.annotations.Test;importjava.net.URL;publicclassBasicTest {WebDriverdriver;@BeforeMethodpublicvoidsetup()throwsException {ChromeOptionsoptions =newChromeOptions();options.setCapability("platformName","Windows 10");options.setCapability("browserVersion","latest");// SDK will automatically inject LambdaTest capabilitiesdriver =newRemoteWebDriver(newURL("https://hub.lambdatest.com/wd/hub"),options        );    }@TestpublicvoidtestExample() {driver.get("https://www.example.com");Stringtitle =driver.getTitle();System.out.println("Page title: " +title);asserttitle.contains("Example");    }@AfterMethodpublicvoidteardown() {if (driver !=null) {driver.quit();        }    }}

Cross-Browser Testing

importorg.testng.annotations.*;publicclassCrossBrowserTest {@Parameters({"browser","version","platform"})@BeforeMethodpublicvoidsetup(Stringbrowser,Stringversion,Stringplatform) {// SDK automatically configures based on parameters    }@TestpublicvoidtestAcrossBrowsers() {// Your test code    }}

Troubleshooting

Common Issues

Issue: Driver not connecting to LambdaTest

  • Verify credentials inlambdatest.yaml or environment variables
  • Check your LambdaTest account has active minutes
  • Ensure grid URL is correct

Issue: Java agent not working

  • Verify agent JAR path is correct
  • Use the-agent classifier JAR (with all dependencies)
  • Check Java version compatibility (Java 8+)

Issue: Tests not marked as passed/failed

  • Ensure TestNG listener is configured
  • Verify driver session ID is available
  • Check network connectivity to LambdaTest

Enable Debug Logging

Add to your test:

System.setProperty("lambdatest.debug","true");

Requirements

  • Java: 8 or higher
  • Selenium: 4.x (tested with 4.15.0)
  • TestNG: 7.4.0+ (optional, for TestNG integration)
  • JUnit: 5.10.0+ (optional, for JUnit integration)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see theLICENSE file for details.

Support

Links


Made with ❤️ byLambdaTest

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors2

  •  
  •  

Languages


[8]ページ先頭

©2009-2025 Movatter.jp