Skip to content

Commit 76c123a

Browse files
peteyyczgergelyke
authored andcommitted
fix(RPM): fix calculation issue with response time
1 parent 34d58e8 commit 76c123a

2 files changed

Lines changed: 28 additions & 5 deletions

File tree

lib/providers/httpTransaction/index.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function HttpTransaction(eventBus, options) {
2727
this.traces = [];
2828
this.rpmMetrics = {};
2929
this.totalRequestCount = 0;
30-
this.avgResponseTime = 0;
30+
this.avgResponseTime = null;
3131
this.avgRequestCount = 0;
3232

3333
this.on(HttpTransaction.CLIENT_RECV, this.onClientReceive);
@@ -162,13 +162,13 @@ HttpTransaction.prototype.onServerSend = function (data) {
162162
}
163163

164164
this.collectStatusCode(trace);
165-
this.avgResponseTime = this.calculateAvgResponseTime(data.responseTime);
165+
this.calculateAvgResponseTime(data.responseTime);
166166
delete this.partials[data.id];
167167
};
168168

169169
HttpTransaction.prototype.calculateAvgResponseTime = function (responseTime) {
170-
return ((this.avgResponseTime * this.avgRequestCount) +
171-
responseTime) / ++this.avgRequestCount || null;
170+
this.avgResponseTime = (((this.avgResponseTime * this.avgRequestCount) +
171+
responseTime) / ++this.avgRequestCount) || null;
172172
};
173173

174174
HttpTransaction.prototype.collectStatusCode = function (trace) {
@@ -226,8 +226,8 @@ HttpTransaction.prototype._sendRpm = function () {
226226

227227
this.eventBus.emit(this.eventBus.RPM_METRICS, dataBag);
228228
this.rpmMetrics = {};
229+
this.avgResponseTime = null;
229230
this.avgRequestCount = 0;
230-
this.avgResponseTime = 0;
231231
}
232232
};
233233

lib/providers/httpTransaction/index.spec.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,5 +387,28 @@ describe('The HttpTransaction module', function () {
387387

388388
done();
389389
});
390+
391+
it('calculates average response time', function (done) {
392+
var httpTransaction = HttpTransaction.create(eventBus, {});
393+
394+
expect(httpTransaction.avgResponseTime).to.be.eql(null);
395+
396+
httpTransaction.calculateAvgResponseTime(2);
397+
expect(httpTransaction.avgResponseTime).to.be.eql(2);
398+
399+
httpTransaction.calculateAvgResponseTime(5);
400+
expect(httpTransaction.avgResponseTime).to.be.eql(3.5);
401+
402+
httpTransaction.calculateAvgResponseTime(8);
403+
expect(httpTransaction.avgResponseTime).to.be.eql(5);
404+
405+
httpTransaction.calculateAvgResponseTime(10);
406+
expect(httpTransaction.avgResponseTime).to.be.eql(6.25);
407+
408+
httpTransaction.calculateAvgResponseTime(10);
409+
expect(httpTransaction.avgResponseTime).to.be.eql(7);
410+
411+
done();
412+
});
390413
});
391414
});

0 commit comments

Comments
 (0)