Colored report for newman reporter with request/response body https://imgur.com/a/iJJXr (https://community.getpostman.com/t/improve-newman-documention-for-custom-reports/268/21)

April 17, 2018 · View on GitHub

Postman - Reports

RCS Tests Report

{{#with summary}}
Collection
{{collection.name}}
{{#if collection.description}}
Description
{{collection.description}} 
{{/if}} {{/with}}
Time
{{timestamp}}

Base Information

 
 
Total
Failed
  {{#with summary}}
    {{#with stats}}
      <div class="col-md-4">Iterations</div><div class="col-md-4">{{iterations.total}}</div><div class="col-md-4">{{iterations.failed}}</div>
      <div class="col-md-4">Requests</div><div class="col-md-4">{{requests.total}}</div><div class="col-md-4">{{requests.failed}}</div>
      <div class="col-md-4">Prerequest Scripts</div><div class="col-md-4">{{prerequestScripts.total}}</div><div class="col-md-4">{{prerequestScripts.failed}}</div>
      <div class="col-md-4">Test Scripts</div><div class="col-md-4">{{testScripts.total}}</div><div class="col-md-4">{{testScripts.failed}}</div>
        <div class="col-md-4">Assertions</div><div class="col-md-4">{{assertions.total}}</div><div class="col-md-4{{#if assertions.failed}} tego-color-red{{/if}}">{{assertions.failed}}</div>
    {{/with}}

    <div class="col-md-12">&nbsp;</div>
    <div class="col-md-6">Total run duration</div><div class="col-md-6">{{duration}}</div>
    <div class="col-md-6">Total data received</div><div class="col-md-6">{{responseTotal}} (approx)</div>
    <div class="col-md-6">Average response time</div><div class="col-md-6">{{responseAverage}}</div>

    <div class="col-md-12">&nbsp;</div>
      <div class="col-md-3"><strong>Total Failures</strong></div><div class="col-md-6"><strong>{{failures}}</strong></div>
  {{/with}}
</div>

<br/><h4>Requests</h4>

{{#each aggregations}}
    {{#if parent.name}}
    <div class="panel-group" id="collapse-folder-{{parent.id}}" role="tablist" aria-multiselectable="true">
        <div role="tab" id="folderHead-{{parent.id}}">
            <h4 style="font-size: 18px;" class="panel-title"><a data-toggle="collapse" data-parent="#accordion" href="#folderData-{{parent.id}}" aria-controls="collapseOne"><strong>{{parent.name}}</strong></a></h4>
        </div>
        <br/>
        <div id="folderData-{{parent.id}}" class="panel-collapse collapsed" role="tabpanel" aria-labelledby="folderHead-{{parent.id}}">
        {{> aggregations}}
        </div>
    </div>
    {{else}}
    {{> aggregations}}
    {{/if}}
{{/each}}
  <!-- Alain Lim : Preparation of implementation of console logging
      Get info from "().on('console') then parse them here -->

{{#*inline "aggregations"}} {{#each executions}}

            <div id="requestData-{{item.id}}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="requestHead-{{item.id}}">
                <div class="panel-body">
                    {{#with request}}
                        {{#if description.content}}
                            <div class="col-md-4">Description</div><div class="col-md-8" style="white-space: pre-wrap;">{{description.content}}</div>
                            <div class="col-md-12">&nbsp;</div>
                        {{/if}}

                        <div class="col-md-4">Method</div><div class="col-md-8">{{method}}</div>
                        <div class="col-md-4">URL</div><div class="col-md-8"><a href="{{url}}" target="_blank">{{url}}</a></div>
                    {{/with}}

                    <div class="col-md-12">&nbsp;</div>
                    <div class="col-md-4">Mean time per request</div><div class="col-md-8">{{mean.time}}</div><br/>
                    <div class="col-md-4">Mean size per request</div><div class="col-md-8">{{mean.size}}</div><br/>

                    <div class="col-md-12">&nbsp;</div>
                    <br/><div class="col-md-4">Total passed tests</div><div class="total-passed col-md-8">{{cumulativeTests.passed}}</div>
                    <div class="col-md-4">Total failed tests</div><div class="total-failed col-md-8">{{cumulativeTests.failed}}</div><br/>

                    <div class="col-md-12">&nbsp;</div>
                    <br/><div class="col-md-4">Status code</div><div class="col-md-8">{{response.code}}</div><br/>
                    {{#if request.body}}
                        <div class="col-md-12">&nbsp;</div>
                        <br/><div class="col-md-4">Request body</div><div class="col-md-8"><textarea disabled rows="8" cols="70">{{request.body}}</textarea></div><br/>
                    {{/if}}
                    {{#if response.body}}
                        <div class="col-md-12">&nbsp;</div>
                        <br/><div class="col-md-4">Response body</div><div class="col-md-8"><textarea disabled rows="8" cols="70">{{response.body}}</textarea></div><br/>
                    {{/if}}

                    {{#if assertions.length}}
                        <div class="col-md-12">&nbsp;</div>
                        <div class="col-md-4">Tests</div>

                        <div class="col-md-8">
                            <table class="table table-responsive table-condensed">
                                <thead><tr><th>Name</th><th>Pass count</th><th>Fail count</th></tr></thead>
                                <tbody>{{#each assertions}}<tr><td>{{this.name}}</td><td {{#if this.passed}} class="tego-bg-green"{{/if}}>{{this.passed}}</td><td {{#if this.failed}} class="tego-bg-red"{{/if}}>{{this.failed}}</td></tr>{{/each}}</tbody>
                            </table>
                        </div>
                    {{/if}}
                </div>
            </div>
        </div>
    </div>
{{/each}}

{{/inline}}