From ca6e9a668f067d261ed5089b33dbff1395d71767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillermo=20L=C3=B3pez?= Date: Wed, 26 Mar 2014 17:34:41 +0100 Subject: [PATCH] Flood script, upgraded --- test/jmeter_auxtools/flood-push-server.js | 76 ++++++++++++++--------- 1 file changed, 46 insertions(+), 30 deletions(-) diff --git a/test/jmeter_auxtools/flood-push-server.js b/test/jmeter_auxtools/flood-push-server.js index e354c3c3..86880093 100644 --- a/test/jmeter_auxtools/flood-push-server.js +++ b/test/jmeter_auxtools/flood-push-server.js @@ -1,10 +1,13 @@ /* jshint node: true */ -"use strict"; +'use strict'; -process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; +process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; +var request = require('request'); +var http = require('http'); +http.globalAgent.maxSockets = 20000; var https = require('https'); -var url = require('url'); +https.globalAgent.maxSockets = 20000; function s4() { return Math.floor((1 + Math.random()) * 0x10000) @@ -28,8 +31,10 @@ var finishing = false; var HELLOS_RECEIVED = 0; var REGISTER_RECEIVED = 0; -var NOTIFICATIONS_SENT = 0; +var NOTIFICATIONS_SENT_OK = 0; var NOTIFICATIONS_RECEIVED = 0; +var NOTIFICATIONS_TRIED = 0; +var NOTIFICATIONS_SENT_BAD = 0; var debug = function(message) { @@ -42,28 +47,36 @@ var sendRegister = function(connection) { var sendNotification = function(idcon, where, version) { if (!where || !version || finishing) return; - NOTIFICATIONS_SENT++; - var u = url.parse(where); + NOTIFICATIONS_TRIED++; var options = { - hostname: u.hostname, - port: u.port, - path: u.path, + url: where, method: 'PUT', - agent: new https.Agent(false) + agent: false, + pool: { + maxSockets: 40000 + }, + headers: { + 'Connection': 'close' + }, + body: 'version=' + version }; - var req = https.request(options, function(res) { - debug('(conn ' + idcon + ') notification sent to url=' + where + ' version=' + version + ' - ' + res.statusCode); + request(options, function(error, message/*, response*/) { + if (error) { + debug('(conn ' + idcon + ') error sending!! ' + require('util').inspect(error)); + NOTIFICATIONS_SENT_BAD++; + return; + } + if (message && (message.statusCode === 200)) { + debug('(conn ' + idcon + ') notification sent to url=' + where + ' version=' + + version + ' - ' + message.statusCode); + NOTIFICATIONS_SENT_OK++; + } else { + debug('(conn ' + idcon + ') notification ERROR to url=' + where + ' version=' + + version + ' - ' + message.statusCode); + NOTIFICATIONS_SENT_BAD++; + } }); - - req.on('error', function(e){ - debug('error sending!!' + e); -}); - - - - req.write('version=' + version); - req.end(); }; var wsClient = require('websocket').client; @@ -71,7 +84,9 @@ var wsClient = require('websocket').client; var ARGS = []; if (process.argv.length < 9) { console.error('You must use 7 parameters, like this'); - console.error('node script.js