Skip to content

Gradle Project Set #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all 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`
* 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: gauge:sample-main:v1.0
framework: gauge # <string> (Default: gauge) The framework you are using to run your tests
# =======================================
# 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 =
Loading