Skip to content

Commit 5dc815b

Browse files
viclovskyArtem Eroshenko
authored andcommitted
rest-assured and okhttp3 examples (via allure-framework#213)
1 parent 3509ac2 commit 5dc815b

File tree

10 files changed

+431
-0
lines changed

10 files changed

+431
-0
lines changed

examples/okhttp3/build.gradle

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
description = 'Allure OkHttp3 example'
2+
3+
apply plugin: 'org.junit.platform.gradle.plugin'
4+
5+
configurations {
6+
agent
7+
}
8+
9+
dependencies {
10+
agent 'org.aspectj:aspectjweaver'
11+
12+
testCompile 'org.slf4j:slf4j-simple'
13+
testCompile 'org.junit.jupiter:junit-jupiter-api'
14+
testRuntime 'org.junit.jupiter:junit-jupiter-engine'
15+
testCompile project(':allure-okhttp3')
16+
testCompile project(':allure-junit-platform')
17+
testCompile 'com.github.tomakehurst:wiremock'
18+
}
19+
20+
junitPlatform {
21+
filters {
22+
engines {
23+
include 'junit-jupiter'
24+
}
25+
includeClassNamePattern '.*Test'
26+
}
27+
enableStandardTestTask true
28+
}
29+
30+
tasks.withType(JavaExec) {
31+
if (it.name == 'junitPlatformTest') {
32+
doFirst {
33+
jvmArgs "-javaagent:${configurations.agent.singleFile}"
34+
}
35+
}
36+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package io.qameta.allure.okhttp3;
2+
3+
import com.github.tomakehurst.wiremock.WireMockServer;
4+
import okhttp3.OkHttpClient;
5+
import okhttp3.Request;
6+
import org.junit.jupiter.api.AfterEach;
7+
import org.junit.jupiter.api.BeforeEach;
8+
import org.junit.jupiter.api.Test;
9+
10+
import java.io.IOException;
11+
import java.util.Objects;
12+
13+
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
14+
import static com.github.tomakehurst.wiremock.client.WireMock.configureFor;
15+
import static com.github.tomakehurst.wiremock.client.WireMock.get;
16+
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
17+
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
18+
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;
19+
20+
/**
21+
* @author charlie (Dmitry Baev).
22+
*/
23+
public class OkHttp3Test {
24+
25+
private WireMockServer server;
26+
27+
@BeforeEach
28+
void setUp() {
29+
server = new WireMockServer(options().dynamicPort());
30+
server.start();
31+
configureFor(server.port());
32+
}
33+
34+
@Test
35+
void okHttp3ClientAttachmentTest() throws IOException {
36+
stubFor(get(urlEqualTo("/hello"))
37+
.willReturn(aResponse()
38+
.withBody("Hello world!")));
39+
40+
final OkHttpClient client = new OkHttpClient().newBuilder().addInterceptor(new AllureOkHttp3()).build();
41+
42+
final Request request = new Request.Builder()
43+
.url(String.format("http://localhost:%d/hello", server.port()))
44+
.build();
45+
46+
client.newCall(request).execute();
47+
}
48+
49+
@AfterEach
50+
void tearDown() {
51+
if (Objects.nonNull(server)) {
52+
server.stop();
53+
}
54+
}
55+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
allure.results.directory=build/allure-results
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<html>
2+
<#-- @ftlvariable name="data" type="io.qameta.allure.attachment.http.HttpRequestAttachment" -->
3+
<head>
4+
<meta http-equiv="content-type" content="text/html; charset = UTF-8">
5+
<script src="https://yastatic.net/jquery/2.2.3/jquery.min.js" crossorigin="anonymous"></script>
6+
7+
<link href="https://yastatic.net/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
8+
<script src="https://yastatic.net/bootstrap/3.3.6/js/bootstrap.min.js" crossorigin="anonymous"></script>
9+
10+
<link type="text/css" href="https://yandex.st/highlightjs/8.0/styles/github.min.css" rel="stylesheet"/>
11+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/highlight.min.js"></script>
12+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/bash.min.js"></script>
13+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/json.min.js"></script>
14+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/xml.min.js"></script>
15+
<script type="text/javascript">hljs.initHighlightingOnLoad();</script>
16+
17+
<style>
18+
pre {
19+
white-space: pre-wrap;
20+
}
21+
</style>
22+
</head>
23+
<body>
24+
<div>
25+
<pre><code><#if data.method??>${data.method}<#else>GET</#if>: <#if data.url??>${data.url}<#else>Unknown</#if></code></pre>
26+
</div>
27+
28+
<#if data.body??>
29+
<h4>Body</h4>
30+
<div>
31+
<pre><code>${data.body}</code></pre>
32+
</div>
33+
</#if>
34+
35+
<#if (data.headers)?has_content>
36+
<h4>Headers</h4>
37+
<div>
38+
<#list data.headers as name, value>
39+
<div>
40+
<pre><code><b>${name}</b>: ${value}</code></pre>
41+
</div>
42+
</#list>
43+
</div>
44+
</#if>
45+
46+
47+
<#if (data.cookies)?has_content>
48+
<h4>Cookies</h4>
49+
<div>
50+
<#list data.cookies as name, value>
51+
<div>
52+
<pre><code><b>${name}</b>: ${value}</code></pre>
53+
</div>
54+
</#list>
55+
</div>
56+
</#if>
57+
58+
<#if data.curl??>
59+
<h4>Curl</h4>
60+
<div>
61+
<pre><code>${data.curl}</code></pre
62+
</div>
63+
</#if>
64+
</body>
65+
</html>
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<html>
2+
<#-- @ftlvariable name="data" type="io.qameta.allure.attachment.http.HttpResponseAttachment" -->
3+
<head>
4+
<meta http-equiv="content-type" content="text/html; charset = UTF-8">
5+
<script src="https://yastatic.net/jquery/2.2.3/jquery.min.js" crossorigin="anonymous"></script>
6+
7+
<link href="https://yastatic.net/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
8+
<script src="https://yastatic.net/bootstrap/3.3.6/js/bootstrap.min.js" crossorigin="anonymous"></script>
9+
10+
<link type="text/css" href="https://yandex.st/highlightjs/8.0/styles/github.min.css" rel="stylesheet"/>
11+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/highlight.min.js"></script>
12+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/bash.min.js"></script>
13+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/json.min.js"></script>
14+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/xml.min.js"></script>
15+
<script type="text/javascript">hljs.initHighlightingOnLoad();</script>
16+
17+
<style>
18+
pre {
19+
white-space: pre-wrap;
20+
}
21+
</style>
22+
</head>
23+
<body>
24+
<div><h4>Status code</h4> <#if data.responseCode??>
25+
<pre><code><b>${data.responseCode}</b></code></pre>
26+
<#else>Unknown</#if></div>
27+
<#if data.url??>
28+
29+
<div>
30+
<pre><code>${data.url}</code></pre>
31+
</div></#if>
32+
33+
<#if (data.headers)?has_content>
34+
<h4>Headers</h4>
35+
<div>
36+
<#list data.headers as name, value>
37+
<div>
38+
<pre><code><b>${name}</b>: ${value}</code></pre>
39+
</div>
40+
</#list>
41+
</div>
42+
</#if>
43+
44+
<#if data.body??>
45+
<h4>Body</h4>
46+
<div>
47+
<pre><code>${data.body}</code></pre>
48+
</div>
49+
</#if>
50+
51+
<#if (data.cookies)?has_content>
52+
<h4>Cookies</h4>
53+
<div>
54+
<#list data.cookies as name, value>
55+
<div>
56+
<pre><code><b>${name}</b>: ${value}</code></pre>
57+
</div>
58+
</#list>
59+
</div>
60+
</#if>
61+
</body>
62+
</html>

examples/rest-assured/build.gradle

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
description = 'Allure Rest-Assured example'
2+
3+
apply plugin: 'org.junit.platform.gradle.plugin'
4+
5+
configurations {
6+
agent
7+
}
8+
9+
dependencies {
10+
agent 'org.aspectj:aspectjweaver'
11+
12+
testCompile 'org.slf4j:slf4j-simple'
13+
testCompile 'org.junit.jupiter:junit-jupiter-api'
14+
testRuntime 'org.junit.jupiter:junit-jupiter-engine'
15+
testCompile project(':allure-rest-assured')
16+
testCompile project(':allure-junit-platform')
17+
testCompile 'com.github.tomakehurst:wiremock'
18+
}
19+
20+
junitPlatform {
21+
filters {
22+
engines {
23+
include 'junit-jupiter'
24+
}
25+
includeClassNamePattern '.*Test'
26+
}
27+
enableStandardTestTask true
28+
}
29+
30+
tasks.withType(JavaExec) {
31+
if (it.name == 'junitPlatformTest') {
32+
doFirst {
33+
jvmArgs "-javaagent:${configurations.agent.singleFile}"
34+
}
35+
}
36+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package io.qameta.allure.restassured;
2+
3+
import com.github.tomakehurst.wiremock.WireMockServer;
4+
import org.junit.jupiter.api.AfterEach;
5+
import org.junit.jupiter.api.BeforeEach;
6+
import org.junit.jupiter.api.Test;
7+
8+
import java.io.IOException;
9+
import java.util.Objects;
10+
11+
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
12+
import static com.github.tomakehurst.wiremock.client.WireMock.configureFor;
13+
import static com.github.tomakehurst.wiremock.client.WireMock.get;
14+
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
15+
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
16+
import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options;
17+
import static io.restassured.RestAssured.given;
18+
19+
/**
20+
* @author charlie (Dmitry Baev).
21+
*/
22+
public class AllureRestAssuredTest {
23+
24+
private WireMockServer server;
25+
26+
@BeforeEach
27+
void setUp() {
28+
server = new WireMockServer(options().dynamicPort());
29+
server.start();
30+
configureFor(server.port());
31+
}
32+
33+
@Test
34+
void restAssuredAttachmentTest() throws IOException {
35+
stubFor(get(urlEqualTo("/hello"))
36+
.willReturn(aResponse()
37+
.withBody("Hello world!")));
38+
39+
given().filter(new AllureRestAssured()).get(String.format("http://localhost:%d/hello", server.port()));
40+
}
41+
42+
@AfterEach
43+
void tearDown() {
44+
if (Objects.nonNull(server)) {
45+
server.stop();
46+
}
47+
}
48+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
allure.results.directory=build/allure-results
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<html>
2+
<#-- @ftlvariable name="data" type="io.qameta.allure.attachment.http.HttpRequestAttachment" -->
3+
<head>
4+
<meta http-equiv="content-type" content="text/html; charset = UTF-8">
5+
<script src="https://yastatic.net/jquery/2.2.3/jquery.min.js" crossorigin="anonymous"></script>
6+
7+
<link href="https://yastatic.net/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
8+
<script src="https://yastatic.net/bootstrap/3.3.6/js/bootstrap.min.js" crossorigin="anonymous"></script>
9+
10+
<link type="text/css" href="https://yandex.st/highlightjs/8.0/styles/github.min.css" rel="stylesheet"/>
11+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/highlight.min.js"></script>
12+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/bash.min.js"></script>
13+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/json.min.js"></script>
14+
<script type="text/javascript" src="https://yandex.st/highlightjs/8.0/languages/xml.min.js"></script>
15+
<script type="text/javascript">hljs.initHighlightingOnLoad();</script>
16+
17+
<style>
18+
pre {
19+
white-space: pre-wrap;
20+
}
21+
</style>
22+
</head>
23+
<body>
24+
<div>
25+
<pre><code><#if data.method??>${data.method}<#else>GET</#if>: <#if data.url??>${data.url}<#else>Unknown</#if></code></pre>
26+
</div>
27+
28+
<#if data.body??>
29+
<h4>Body</h4>
30+
<div>
31+
<pre><code>${data.body}</code></pre>
32+
</div>
33+
</#if>
34+
35+
<#if (data.headers)?has_content>
36+
<h4>Headers</h4>
37+
<div>
38+
<#list data.headers as name, value>
39+
<div>
40+
<pre><code><b>${name}</b>: ${value}</code></pre>
41+
</div>
42+
</#list>
43+
</div>
44+
</#if>
45+
46+
47+
<#if (data.cookies)?has_content>
48+
<h4>Cookies</h4>
49+
<div>
50+
<#list data.cookies as name, value>
51+
<div>
52+
<pre><code><b>${name}</b>: ${value}</code></pre>
53+
</div>
54+
</#list>
55+
</div>
56+
</#if>
57+
58+
<#if data.curl??>
59+
<h4>Curl</h4>
60+
<div>
61+
<pre><code>${data.curl}</code></pre
62+
</div>
63+
</#if>
64+
</body>
65+
</html>

0 commit comments

Comments
 (0)