newman-reporter-xunit
Version:
A Newman JUnit Reporter providing full reports (without aggregation of results) based on newman-reporter-junitfull package
1,262 lines (1,127 loc) • 51.3 kB
HTML
<!DOCTYPE html>
<html lang="en" style="overflow-y: scroll;">
<head>
<meta charset="UTF-8">
<title>Newman Summary Report</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/styles/default.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/v/bs4/dt-1.10.18/datatables.min.css"/>
<style>
.theme-dark {
--background-color: #222;
--bg-card-deck: #444444;
--text-color: #ccd2d8;
--tab-border: solid 1px #444;
--success: #3c9372;
--failure: #c24a3f;
--warning: #d28c23;
--info: #4083b6;
--badge-outline: #3c9372;
--badge-bg: #cdd3db;
--badge-text: #ccd2d9;
--failure-row: #c24a3f;
--warning-row: #d28c23;
--card-bg: #444;
--card-footer: #4f5758;
--form-input: #ececb5;
--hov-text: #d2dae5;
--h4-text: #ccd1d9;
}
.theme-light {
--tab-border: solid 1px #fff;
--text-color: #000000;
--success: #42a745;
--failure: #dc3544;
--warning: #f4c10b;
--info: #49a1b8;
--badge-outline: #040411;
--badge-bg: #f8f9fa;
--badge-text: #fff;
--failure-row: #f5c6cb;
--warning-row: #ffeeba;
--card-bg: #f7f7f7;
--hov-text: #fff;
--h4-text: #ffffff;
}
body {
padding-top:30px;
background-color: var(--background-color)!important;
color: var(--text-color);
}
#execution-data {
padding: 10px;
border: var(--tab-border);
border-top: none;
}
.nav-tabs {
padding-top: 10px;
height: 105px;
overflow-y: auto;
}
body.theme-dark .card-header {
background-color: #444;
}
body.theme-light .card-header {
background-color: #f7f7f7;
}
.card-footer {
padding: .75rem 1.25rem;
background-color: var(--card-footer);
}
.card-deck {
background-color: var(--bg-card-deck)!important;
}
.form-control {
background: var(--form-input);
}
.custom-tab {
padding: 10px 15px;
margin-right: 0px;
height: 46px;
width: 59px;
text-align: center;
border: var(--tab-border);
border-bottom: none;
cursor:pointer;
}
body.theme-dark .text-white {
color: #ccd2d9!important;
}
h4 {
color: var(--h4-text);
}
body.theme-dark h1 {
color: #ccd2da;
}
body.theme-dark .bg-light>td {
background: #4f5858!important;
}
body.theme-dark .hljs {
background: #0a0a0ab0!important;
color: #8d8787!important;
}
.bg-info {
background-color: var(--info)!important;
}
.bg-success {
background-color: var(--success)!important;
}
.alert-success {
background-color: var(--success)!important;
}
.alert-warning {
background-color: var(--warning)!important;
}
.alert-info {
background-color: var(--info)!important;
}
.bg-warning {
background-color: var(--warning)!important;
}
.badge-warning {
color: var(--badge-text)!important;
background-color: var(--warning)!important;
}
.table-warning>td {
background-color: var(--warning-row);
}
.alert-danger {
background-color: var(--failure)!important;
}
body.theme-dark .alert-dark {
background-color: #636467!important;
}
body.theme-dark .text-dark {
color: #d1dae4!important;
}
body.theme-dark .badge-light {
color: #212529;
background-color: #cdd3db;
}
body.theme-light .badge-light {
color: #212529;
background-color: #f8f9fa;
}
body.theme-light .bg-danger {
background-color: var(--failure)!important;
}
body.theme-dark .bg-danger {
background-color: var(--failure)!important;
}
.table-danger>td {
background-color: var(--failure-row);
}
body.theme-dark .table .thead-light th {
background-color: #4f5858!important;
border-color: #dee2e6!important;
color: #ccd2d8!important;
}
.itPassed {
background: var(--success);
color: white;
}
.itFailed {
background: var(--failure);
color: white;
}
.resultsInfoPass {
color: var(--success);
padding-top: 4px;
}
.resultsInfoFail {
color: var(--failure);
padding-top: 4px;
}
.badge-outline-success {
color: var(--success);
border: 1px solid var(--success);
background-color: transparent;
}
.badge-outline {
color: var(--badge-outline);
border: 1px solid var(--badge-outline);
background-color: transparent;
}
.btn-outline-success {
color: var(--success)!important;
border-color: var(--success)!important;
}
.backToTop:hover {
background-color: var(--success);
border-color: var(--success);
color: var(--hov-text)!important;
}
.btn-outline-success:hover {
background-color: var(--success);
border-color: var(--success);
color: var(--hov-text)!important;
}
.btn-outline-secondary {
background-color: var(--success)!important;
color: var(--hov-text)!important;
}
body.theme-dark .env-heading {
color: #ccd2d9!important;
}
body, html {
height:100%;
}
.card {
overflow:hidden;
}
body.theme-dark .card-body {
background-color: #444;
}
body.theme-light .card-body {
background-color: #f7f7f7;
}
body.theme-dark .card-body .bg-danger {
background-color: var(--failure)!important;
}
body.theme-light .card-body .bg-danger {
background-color: var(--failure)!important;
}
.card-body .rotate {
z-index: 8;
float: right;
height: 100%;
}
.card-body .rotate i {
color: #14141426;
position: absolute;
left: 0;
left: auto;
right: -10px;
bottom: 0;
display: block;
-webkit-transform: rotate(-44deg);
-moz-transform: rotate(-44deg);
-o-transform: rotate(-44deg);
-ms-transform: rotate(-44deg);
transform: rotate(-44deg);
}
.dyn-height {
max-height:350px;
overflow-y:auto;
}
.nav-pills .nav-link.active {
background-color: transparent!important;
}
.backToTop {
display: none;
position: fixed;
bottom: 10px;
right: 20px;
z-index: 99;
font-size: 15px;
outline: none;
cursor: pointer;
padding: 15px;
border-radius: 4px;
}
.card-header .fa {
transition: .3s transform ease-in-out;
}
.card-header .collapsed .fa {
transform: rotate(90deg);
}
.single-line-tabs {
padding-top: 10px;
height: 60px;
}
::-webkit-scrollbar {
width: 5px;
}
::-webkit-scrollbar-track {
background: #f1f1f1;
}
::-webkit-scrollbar-thumb {
background: #888;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
/* The switch - the box around the slider */
.switch {
position: relative;
display: inline-block;
width: 44px;
height: 20px;
}
/* Hide default HTML checkbox */
.switch input {
opacity: 0;
width: 0;
height: 0;
}
/* The slider */
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: 0.4s;
transition: 0.4s;
}
.slider:before {
position: absolute;
content: "";
height: 20px;
width: 20px;
left: 0px;
bottom: 4px;
top: 0;
bottom: 0;
margin: auto 0;
-webkit-transition: 0.4s;
transition: 0.4s;
box-shadow: 0 0px 15px #2020203d;
background: white;
background-repeat: no-repeat;
background-position: center;
}
input:checked + .slider {
background-color: #4083b6;
}
input:focus + .slider {
box-shadow: 0 0 1px #4083b6;
}
input:checked + .slider:before {
-webkit-transform: translateX(24px);
-ms-transform: translateX(24px);
transform: translateX(24px);
background: white;
background-repeat: no-repeat;
background-position: center;
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}
table.dataTable td, table.dataTable tr {
vertical-align: middle;
}
</style>
</head>
<body class="">
<div class="container">
<div class="container">
<label>Light</label>
<label id="switch" class="switch">
<input type="checkbox" onchange="toggleTheme()" id="slider">
<span class="slider round"></span>
</label>
<label>Dark</label>
</div>
<div class="card">
<div class="card-header">
<ul class="nav nav-pills mb-3 nav-justified" id="pills-tab" role="tablist">
<li class="nav-item bg-info active" data-toggle="tooltip" title="Click to view the Summary">
<a class="nav-link text-white" id="pills-summary-tab" data-toggle="pill" href="#pills-summary" role="tab" aria-controls="pills-summary" aria-selected="true">Summary</a>
</li>
<li class="nav-item bg-success" data-toggle="tooltip" title="Click to view the Requests">
<a class="nav-link text-white" id="pills-requests-tab" data-toggle="pill" href="#pills-requests" role="tab" aria-controls="pills-requests" aria-selected="false">Total Requests <span class="badge badge-light">1</span></a>
</li>
<li class="nav-item bg-danger" data-toggle="tooltip" title="Click to view the Failed Tests">
<a class="nav-link text-white" id="pills-failed-tab" data-toggle="pill" href="#pills-failed" role="tab" aria-controls="pills-failed" aria-selected="false">Failed Tests <span class="badge badge-light">2</span></a>
</li>
<li class="nav-item bg-warning" data-toggle="tooltip" title="Click to view the Skipped Tests">
<a class="nav-link text-white" id="pills-skipped-tab" data-toggle="pill" href="#pills-skipped" role="tab" aria-controls="pills-skipped" aria-selected="false">Skipped Tests <span class="badge badge-light">0</span></a>
</li>
</ul>
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade show active" id="pills-summary" role="tabcard" aria-labelledby="pills-summary-tab">
<div class="row">
<div class="col-md-9 col-lg-12 main">
<h1 class="display-2 text-center">Newman Run Dashboard</h1>
<h5 class="text-center">Tuesday, 23 February 2021 09:31:39</h5>
<div class="row">
<div class="col-lg-3 col-md-6">
<div class="card text-white card-success">
<div class="card-body bg-danger">
<div class="rotate">
<i class="fa fa-retweet fa-5x"></i>
</div>
<h6 class="text-uppercase">Total Iterations</h6>
<h1 class="display-1">1</h1>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card text-white card-danger">
<div class="card-body bg-success">
<div class="rotate">
<i class="fa fa-list fa-4x"></i>
</div>
<h6 class="text-uppercase">Total Assertions</h6>
<h1 class="display-1">3</h1>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card text-white card-info">
<div class="card-body bg-danger">
<div class="rotate">
<i class="fa fa-plus-circle fa-5x"></i>
</div>
<h6 class="text-uppercase">Total Failed Tests</h6>
<h1 class="display-1">2</h1>
</div>
</div>
</div>
<div class="col-lg-3 col-md-6">
<div class="card text-white card-warning">
<div class="card-body bg-success">
<div class="rotate">
<i class="fa fa-share fa-5x"></i>
</div>
<h6 class="text-uppercase">Total Skipped Tests</h6>
<h1 class="display-1">0</h1>
</div>
</div>
</div>
</div>
<hr>
<div class="row">
<div class="col">
<div class="row">
<div class="col-sm-12 mb-3">
<div class="card border-info">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">File Information</h5>
<span><i class="fas fa-file-code"></i></span><strong> Collection:</strong> sonarcloud<br>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 mb-3">
<div class="card border-info">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">Timings and Data</h5>
<span><i class="fas fa-stopwatch"></i></span><strong> Total run duration:</strong> 382ms<br>
<span><i class="fas fa-database"></i></span><strong> Total data received:</strong> 492B<br>
<span><i class="fas fa-stopwatch"></i></span><strong> Average response time:</strong> 310ms<br>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 mb-3">
<div class="table-responsive">
<table class="table table-striped table-bordered">
<thead class="thead-inverse">
<tr class="text-center">
<th class="text-uppercase">Summary Item</th>
<th class="text-uppercase">Total</th>
<th class="text-uppercase">Failed</th>
</tr>
</thead>
<tbody>
<tr>
<td>Requests</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
</tr>
<tr>
<td>Prerequest Scripts</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
</tr>
<tr>
<td>Test Scripts</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
</tr>
<tr class="table-danger">
<td>Assertions</td>
<td class="text-center">3</td>
<td class="text-center">2</td>
</tr>
<tr class="">
<td>Skipped Tests</td>
<td class="text-center">0</td>
<td class="text-center">-</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<hr>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="pills-failed" role="tabcard" aria-labelledby="pills-failed-tab">
<button id="topOfFailuresScreen" class="btn btn-outline-success btn-sm backToTop" onclick="topFunction()">Go To Top</button>
<div class="btn-group float-right" role="group" aria-label="Button Group">
<button id="openAllFailed" class="btn btn-outline-success btn-sm float-right" style="text-align: center; width: 185px;">Expand All Failed Tests</button>
</div>
<br>
<br>
<div class="alert alert-danger text-uppercase text-center">
<h4>Showing 2 Failures</h4>
</div>
<div class="col-sm-12 mb-3">
<div class="card-deck">
<div class="card border-danger">
<div class="card-header bg-danger">
<a data-toggle="collapse" href="#" data-target="#fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba" aria-expanded="false" aria-controls="collapse" id="fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba" class="collapsed text-white z-block">
Iteration 1 - AssertionError - sonarcloud - measures <i class="float-lg-right fa fa-chevron-down" style="padding-top:5px;"></i>
</a>
</div>
<div id="fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba" class="collapse" aria-labelledby="fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba">
<div class="card-body">
<h5 ><strong>Failed Test:</strong> Status code is 201</h5>
<hr>
<h5 class="card-title text-uppercase text-white text-center bg-danger">Assertion Error Message</h5>
<div>
<pre><code >expected response to have status code 201 but got 200</code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12 mb-3">
<div class="card-deck">
<div class="card border-danger">
<div class="card-header bg-danger">
<a data-toggle="collapse" href="#" data-target="#fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba" aria-expanded="false" aria-controls="collapse" id="fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba" class="collapsed text-white z-block">
Iteration 1 - AssertionError - sonarcloud - measures <i class="float-lg-right fa fa-chevron-down" style="padding-top:5px;"></i>
</a>
</div>
<div id="fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba" class="collapse" aria-labelledby="fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba">
<div class="card-body">
<h5 ><strong>Failed Test:</strong> at least one bug</h5>
<hr>
<h5 class="card-title text-uppercase text-white text-center bg-danger">Assertion Error Message</h5>
<div>
<pre><code >expected '0' to deeply equal '1'</code></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="pills-skipped" role="tabcard" aria-labelledby="pills-skipped-tab">
<button id="topOfSkippedScreen" class="btn btn-outline-success btn-sm backToTop" onclick="topFunction()">Go To Top</button>
<div class="alert alert-success text-uppercase text-center">
<br><br><h1 class="text-center">There are no skipped tests <span><i class="far fa-thumbs-up"></i></span></h1><br><br>
</div>
</div>
<div class="tab-pane fade" id="pills-requests" role="tabcard" aria-labelledby="pills-requests-tab">
<button id="topOfRequestsScreen" class="btn btn-outline-success btn-sm backToTop" onclick="topFunction()">Go To Top</button>
<div class="btn-group float-right" role="group" aria-label="Button Group">
<button id="showOnlyFailures" class="btn btn-outline-success btn-sm float-right" style="text-align: center; width:160px;">Show Failed Iterations</button>
<button id="openAll" class="btn btn-outline-success btn-sm float-right" style="text-align: center; width: 140px;">Expand Folders</button>
<button id="openAllRequests" class="btn btn-outline-success btn-sm float-right" style="text-align: center; width: 140px;">Expand Requests</button>
</div>
<div class="text-uppercase" id="execution-menu">
<h5>1 Iteration available to view</h5>
<nav class="table-responsive">
<ul class="nav single-line-tabs" id="iterationList">
</ul>
</nav>
</div>
<h6 class="text-uppercase text-muted" id="iterationSelected" style="padding-top: 10px;"></h6>
<div class="tab-content" id="execution-data">
<div id="folder-bd1fec90-3753-434e-8fd7-d0c116e6eeba" class="card-deck iteration-0">
<div class="row iteration-0">
<div class="col-sm-12 mb-3 iteration-0">
<div class="card iteration-0">
<div class="card-header bg-danger iteration-0">
<a data-toggle="collapse" href="#" data-target="#collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba" aria-expanded="false" aria-controls="collapse" id="requests-bd1fec90-3753-434e-8fd7-d0c116e6eeba" class="collapsed text-white z-block">
Iteration: 1 - measures <i class="float-lg-right fa fa-chevron-down" style="padding-top: 5px;"></i>
</a>
</div>
<div id="collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba" class="collapse" aria-labelledby="requests-bd1fec90-3753-434e-8fd7-d0c116e6eeba">
<div class="card-body">
<div class="row">
<div class="col-sm-12 mb-3">
<div class="card-deck">
<div class="card border-info" style="width: 50rem;">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">Request Information</h5>
<span><i class="fas fa-info-circle"></i></span><strong> Request Method:</strong> <span class="badge-outline-success badge badge-success"> GET</span><br>
<span><i class="fas fa-info-circle"></i></span><strong> Request URL:</strong> <a href="https://sonarcloud.io/api/measures/component?component=bhecquet_seleniumRobot&metricKeys=reliability_rating,bugs,vulnerabilities,security_hotspots" target="_blank">https://sonarcloud.io/api/measures/component?component=bhecquet_seleniumRobot&metricKeys=reliability_rating,bugs,vulnerabilities,security_hotspots</a><br>
</div>
</div>
<div class="card border-info" style="width: 50rem;">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">Response Information</h5>
<span><i class="fas fa-info-circle"></i></span><strong> Response Code:</strong> <span class="float-right badge-outline badge badge-success"> 200 - OK</span><br>
<span><i class="fas fa-stopwatch"></i></span><strong> Mean time per request:</strong> <span class="float-right badge-outline badge badge-success"> 310ms</span><br>
<span><i class="fas fa-database"></i></span><strong> Mean size per request:</strong> <span class="float-right badge-outline badge badge-success"> 492B</span><br>
<hr>
<h5 class="card-title text-uppercase text-white text-center bg-info">Test Pass Percentage</h5>
<div>
<div class="progress" style="height: 40px;">
<div class="progress-bar bg-danger" style="width: 100%" role="progressbar">
<h5 style="padding-top:5px;"><strong>33 %</strong></h5>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 mb-3">
<div class="card-deck">
<div class="card border-info" style="width: 50rem;">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">Request Headers</h5>
<div class="table-responsive">
<table class="table table-bordered">
<thead class="thead-light text-center"><tr><th>Header Name</th><th>Header Value</th></tr></thead>
<tbody>
<tr>
<td class="text-nowrap">User-Agent</td>
<td>PostmanRuntime/7.20.1</td>
</tr>
<tr>
<td class="text-nowrap">Accept</td>
<td>*/*</td>
</tr>
<tr>
<td class="text-nowrap">Cache-Control</td>
<td>no-cache</td>
</tr>
<tr>
<td class="text-nowrap">Postman-Token</td>
<td>a355691f-b349-40bc-bbf5-a532347d3990</td>
</tr>
<tr>
<td class="text-nowrap">Host</td>
<td>sonarcloud.io</td>
</tr>
<tr>
<td class="text-nowrap">Accept-Encoding</td>
<td>gzip, deflate</td>
</tr>
<tr>
<td class="text-nowrap">Connection</td>
<td>keep-alive</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 mb-3">
<div class="card-deck">
<div class="card border-info" style="width: 50rem;">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">Response Headers</h5>
<div class="table-responsive">
<table class="table table-bordered">
<thead class="thead-light text-center"><tr><th>Header Name</th><th>Header Value</th></tr></thead>
<tbody>
<tr>
<td class="text-nowrap">Date</td>
<td>Tue, 23 Feb 2021 08:31:39 GMT</td>
</tr>
<tr>
<td class="text-nowrap">Content-Type</td>
<td>application/json</td>
</tr>
<tr>
<td class="text-nowrap">Content-Length</td>
<td>492</td>
</tr>
<tr>
<td class="text-nowrap">Connection</td>
<td>close</td>
</tr>
<tr>
<td class="text-nowrap">X-Frame-Options</td>
<td>SAMEORIGIN</td>
</tr>
<tr>
<td class="text-nowrap">X-XSS-Protection</td>
<td>1; mode=block</td>
</tr>
<tr>
<td class="text-nowrap">X-Content-Type-Options</td>
<td>nosniff</td>
</tr>
<tr>
<td class="text-nowrap">Cache-Control</td>
<td>no-cache, no-store, must-revalidate</td>
</tr>
<tr>
<td class="text-nowrap">Sonar-Version</td>
<td>8.5.0.37579</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12 mb-3">
<div class="card-deck">
<div class="card border-info" style="width: 50rem;">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">Response Body</h5>
<div class="dyn-height">
<pre><code id="copyText-48897851-b0b4-4c88-8181-8f9623e98746" class="prettyPrint">{"component":{"id":"AXcGS4cCUqKOSEeXHtLQ","key":"bhecquet_seleniumRobot","name":"selenium robot","description":"Step by step test reporting framework based on webdriver, cucumber and testng, based on project seleniumtestsframework","qualifier":"TRK","measures":[{"metric":"reliability_rating","value":"1.0","bestValue":true},{"metric":"bugs","value":"0","bestValue":true},{"metric":"vulnerabilities","value":"0","bestValue":true},{"metric":"security_hotspots","value":"0","bestValue":true}]}}</code></pre>
</div>
<div class="card-footer">
<button class="btn btn-outline-secondary btn-sm copyButton" type="button" data-clipboard-action="copy" data-clipboard-target="#copyText-48897851-b0b4-4c88-8181-8f9623e98746">Copy to Clipboard</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="card border-info">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-info">Test Information</h5>
<div class="table-responsive text-nowrap">
<table id="myTable-48897851-b0b4-4c88-8181-8f9623e98746" class="table table-hover">
<thead><tr class="text-center"><th>Name</th><th>Passed</th><th>Failed</th><th>Skipped</th></tr></thead>
<tbody>
<tr >
<td >Status code is 201</td>
<td class="text-center ">0</td>
<td class="text-center bg-danger">1</td>
<td class="text-center ">0</td>
</tr>
<tr >
<td >at least one bug</td>
<td class="text-center ">0</td>
<td class="text-center bg-danger">1</td>
<td class="text-center ">0</td>
</tr>
<tr >
<td >A vulnerability rating</td>
<td class="text-center bg-success">1</td>
<td class="text-center ">0</td>
<td class="text-center ">0</td>
</tr>
</tbody>
<tfoot>
<tr class="bg-light">
<td><strong>Total</strong></td>
<td class="text-center">1</td>
<td class="text-center">2</td>
<td class="text-center">0</td>
</tr>
</tfoot>
</table>
</div>
<div class="row ">
<div class="col-sm-12 mb-3">
<div class="card-deck">
<div class="card border-danger" style="width: 50rem;">
<div class="card-body">
<h5 class="card-title text-uppercase text-white text-center bg-danger">Test Failures</h5>
<div class="table-responsive">
<table class="table table-hover">
<thead><tr class="text-nowrap"><th>Test Name</th><th>Assertion Error</th></tr></thead>
<tbody>
<tr>
<td class="w-45 text-nowrap ">Status code is 201</td>
<td class="w-55"><pre><code >expected response to have status code 201 but got 200</code></pre></td>
</tr>
<tr>
<td class="w-45 text-nowrap ">at least one bug</td>
<td class="w-55"><pre><code >expected '0' to deeply equal '1'</code></pre></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.2.1/js/bootstrap.bundle.min.js"></script>
<script src="https://cdn.datatables.net/v/bs4/dt-1.10.18/datatables.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/remarkable/1.7.1/remarkable.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
<!-- Data Table Configuration -->
<script>
$(document).ready( function () {
$('#myTable-48897851-b0b4-4c88-8181-8f9623e98746').DataTable({
"retrieve": true,
"paging": false,
"info": false,
"fixedColumns": {
"heightMatch": 'none'
}
});
});
</script>
<!-- Tooltip Configuration -->
<script>
$(document).ready(function() {
$('[data-toggle="tooltip"]').tooltip({
trigger : 'hover'
})
})
</script>
<!-- Show/Hide The Folders -->
<script>
$('#openAll').on('click', function(e) {
let clickCount = $(this).data("clickCount") || 1
switch (clickCount){
case 1:
$('#folder-63efb600-a575-4061-9866-a4cb528f3860-iteration-0').removeClass('collapsed')
$('#folder-collapse-63efb600-a575-4061-9866-a4cb528f3860-iteration-0').addClass('show')
$('#openAll').html("Collapse Folders");
break;
case 2:
$('#folder-63efb600-a575-4061-9866-a4cb528f3860-iteration-0').addClass('collapsed')
$('#folder-collapse-63efb600-a575-4061-9866-a4cb528f3860-iteration-0').removeClass('show')
$('#openAll').html("Expand Folders");
break;
}
clickCount = clickCount > 1 ? 1 : ++clickCount;
$(this).data("clickCount", clickCount)
})
</script>
<!-- Show/Hide The Requests -->
<script>
$('#openAllRequests').on('click', function(e) {
let clickCount = $(this).data("clickCount") || 1
switch (clickCount){
case 1:
$('#requests-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('collapsed')
$('#collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('collapsed')
$('#requests-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('show')
$('#collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('show')
$('#openAllRequests').html("Collapse Requests");
break;
case 2:
$('#requests-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('collapsed')
$('#collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('collapsed')
$('#requests-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('show')
$('#collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('show')
$('#openAllRequests').html("Expand Requests");
break;
}
clickCount = clickCount > 1 ? 1 : ++clickCount;
$(this).data("clickCount", clickCount)
})
</script>
<!-- Show/Hide The Skipped Tests -->
<script>
$('#openAllSkipped').on('click', function(e) {
let clickCount = $(this).data("clickCount") || 1
switch (clickCount){
case 1:
$('#skipped-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('collapsed')
$('#skipped-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('collapsed')
$('#skipped-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('show')
$('#skipped-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('show')
$('#openAllSkipped').html("Collapse All Skipped Tests");
break;
case 2:
$('#skipped-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('collapsed')
$('#skipped-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('collapsed')
$('#skipped-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('show')
$('#skipped-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('show')
$('#openAllSkipped').html("Expand All Skipped Tests");
break;
}
clickCount = clickCount > 1 ? 1 : ++clickCount;
$(this).data("clickCount", clickCount)
})
</script>
<!-- Show/Hide The Failures -->
<script>
$('#openAllFailed').on('click', function(e) {
let clickCount = $(this).data("clickCount") || 1
switch (clickCount){
case 1:
$('#fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('collapsed')
$('#fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('collapsed')
$('#fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('show')
$('#fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('show')
$('#openAllFailed').html("Collapse All Failed Tests");
break;
case 2:
$('#fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('collapsed')
$('#fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').addClass('collapsed')
$('#fails-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('show')
$('#fails-collapse-bd1fec90-3753-434e-8fd7-d0c116e6eeba').removeClass('show')
$('#openAllFailed').html("Expand All Failed Tests");
break;
}
clickCount = clickCount > 1 ? 1 : ++clickCount;
$(this).data("clickCount", clickCount)
})
</script>
<!-- Pretty Print the Response Body-->
<script>
function isJSON(data)
{
var ret = true;
try {
JSON.parse(data);
}catch(e) {
ret = false;
}
return ret;
}
function isXML(data)
{
return (data.length > 0 && data[0] === '<');
}
// see https://gist.github.com/sente/1083506/d2834134cd070dbcc08bf42ee27dabb746a1c54d#gistcomment-2254622
function formatXML(data) {
const PADDING = ' '.repeat(2); // set desired indent size here
const reg = /(>)(<)(\/*)/g;
let pad = 0;
xml = data.replace(reg, '$1\r\n$2$3');
return xml.split('\r\n').map((node, index) => {
let indent = 0;
if (node.match(/.+<\/\w[^>]*>$/)) {
indent = 0;
} else if (node.match(/^<\/\w/) && pad > 0) {
pad -= 1;
} else if (node.match(/^<\w[^>]*[^\/]>.*$/)) {
indent = 1;
} else {
indent = 0;
}
pad += indent;
return PADDING.repeat(pad - indent) + node;
}).join('\r\n');
}
$(".prettyPrint").each(function () {
var data = $(this).text();
// Verify whether data is JSON
if(isJSON(data))
{
obj = JSON.parse(data);
data = JSON.stringify(obj, null, 2);
}
else if(isXML(data)) {
data = formatXML(data);
}
$(this).text(data);
});
</script>
<!-- Copy Response Body To Clipboard -->
<script>
var clipboard = new ClipboardJS('.copyButton');
clipboard.on('success', function(e) {
e.clearSelection();
$(".copyButton").addClass("bg-success text-white")
e.trigger.textContent = '✔ Copied!';
window.setTimeout(function() {
$(".copyButton").removeClass("bg-success text-white")
e.trigger.textContent = 'Copy to Clipboard';
}, 2000);
});
clipboard.on('error', function(e) {
e.clearSelection();
$(".copyButton").addClass("bg-danger text-white")
e.trigger.textContent = '✗ Not Copied';
window.setTimeout(function() {
$(".copyButton").removeClass("bg-danger text-white")
e.trigger.textContent = 'Copy to Clipboard';
}, 2000);
});
</script>
<!-- Render the Description Markdown and link in the test failures -->
<script>
const remarkable = new Remarkable();
const descriptions = document.querySelectorAll(".renderMarkdown");
descriptions.forEach(description => {
description.innerHTML = renderHtmlFromMarkdown(description.textContent);
});
function renderHtmlFromMarkdown(markdown) {
return remarkable.render(trim(markdown));
}
function trim(string) {
return string ? string.replace(/^ +| +$/gm, "") : string;
}
</script>
<!-- Show/Hide The Toggles When Scrolling The Page -->
<script>
window.onscroll = function() {scrollFunction()};
function scrollFunction() {
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
document.getElementById("topOfRequestsScreen").style.display = "block";
document.getElementById("topOfFailuresScreen").style.display = "block";
document.getElementById("topOfSkippedScreen").style.display = "block";
document.getElementById("openAll").style.display = "none";
document.getElementById("openAllRequests").style.display = "none";
document.getElementById("showOnlyFailures").style.display = "none";
document.getElementById("openAllFailed").style.display = "none";
} else {
document.getElementById("topOfRequestsScreen").style.display = "none";
document.getElementById("topOfFailuresScreen").style.display = "none";
document.getElementById("topOfSkippedScreen").style.display = "none";
document.getElementById("openAll").style.display = "block";
document.getElementById("openAllRequests").style.display = "block";
document.getElementById("showOnlyFailures").style.display = "block";
document.getElementById("openAllFailed").style.display = "block";
}
}
function topFunction() {
document.body.scrollTop = 0;
document.documentElement.scrollTop = 0;
}
</script>
<!-- Creates The Iteration Tabs -->
<script type="text/javascript">
"use strict";
window.onload = function () {
// set display for all blocks of response
var allItems = document.querySelectorAll('[class*=iteration-]');
allItems.forEach(function(elem){
elem.style.display = 'block';
});
let totalIterations = 1;
let menu = document.querySelector('#execution-menu .nav');
for(var i = 0; i < totalIterations; i++)
{
let li = document.createElement('li');
li.appendChild(document.createTextNode((i + 1)));
li.setAttribute('id', 'iteration-' + i);
li.classList.add("custom-tab");
li.classList.add("itPassed");
li.addEventListener('click', function() {
//set display to none for all except row
let allItems = document.querySelectorAll('[class*=iteration-]:not(.row)');
allItems.forEach(function(elem) {
elem.style.display = 'none';
})
let allMenus = document.querySelectorAll('[id*=iteration-]');
allMenus.forEach(function(elem){
elem.style.borderBottom = 'none';
})
this.style.borderBottom = 'solid 3px #032a33';
let items = document.querySelectorAll("." + this.id + ':not(.row)');
items.forEach(function(elem) {
elem.style.display = elem.style.display == 'block' ? 'none' : 'block';
})
});
menu.appendChild(li);
}
//shows first tab data
document.getElementById('iteration-0').click();
document.getElementById('iterationSelected').innerHTML = `Iteration ${document.getElementById('iteration-0').innerHTML} selected`
$("#iteration-0").removeClass('itPassed').addClass('itFailed')
}
</script>
<!-- Create the Selected Iteration Label -->
<script>
$(document).ready(function(){
$(function() {
$("#iterationList li").click(function() {
document.getElementById('iterationSelected').innerHTML = "Iteration " + this.innerHTML + " selected"
});
});
});
</script>
<!-- Filter Action for the Iterations -->
<script>
$(document).ready(function(){
$("#filterInput").on("input paste", function() {
var value = $(this).val();
$("#iterationList li").filter(function() {
$("#showOnlyFailures").data("clickCount") ? $("#showOnlyFailures").click():null;
$(this).toggle($(this).text().indexOf(value) > -1)
});
});
});
</script>
<!-- Showing the Failed Interations -->
<script>
$(document).ready(function(){
if($("#iterationList li.itFailed").length){
$("#showOnlyFailures").data("clickCount", 0);
$("#showOnlyFailures").on("click", function () {
let clickCount = $(this).data("clickCount")
$("#filterInput").val()!="" && clickCount==0 ?
$("#filterInput").val('').trigger('input'): null;
let selectedIteration = $('#iterationList li').filter(function () {
return $(this).css('border-bottom').indexOf("solid") > -1 && $(this).hasClass('itFailed');
});
selectedIteration.length || clickCount ? null : $("#iterationList l