You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Bowl_in/gatling/results/computerdatabasesimulation-.../req_page-1-dffde.html

883 lines
25 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" type="image/x-icon" href="style/favicon.ico"/>
<link href="style/style.css" rel="stylesheet" type="text/css" />
<link href="style/bootstrap.min.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-3.5.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/gatling.js"></script>
<script src="js/menu.js"></script>
<script src="js/ellipsis.js"></script>
<script src="js/all_sessions.js"></script>
<script src="js/stats.js"></script>
<script src="js/highstock.js"></script>
<script src="js/highcharts-more.js"></script>
<script src="js/theme.js"></script>
<script src="js/unpack.js"></script>
<title>Gatling Stats - Page 1</title>
</head>
<body>
<div class="app-container">
<div class="frise"></div>
<div class="head">
<div class="gatling-open-source">
<a class="gatling-logo" href="https://gatling.io" target="blank_" title="Gatling Home Page"><img alt="Gatling" src="style/logo.svg"/></a>
<a class="gatling-documentation" href="https://gatling.io/docs/" target="_blank">Documentation</a>
</div>
<a class="enterprise" href="https://gatling.io/enterprise/next-step/" target="_blank">Try <img alt="Gatling Enterprise" src="style/logo-enterprise.svg"/></a></div>
<div class="container details">
<div class="nav">
<ul></ul>
</div>
<div class="cadre">
<div class="content">
<div class="content-header">
<div class="onglet">
ComputerDatabaseSimulation
</div>
<div class="sous-menu" id="sousMenu">
<div class="sous-menu-spacer">
<div class="item "><a href="index.html">Global</a></div>
<div class="item ouvert"><a id="details_link" href="#">Details</a></div>
</div>
</div>
</div>
<div class="content-in">
<div class="container-article">
<div class="article">
<div class="schema-container">
<div id="ranges" class="schema ranges-large">
</div>
<div class="infos">
<div class="infos-in">
<div class="infos-title">Stats</div>
<div class="repli"></div>
<div class="info">
<h2 class="first">Executions</h2>
<table>
<thead>
<tr><th></th><th>Total</th><th>OK</th><th>KO</th></tr>
</thead>
<tbody>
<tr>
<td class="title">Total count</td>
<td id="numberOfRequests" class="total"></td>
<td id="numberOfRequestsOK" class="ok"></td>
<td id="numberOfRequestsKO" class="ko"></td>
</tr>
<tr>
<td class="title">Mean count/s</abbr></td>
<td id="meanNumberOfRequestsPerSecond" class="total"></td>
<td id="meanNumberOfRequestsPerSecondOK" class="ok"></td>
<td id="meanNumberOfRequestsPerSecondKO" class="ko"></td>
</tr>
</tbody>
</table>
<h2 class="second">Response Time (ms)</h2>
<table>
<thead>
<tr>
<th></th>
<th>Total</th>
<th>OK</th>
<th>KO</th>
</tr>
</thead>
<tbody>
<tr>
<td class="title">Min</td>
<td id="minResponseTime" class="total"></td>
<td id="minResponseTimeOK" class="ok"></td>
<td id="minResponseTimeKO" class="ko"></td>
</tr>
<tr>
<td class="title">50th percentile</td>
<td id="percentiles1" class="total"></td>
<td id="percentiles1OK" class="ok"></td>
<td id="percentiles1KO" class="ko"></td>
</tr>
<tr>
<td class="title">75th percentile</td>
<td id="percentiles2" class="total"></td>
<td id="percentiles2OK" class="ok"></td>
<td id="percentiles2KO" class="ko"></td>
</tr>
<tr>
<td class="title">95th percentile</td>
<td id="percentiles3" class="total"></td>
<td id="percentiles3OK" class="ok"></td>
<td id="percentiles3KO" class="ko"></td>
</tr>
<tr>
<td class="title">99th percentile</td>
<td id="percentiles4" class="total"></td>
<td id="percentiles4OK" class="ok"></td>
<td id="percentiles4KO" class="ko"></td>
</tr>
<tr>
<td class="title">Max</td>
<td id="maxResponseTime" class="total"></td>
<td id="maxResponseTimeOK" class="ok"></td>
<td id="maxResponseTimeKO" class="ko"></td>
</tr>
<tr>
<td class="title">Mean</td>
<td id="meanResponseTime" class="total"></td>
<td id="meanResponseTimeOK" class="ok"></td>
<td id="meanResponseTimeKO" class="ko"></td>
</tr>
<tr>
<td class="title">Standard Deviation</td>
<td id="standardDeviation" class="total"></td>
<td id="standardDeviationOK" class="ok"></td>
<td id="standardDeviationKO" class="ko"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="schema geant">
<div id="responsetimeDistributionContainer" class="geant"></div>
</div>
<div class="schema geant">
<div id="responsetimepercentilesovertimeokPercentilesContainer" class="geant"></div>
</div>
<div class="schema geant">
<div id="requests" class="geant"></div>
</div>
<div class="schema geant">
<div id="responses" class="geant"></div>
</div>
<div class="schema geant">
<div id="container_response_time_dispersion" class="geant"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
var pageStats = stats.contents['req_page-1-dffde'].stats;
$(document).ready(function() {
$('.simulation-tooltip').popover({trigger:'hover', placement:'left'});
setDetailsLinkUrl();
setDetailsMenu();
setActiveMenu();
fillStats(pageStats);
Highcharts.setOptions({
global: { useUTC: false }
});
var rangesChart = new Highcharts.Chart({
chart: {
renderTo: 'ranges',
marginRight: 100
},
credits: { enabled: false },
legend: { enabled: false },
title: { text: 'A title to let highcharts reserve the place for the title set later' },
xAxis: {
categories: [
pageStats.group1.htmlName,
pageStats.group2.htmlName,
pageStats.group3.htmlName,
pageStats.group4.htmlName
]
},
yAxis: {
title: { text: 'Number of Requests' },
reversedStacks: false
},
tooltip: {
formatter: function() {
var s;
if (this.point.name) { // the pie chart
s = ''+ this.point.name +': '+ this.y +'% requests';
} else {
s = ''+ this.y + ' requests';
}
return s;
}
},
plotOptions: {
series: {
stacking: 'normal',
shadow: true
}
},
series: [
{
type: 'column',
data: [{
color: '#68b65c',
y: pageStats.group1.count
},
{
color: '#FFDD00',
y: pageStats.group2.count
},
{
color: '#FFA900',
y: pageStats.group3.count
},
{
color: '#f15b4f',
y: pageStats.group4.count
}]
},
{
type: 'pie',
name: 'Percentages',
data: [
{
name: pageStats.group1.name,
y: pageStats.group1.percentage,
color: '#68b65c'
},
{
name: pageStats.group2.name,
y: pageStats.group2.percentage,
color: '#FFDD00'
},
{
name: pageStats.group3.name,
y: pageStats.group3.percentage,
color: '#FFA900'
},
{
name: pageStats.group4.name,
y: pageStats.group4.percentage,
color: '#f15b4f'
}
],
center: [368, 0],
size: 90,
showInLegend: false,
dataLabels: { enabled: false }
}
]
});
rangesChart.setTitle({
text: '<span class="chart_title">Response Time Ranges</span>',
useHTML: true
});
$('#container_errors').sortable('#container_errors');
var responsetimeDistributionChart = new Highcharts.Chart({
chart: {
renderTo: 'responsetimeDistributionContainer',
type: 'column',
marginBottom: 60
},
credits: { enabled: false },
legend: {
enabled: true,
floating: true,
y: 5,
borderWidth: 0,
itemStyle: { fontWeight: "normal" },
symbolRadius: 0
},
title: { text: 'A title to let highcharts reserve the place for the title set later' },
navigator: {
maskInside: false
},
xAxis: {
categories: ['132', '133', '135', '136', '138', '140', '141', '143', '144', '146', '147', '149', '151', '152', '154', '155', '157', '158', '160', '162', '163', '165', '166', '168', '169', '171', '173', '174', '176', '177', '179', '180', '182', '184', '185', '187', '188', '190', '191', '193', '195', '196', '198', '199', '201', '202', '204', '206', '207', '209', '210', '212', '213', '215', '217', '218', '220', '221', '223', '224', '226', '228', '229', '231', '232', '234', '235', '237', '239', '240', '242', '243', '245', '246', '248', '250', '251', '253', '254', '256', '257', '259', '261', '262', '264', '265', '267', '268', '270', '272', '273', '275', '276', '278', '279', '281', '283', '284', '286', '287'],
tickInterval: 20
},
yAxis: {
min: 0,
title: { text: 'Percentage of Requests' },
reversedStacks: false
},
tooltip: {
formatter: function() {
return '<b>'+ this.x +' ms</b><br/>'+
this.series.name +': '+ this.y +' %<br/>'+
'Total: '+ this.point.stackTotal + ' %';
}
},
plotOptions: {
series: {
groupPadding: 0,
stacking: 'normal',
shadow: true
}
},
series: [
{
type: 'column',
color: '#68b65c',
name: 'OK',
data: [
8.33,0.0,8.33,0.0,0.0,0.0,8.33,0.0,0.0,0.0,0.0,8.33,0.0,8.33,8.33,0.0,0.0,8.33,0.0,8.33,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.33,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.33,0.0,0.0,8.33,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.33
],
tooltip: { yDecimals: 0, ySuffix: 'ms' }
},
{
type: 'column',
color: '#f15b4f',
name: 'KO',
data: [
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
],
tooltip: { yDecimals: 0, ySuffix: 'ms' }
}
]
});
responsetimeDistributionChart.setTitle({
text: '<span class="chart_title">Response Time Distribution</span>',
useHTML: true
});
var responsetimepercentilesovertimeokPercentiles = unpack([[1675679336,null],[1675679337,null],[1675679338,null],[1675679339,null],[1675679340,null],[1675679341,null],[1675679342,[152,152,153,170,173,176,180,183,186,187]],[1675679343,null],[1675679344,[141,143,145,147,147,147,148,148,148,149]],[1675679345,[162,162,162,162,162,162,162,162,162,162]],[1675679346,[159,174,189,204,207,210,213,216,219,220]],[1675679347,[135,135,135,135,135,135,135,135,135,135]],[1675679348,[288,288,288,288,288,288,288,288,288,288]],[1675679349,null],[1675679350,[131,154,178,201,206,210,215,220,224,225]],[1675679351,null],[1675679352,null],[1675679353,null]]);
var responsetimepercentilesovertimeokPercentilesChart = new Highcharts.StockChart({
chart: {
renderTo: 'responsetimepercentilesovertimeokPercentilesContainer',
zoomType: 'x',
marginBottom: 60
},
colors: ['#c4fd90', '#7ff77f', '#6ff2ad', '#61ede6', '#58c7e0', '#4ea1d4', '#487ad9', '#3f52cc', '#7335dc', '#c73905', '#FFA900'],
credits: { enabled: false },
legend: {
enabled: true,
floating: true,
y: -65,
borderWidth: 0,
itemStyle: { fontWeight: "normal" },
symbolRadius: 0
},
title: { text: 'A title to let highcharts reserve the place for the title set later' },
navigator: {
maskInside: false,
baseSeries: 9
},
rangeSelector: {
rangeSelector: { align: "left" },
buttonSpacing: 0,
buttonTheme: {
fill: '#CFC9C6',
padding: 1,
stroke: '#000000',
'stroke-width': 0.25,
style: {
color: '#000000',
fontWeight: 'bold',
},
states: {
stroke: '#92918C',
'stroke-width': 0.25,
hover: {
fill: '#92918C',
style: { color: 'black' }
},
select: {
fill: '#FFA900',
style: { color: 'white' }
}
}
},
buttons : [
{
type : 'minute',
count : 1,
text : '1m'
}, {
type : 'minute',
count : 10,
text : '10m'
}, {
type : 'hour',
count : 1,
text : '1h'
}, {
type : 'all',
count : 1,
text : 'All'
}
],
selected : 3,
inputEnabled : false
},
xAxis: {
type: 'datetime',
ordinal: false,
maxZoom: 10000 // three days
},
yAxis:[
{
min: 0,
title: { text: 'Response Time (ms)' },
opposite: false
}, {
min: 0,
title: {
text: 'Active Users',
style: { color: '#FFA900' }
},
opposite: true
}
],
plotOptions: {
arearange: { lineWidth: 1 },
series: {
dataGrouping: { enabled: false }
}
},
series: [
{
pointInterval: 1000,
name: 'min',
data: responsetimepercentilesovertimeokPercentiles[0],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 10
},
{
pointInterval: 1000,
name: '25%',
data: responsetimepercentilesovertimeokPercentiles[1],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 9
},
{
pointInterval: 1000,
name: '50%',
data: responsetimepercentilesovertimeokPercentiles[2],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 8
},
{
pointInterval: 1000,
name: '75%',
data: responsetimepercentilesovertimeokPercentiles[3],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 7
},
{
pointInterval: 1000,
name: '80%',
data: responsetimepercentilesovertimeokPercentiles[4],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 6
},
{
pointInterval: 1000,
name: '85%',
data: responsetimepercentilesovertimeokPercentiles[5],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 5
},
{
pointInterval: 1000,
name: '90%',
data: responsetimepercentilesovertimeokPercentiles[6],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 4
},
{
pointInterval: 1000,
name: '95%',
data: responsetimepercentilesovertimeokPercentiles[7],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 3
},
{
pointInterval: 1000,
name: '99%',
data: responsetimepercentilesovertimeokPercentiles[8],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 2
},
{
pointInterval: 1000,
name: 'max',
data: responsetimepercentilesovertimeokPercentiles[9],
tooltip: { yDecimals: 0, ySuffix: 'ms' },
type : 'area',
yAxis: 0,
zIndex: 1
},
allUsersData
]
});
responsetimepercentilesovertimeokPercentilesChart.setTitle({
text: '<span class="chart_title chart_title_">Response Time Percentiles over Time (OK)</span>',
useHTML: true
});
var requests = unpack([[1675679336,[0,0,0]],[1675679337,[0,0,0]],[1675679338,[0,0,0]],[1675679339,[0,0,0]],[1675679340,[0,0,0]],[1675679341,[0,0,0]],[1675679342,[3,3,0]],[1675679343,[0,0,0]],[1675679344,[2,2,0]],[1675679345,[1,1,0]],[1675679346,[2,2,0]],[1675679347,[1,1,0]],[1675679348,[1,1,0]],[1675679349,[0,0,0]],[1675679350,[2,2,0]],[1675679351,[0,0,0]],[1675679352,[0,0,0]],[1675679353,[0,0,0]]]);
var requestsChart = new Highcharts.StockChart({
chart: {
renderTo: 'requests',
zoomType: 'x',
marginBottom: 60
},
credits: { enabled: false },
legend: {
enabled: true,
floating: true,
y: -65,
borderWidth: 0,
itemStyle: { fontWeight: "normal" },
symbolRadius: 0
},
title: { text: 'A title to let highcharts reserve the place for the title set later' },
navigator: {
maskInside: false
},
rangeSelector: {
buttonSpacing: 0,
buttonTheme: {
fill: '#CFC9C6',
padding: 1,
stroke: '#000000',
'stroke-width': 0.25,
style: {
color: '#000000',
fontWeight: 'bold',
},
states: {
stroke: '#000000',
'stroke-width': 0.25,
hover: {
fill: '#92918C',
style: { color: 'black' }
},
select: {
fill: '#FFA900',
style: { color: 'white' }
}
}
},
buttons : [
{
type : 'minute',
count : 1,
text : '1m'
}, {
type : 'minute',
count : 10,
text : '10m'
}, {
type : 'hour',
count : 1,
text : '1h'
}, {
type : 'all',
count : 1,
text : 'All'
}
],
selected : 3,
inputEnabled : false
},
plotOptions: {
series: {
dataGrouping: { enabled: false }
},
area: {
stacking: 'normal'
}
},
xAxis: {
type: 'datetime',
ordinal: false,
maxZoom: 10000 // three days
},
yAxis:[
{
min: 0,
title: { text: 'Number of requests' },
opposite: false,
reversedStacks: false
}, {
min: 0,
title: {
text: 'Active Users',
style: { color: '#FFA900' }
},
opposite: true
}
],
series: [
{
color: '#5E7BE2',
name: 'All',
data: requests[0],
tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
,type: 'area'},
allUsersData
]
});
requestsChart.setTitle({
text: '<span class="chart_title">Number of requests per second</span>',
useHTML: true
});
var responses = unpack([[1675679336,[0,0,0]],[1675679337,[0,0,0]],[1675679338,[0,0,0]],[1675679339,[0,0,0]],[1675679340,[0,0,0]],[1675679341,[0,0,0]],[1675679342,[2,2,0]],[1675679343,[1,1,0]],[1675679344,[2,2,0]],[1675679345,[1,1,0]],[1675679346,[2,2,0]],[1675679347,[0,0,0]],[1675679348,[1,1,0]],[1675679349,[1,1,0]],[1675679350,[2,2,0]],[1675679351,[0,0,0]],[1675679352,[0,0,0]],[1675679353,[0,0,0]]]);
var requestsChart = new Highcharts.StockChart({
chart: {
renderTo: 'responses',
zoomType: 'x',
marginBottom: 60
},
credits: { enabled: false },
legend: {
enabled: true,
floating: true,
y: -65,
borderWidth: 0,
itemStyle: { fontWeight: "normal" },
symbolRadius: 0
},
title: { text: 'A title to let highcharts reserve the place for the title set later' },
navigator: {
maskInside: false
},
rangeSelector: {
buttonSpacing: 0,
buttonTheme: {
fill: '#CFC9C6',
padding: 1,
stroke: '#000000',
'stroke-width': 0.25,
style: {
color: '#000000',
fontWeight: 'bold',
},
states: {
stroke: '#000000',
'stroke-width': 0.25,
hover: {
fill: '#92918C',
style: { color: 'black' }
},
select: {
fill: '#FFA900',
style: { color: 'white' }
}
}
},
buttons : [
{
type : 'minute',
count : 1,
text : '1m'
}, {
type : 'minute',
count : 10,
text : '10m'
}, {
type : 'hour',
count : 1,
text : '1h'
}, {
type : 'all',
count : 1,
text : 'All'
}
],
selected : 3,
inputEnabled : false
},
plotOptions: {
series: {
dataGrouping: { enabled: false }
},
area: {
stacking: 'normal'
}
},
xAxis: {
type: 'datetime',
ordinal: false,
maxZoom: 10000 // three days
},
yAxis:[
{
min: 0,
title: { text: 'Number of responses' },
opposite: false,
reversedStacks: false
}, {
min: 0,
title: {
text: 'Active Users',
style: { color: '#FFA900' }
},
opposite: true
}
],
series: [
{
color: '#5E7BE2',
name: 'All',
data: responses[0],
tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
},
{
color: '#68b65c',
name: 'OK',
data: responses[1],
tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
,type: 'area'},
{
color: '#f15b4f',
name: 'KO',
data: responses[2],
tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 }
,type: 'area'},
allUsersData,
{
type: 'pie',
name: 'Distribution',
data: [
{name: 'OK', y: 12.0, color: '#68b65c'},{name: 'KO', y: 0.0, color: '#f15b4f'}
],
center: [775, -40],
size: 70,
showInLegend: false,
dataLabels: { enabled: false },
dataGrouping: { enabled: false }
}
]
});
requestsChart.setTitle({
text: '<span class="chart_title">Number of responses per second</span>',
useHTML: true
});
var scatterChart = new Highcharts.Chart({
chart: {
renderTo: 'container_response_time_dispersion',
defaultSeriesType: 'scatter',
zoomType: 'xy',
marginBottom: 90
},
credits: { enabled: false },
xAxis: {
title: {
enabled: true,
text: 'Global number of requests per second',
style: { fontWeight: 'bold' }
},
startOnTick: true,
endOnTick: true,
showLastLabel: true,
min: 0
},
title: { text: 'A title to let highcharts reserve the place for the title set later' },
yAxis: {
min: 0,
title: { text: 'Response Time (ms)' }
},
tooltip: {
formatter: function() {
return ''+ this.y +' ms at ' + this.x + ' allreq/s';
}
},
legend: {
enabled: true,
floating: true,
y: 0,
borderWidth: 0,
itemStyle: { fontWeight: "normal" },
},
plotOptions: {
scatter: {
marker: {
radius: 3,
states: {
hover: {
enabled: true,
lineColor: 'rgb(100,100,100)'
}
}
},
states: {
hover: {
marker: { enabled: false }
}
}
}
},
series: [
{
type: 'scatter',
color: '#68b65c',
name: 'OK',
data: [
[5,220],[6,288],[8,135],[9,183],[10,216],[11,148],[11,162]
]},
{
type: 'scatter',
color: '#f15b4f',
name: 'KO',
data: [
[]
]}
]
});
scatterChart.setTitle({
text: '<span class="chart_title">Response Time against Global Throughput</span>',
useHTML: true
});
});
</script>
</div>
</body>
</html>