Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,13 @@ hs_err_pid*

.idea
.gauge

gradle/
logs/
log/
bstack_build*/
build/
.gradle

gauge_bin
target/
browserstack.err
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,19 @@
* Clone the repo
* Install dependencies `mvn compile`
* Update `env/default/default.properties` with your [BrowserStack Username and Access Key](https://www.browserstack.com/accounts/settings)
* Update `gauge_jvm_args` with `-javaagent:<your-jar-path>` if running with gradle

## Running the tests
## Running the tests with maven
* To run the sample specs, run `mvn test -P sample-test`
* To run the sample local specs, run `mvn test -P sample-local-test`

## Running the tests with gradle
* To build gradle wrapper run `gradle wrapper`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's modify the instructions to run with gradle wrapper command only.

* To clean build gradle run `gradle clean build`
* To run the sample specs, run `gradle runSingleSpec`
* To run the sample local specs, run `gradle runLocalSpec`
* Also can run through `gradle gauge -PspecsDir=sample-spces`

## Notes
* You can view your test results on the [BrowserStack Automate dashboard](https://www.browserstack.com/automate)
* To test on a different set of browsers, check out our [platform configurator](https://www.browserstack.com/automate/java#setting-os-and-browser)
Expand Down
75 changes: 75 additions & 0 deletions browserstack.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# =============================
# Set BrowserStack Credentials
# =============================
# Add your BrowserStack userName and acccessKey here or set BROWSERSTACK_USERNAME and
# BROWSERSTACK_ACCESS_KEY as env variables
userName: YOUR_USERNAME
accessKey: YOUR_ACCESS_KEY

# ======================
# BrowserStack Reporting
# ======================
# The following capabilities are used to set up reporting on BrowserStack:
# Set 'projectName' to the name of your project. Example, Marketing Website
projectName: BrowserStack Samples
# Set `buildName` as the name of the job / testsuite being run
buildName: browserstack build
# `buildIdentifier` is a unique id to differentiate every execution that gets appended to
# buildName. Choose your buildIdentifier format from the available expressions:
# ${BUILD_NUMBER} (Default): Generates an incremental counter with every execution
# ${DATE_TIME}: Generates a Timestamp with every execution. Eg. 05-Nov-19:30
# Read more about buildIdentifiers here -> https://www.browserstack.com/docs/automate/selenium/organize-tests
buildIdentifier: '#${BUILD_NUMBER}' # Supports strings along with either/both ${expression}
# Set `source` in the syntax `<fw-name>:sample-<branch-name>:<version-number>
source: jest-js:sample-main:v1.0

# =======================================
# Platforms (Browsers / Devices to test)
# =======================================
# Platforms object contains all the browser / device combinations you want to test on.
# Entire list available here -> (https://www.browserstack.com/list-of-browsers-and-platforms/automate)
platforms:
- os: OS X
osVersion: Big Sur
browserName: Chrome
browserVersion: latest
- os: Windows
osVersion: 10
browserName: Edge
browserVersion: latest
- deviceName: Samsung Galaxy S22 Ultra
browserName: chrome # Try 'samsung' for Samsung browser
osVersion: 12.0

# =======================
# Parallels per Platform
# =======================
# The number of parallel threads to be used for each platform set.
# BrowserStack's SDK runner will select the best strategy based on the configured value
#
# Example 1 - If you have configured 3 platforms and set `parallelsPerPlatform` as 2, a total of 6 (2 * 3) parallel threads will be used on BrowserStack
#
# Example 2 - If you have configured 1 platform and set `parallelsPerPlatform` as 5, a total of 5 (1 * 5) parallel threads will be used on BrowserStack
parallelsPerPlatform: 1

# ==========================================
# BrowserStack Local
# (For localhost, staging/private websites)
# ==========================================
# Set browserStackLocal to true if your website under test is not accessible publicly over the internet
# Learn more about how BrowserStack Local works here -> https://www.browserstack.com/docs/automate/selenium/local-testing-introduction
browserstackLocal: true # <boolean> (Default false)

# browserStackLocalOptions:
# Options to be passed to BrowserStack local in-case of advanced configurations
# localIdentifier: # <string> (Default: null) Needed if you need to run multiple instances of local.
# forceLocal: true # <boolean> (Default: false) Set to true if you need to resolve all your traffic via BrowserStack Local tunnel.
# Entire list of arguments availabe here -> https://www.browserstack.com/docs/automate/selenium/manage-incoming-connections

# ===================
# Debugging features
# ===================
debug: false # <boolean> # Set to true if you need screenshots for every selenium command ran
networkLogs: false # <boolean> Set to true to enable HAR logs capturing
consoleLogs: errors # <string> Remote browser's console debug levels to be printed (Default: errors)
# Available options are `disable`, `errors`, `warnings`, `info`, `verbose` (Default: errors)
102 changes: 102 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
buildscript {
repositories {
mavenCentral()
}
}

plugins {
id 'java'
id 'org.gauge' version '1.8.2'
id 'com.browserstack.gradle-sdk' version '1.1.2'
}

group 'Gradle_example'
version '1.0-SNAPSHOT'

sourceCompatibility = 11
targetCompatibility = 11

repositories {
mavenCentral()
}

configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:30.1.1-jre'

eachDependency { details ->
if (details.requested.group == 'com.google.guava') {
if (details.requested.name == 'guava') {
details.useVersion '30.1.1-jre'
details.because 'Compatibility with Java 11 and all dependencies'
}
}
}
}
}

dependencies {

implementation('com.google.guava:guava:30.1.1-jre') {
capabilities {
requireCapability('com.google.guava:guava')
}
}
implementation 'com.thoughtworks.gauge:gauge-java:0.12.0'
testImplementation group: 'org.assertj', name: 'assertj-core', version: '3.20.2'
implementation 'com.browserstack:browserstack-local-java:1.0.6'
implementation 'org.seleniumhq.selenium:selenium-java:4.0.0'
testImplementation 'junit:junit:4.13.2'
implementation 'com.browserstack:browserstack-java-sdk:latest.release'

}

gauge {
specsDir = 'sample-specs/'
additionalFlags = '--verbose'
}

// Task to run a single spec (add-to-cart only)
task runSingleSpec(type: com.thoughtworks.gauge.gradle.GaugeTask) {
group = 'verification'
description = 'Run only the add-to-cart spec file using Gauge'
dependsOn 'testClasses'

doFirst {
project.gauge.specsDir = 'sample-specs/add-to-cart.spec'
}

doLast {
project.gauge.specsDir = 'sample-specs/'
}
}

// Task to run a single spec (add-to-cart only)
task runAllSpec(type: com.thoughtworks.gauge.gradle.GaugeTask) {
group = 'verification'
description = 'Run only the add-to-cart spec file using Gauge'
dependsOn 'testClasses'

doFirst {
project.gauge.specsDir = 'sample-specs/'
}

doLast {
project.gauge.specsDir = 'sample-specs/'
}
}

// Task to run a single spec (add-to-cart only)
task runLocalSpec(type: com.thoughtworks.gauge.gradle.GaugeTask) {
group = 'verification'
description = 'Run only the add-to-cart spec file using Gauge'
dependsOn 'testClasses'

doFirst {
project.gauge.specsDir = 'sample-local-specs/'
}

doLast {
project.gauge.specsDir = 'sample-specs/'
}
}
2 changes: 2 additions & 0 deletions env/default/default.properties
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ screenshot_on_failure = true
logs_directory = logs

APP_ENDPOINT = http://localhost:8080/

gauge_specs_dir = sample-specs/
2 changes: 2 additions & 0 deletions env/default/java.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ gauge_additional_libs = libs/*
# you can specify multiple directory names separated with a comma (,)
gauge_custom_compile_dir =

# JVM arguments passed to java while launching. Enter multiple values separated by comma (,) eg. Xmx1024m, Xms128m
gauge_jvm_args = -javaagent:/Users/yashjain/Documents/BrowserStack/java/browserstack-javaagent/target/browserstack-java-sdk-1.32.12.jar
Loading