-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Update CI build workflow * Update build scripts * Add the first integration test * Dependency update * The first Code Reference test, ReportPortal format apply, ignore target folder * Do not output Cucumber to avoid failures in CI * Revert last change * A try to fix tests * Add code reference for simple scenarios * Add code reference for Examples scenarios * Format fixes * Code reference generation: sort by example key to unify code reference * Add Test Case ID * Attribute handling * Fix tests * System attributes reporting add * Refactor item start method * Add more tests * Add scenario parameters reporting * Update property format * Add parameter handling for steps * Add parameter log message verification * Table parameters handling * Background steps handling * Test fixes * Fix typing * Background logic update * Another background test * Fix Table test * Fix Table test * Fix description * Add another test * Add Launch description test * Small fix * Small fix * Add test * Add junit-jupiter-params dependency * Description and item name tests and fixes * Fix test * Refactoring * Add parameter description to examples * Add examples description tests * Refactoring * Add test * Add test * Fix test * Update step logging * Add test * Add another test * Add ReportPortal runtime hook publisher * Refactoring, move common code to util class * Fix parameter reporting * Fix javadocs * ReportPortalHook: WIP * ReportPortalHook: WIP * ReportPortalHook: WIP * ReportPortalHook: Tests WIP * ReportPortalHook: Tests WIP * ReportPortalHook: Tests WIP * ReportPortalHook: Tests WIP * ReportPortalHook: Tests WIP * ReportPortalHook: Tests WIP * ReportPortalHook: Tests WIP * ReportPortalHook: Tests WIP * Add timing test and javadocs * Add feature parameters tests * Bump version * Client version update * Client version update * Fix version number * Update copyrights * Update copyrights * Code format apply * Add README_TEMPLATE.md file * Update README_TEMPLATE.md file
- Loading branch information
Showing
64 changed files
with
4,807 additions
and
529 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,6 +26,7 @@ hs_err_pid* | |
.gradle/ | ||
build/ | ||
test-output/ | ||
target/ | ||
|
||
# IntelliJ Idea files | ||
.idea/ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,177 @@ | ||
# ReportPortal runtime Hook for Karate tests | ||
|
||
Karate reporters which uploads the results to a ReportPortal server. | ||
|
||
> **DISCLAIMER**: We use Google Analytics for sending anonymous usage information such as agent's and client's names, and their versions | ||
> after a successful launch start. This information might help us to improve both ReportPortal backend and client sides. It is used by the | ||
> ReportPortal team only and is not supposed for sharing with 3rd parties. | ||
[![Maven Central](https://img.shields.io/maven-central/v/com.epam.reportportal/agent-java-karate.svg?label=Maven%20Central)](https://central.sonatype.com/artifact/com.epam.reportportal/agent-java-karate) | ||
[![CI Build](https://github.com/reportportal/agent-java-karate/actions/workflows/ci.yml/badge.svg)](https://github.com/reportportal/agent-java-karate/actions/workflows/ci.yml) | ||
[![codecov](https://codecov.io/github/reportportal/agent-java-karate/graph/badge.svg?token=wJr9F6hZln)](https://codecov.io/github/reportportal/agent-java-karate) | ||
[![Join Slack chat!](https://slack.epmrpp.reportportal.io/badge.svg)](https://slack.epmrpp.reportportal.io/) | ||
[![stackoverflow](https://img.shields.io/badge/reportportal-stackoverflow-orange.svg?style=flat)](http://stackoverflow.com/questions/tagged/reportportal) | ||
[![Build with Love](https://img.shields.io/badge/build%20with-❤%EF%B8%8F%E2%80%8D-lightgrey.svg)](http://reportportal.io?style=flat) | ||
|
||
The latest version: $LATEST_VERSION. Please use `Maven Central` link above to get the agent. | ||
|
||
## Overview: How to Add ReportPortal Logging to Your Project | ||
|
||
To start using ReportPortal with Karate framework please do the following steps: | ||
|
||
1. [Configuration](#configuration) | ||
* Create/update the `reportportal.properties` configuration file | ||
* Build system configuration | ||
* Add Listener | ||
* Runtime | ||
* Post-running | ||
2. [Logging configuration](#logging) | ||
* Loggers and their types | ||
3. [Running tests](#running-tests) | ||
* Build system commands | ||
|
||
## Configuration | ||
|
||
### 'reportportal.properties' configuration file | ||
|
||
As the first step you need to create a file named `reportportal.properties` in your Java project in a source | ||
folder `src/main/resources` or `src/test/resources` (depending on where your tests are located): | ||
|
||
**reportportal.properties** | ||
|
||
``` | ||
rp.endpoint = http://localhost:8080 | ||
rp.api.key = test_YIvQraKKSquDZqrA6JLCWCX5qwmMZBk_7tTm_fkN44AHCi18Ze0RtYqxWNYKxk5p | ||
rp.launch = Karate Tests | ||
rp.project = default_personal | ||
``` | ||
|
||
**Property description** | ||
|
||
* `rp.endpoint` - the URL for the ReportPortal server (actual link). | ||
* `rp.api.key` - an access token for ReportPortal which is used for user identification. It can be found on your report | ||
portal user profile page. | ||
* `rp.project` - a project ID on which the agent will report test launches. Must be set to one of your assigned | ||
projects. | ||
* `rp.launch` - a user-selected identifier of test launches. | ||
|
||
The full list of supported properties is located here in client-java library documentation (a common library for all | ||
Java agents): https://github.com/reportportal/client-java | ||
|
||
## Build system configuration | ||
|
||
### Maven | ||
|
||
If your project is Maven-based you need to add dependencies to `pom.xml` file: | ||
|
||
```xml | ||
|
||
<project> | ||
<!-- project declaration omitted --> | ||
|
||
<dependency> | ||
<groupId>com.epam.reportportal</groupId> | ||
<artifactId>agent-java-karate</artifactId> | ||
<version>$LATEST_VERSION</version> | ||
<scope>test</scope> | ||
</dependency> | ||
|
||
<!-- build config omitted --> | ||
</project> | ||
``` | ||
|
||
You are free to use you own version of Karate, but not earlier than 1.0.0. If you leave just Agent dependency it will | ||
be still OK, it will use transitive Karate version. | ||
|
||
### Gradle | ||
|
||
For Gradle-based projects please update dependencies section in `build.gradle` file: | ||
|
||
```groovy | ||
dependencies { | ||
testImplementation 'com.epam.reportportal:agent-java-karate:$LATEST_VERSION' | ||
} | ||
``` | ||
|
||
## Listener configuration | ||
|
||
### Runtime | ||
|
||
Runtime publisher uploads Karate tests on ReportPortal during the test execution, providing real-time monitoring capabilities. To publish | ||
test results in this case, the test project should use by `ReportPortalHook` class, an instance of which you should pass to Karate runner. | ||
E.G.: | ||
|
||
```java | ||
import com.epam.reportportal.karate.ReportPortalHook; | ||
import com.intuit.karate.Runner; | ||
|
||
class ScenarioRunnerTest { | ||
@Test | ||
void testParallel() { | ||
return Runner | ||
.path("classpath:examples") | ||
.hook(new ReportPortalHook()) | ||
.outputCucumberJson(true) | ||
.tags("~@ignore") | ||
.parallel(1); | ||
} | ||
} | ||
``` | ||
|
||
### Post-running | ||
|
||
Post-running publisher uploads Karate tests on ReportPortal after the test execution. It uses Karate result object to get data about tests. | ||
It might be useful if your tests make heavy load both on ReportPortal server or on the running node. To publish test results in this case, | ||
the test project should run by `KarateReportPortalRunner` instead of Karate runner. | ||
E.G.: | ||
|
||
```java | ||
import com.epam.reportportal.karate.KarateReportPortalRunner; | ||
|
||
class ScenarioRunnerTest { | ||
@Test | ||
void testParallel() { | ||
KarateReportPortalRunner | ||
.path("classpath:examples") | ||
.outputCucumberJson(true) | ||
.tags("~@ignore") | ||
.parallel(1); | ||
} | ||
} | ||
``` | ||
|
||
## Logging | ||
|
||
Karate uses `slf4j` as Logging library, so you are free to choose any Logging Framework. | ||
|
||
ReportPortal provides its own logger implementations for major logging frameworks like *Log4j* and *Logback*. It also | ||
provides additional formatting features for popular client and test libraries like: *Selenide*, *Apache HttpComponents*, | ||
*Rest Assured*, etc. | ||
|
||
Here is the list of supported loggers and setup documentation links. | ||
|
||
**Logging frameworks:** | ||
|
||
| **Library name** | **Documentation link** | | ||
|------------------|-----------------------------------------------------| | ||
| Log4j | https://github.com/reportportal/logger-java-log4j | | ||
| Logback | https://github.com/reportportal/logger-java-logback | | ||
|
||
**HTTP clients:** | ||
|
||
| **Library name** | **Documentation link** | | ||
|-----------------------|------------------------------------------------------------| | ||
| OkHttp3 | https://github.com/reportportal/logger-java-okhttp3 | | ||
| Apache HttpComponents | https://github.com/reportportal/logger-java-httpcomponents | | ||
|
||
## Running tests | ||
|
||
We are set. To run tests we just need to execute corresponding command in our build system. | ||
|
||
#### Maven | ||
|
||
`mvn test` or `mvnw test` if you are using Maven wrapper | ||
|
||
#### Gradle | ||
|
||
`gradle test` or `gradlew test` if you are using Gradle wrapper |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
/* | ||
* Copyright 2024 EPAM Systems | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* https://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
buildscript { | ||
repositories { | ||
maven { | ||
url 'https://plugins.gradle.org/m2/' | ||
} | ||
} | ||
dependencies { | ||
classpath 'com.github.spotbugs.snom:spotbugs-gradle-plugin:4.8.0' | ||
} | ||
} | ||
|
||
apply plugin: com.github.spotbugs.snom.SpotBugsPlugin | ||
|
||
spotbugs { | ||
toolVersion = '3.1.12' | ||
effort = 'max' | ||
reportLevel = 'high' | ||
} | ||
|
||
spotbugsMain { | ||
sourceDirs = files(sourceSets.main.allSource.srcDirs) | ||
classDirs = files(sourceSets.main.output) | ||
auxClassPaths = files(sourceSets.main.compileClasspath) | ||
reports { | ||
html.enabled(true) | ||
xml.enabled(false) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,10 @@ | ||
name=agent-java-karate | ||
version=1.0.6 | ||
description=EPAM Report portal. Karate test framework [1.3.1, ) adapter | ||
version=5.0.0-SNAPSHOT | ||
description=EPAM ReportPortal. Karate test framework [1.3.1, ) adapter | ||
gradle_version=8.2 | ||
reportportal_client_java_version=5.1.16 | ||
reportportal_logback_version=5.1.3 | ||
karate_version=[1.3.1, ) | ||
junit_version=5.10.0-M1 | ||
junit_version=5.10.1 | ||
mockito_version=5.4.0 | ||
scripts_url=https://raw.githubusercontent.com/reportportal/gradle-scripts | ||
scripts_branch=master | ||
scripts_branch=develop | ||
excludeTests= |
Oops, something went wrong.