diff --git a/performance/lib/reauth.js b/performance/lib/reauth.js index a7e8aa43ad55fd352fbae8ea3e71150426921cb4..211025c0d4a787104106ae472f9a739268467bf9 100644 --- a/performance/lib/reauth.js +++ b/performance/lib/reauth.js @@ -45,5 +45,7 @@ exports.startFunc = function(cfg, cb) { // 3. in page javascript calls CSRF to get a CSRF token // 4. the RP will call /verify to verify a generated assertion + // XXX: implementing this will require actual crypto. + setTimeout(function() { cb(true); }, 10); }; diff --git a/performance/lib/signin.js b/performance/lib/signin.js index 8dbb319805d9dcc15bb7c2a928a9c99f9312cfd4..5400d57911c52ea0bd90fb0c70c73a7abc181e40 100644 --- a/performance/lib/signin.js +++ b/performance/lib/signin.js @@ -36,12 +36,9 @@ /* this file is the "signin" activity, which simulates the process of a user * who has used browserid before signing into browserid inside the dialog and - * picking an idenity */ + * picking an identity */ exports.startFunc = function(cfg, cb) { - // A new user signing up for browserid looks like this in terms of - // network transactions: - // // 1. RP includes include.js // 2. users' browser loads all code associated with dialog // 3. in page javascript calls CSRF to get a CSRF token diff --git a/performance/lib/user_db.js b/performance/lib/user_db.js index 90ac8a663226cee062905218d00e8c5b20702076..1e6f8ffd111071fb1f3b2b6db30c991e60b742c3 100644 --- a/performance/lib/user_db.js +++ b/performance/lib/user_db.js @@ -43,7 +43,7 @@ var secrets = require('../../libs/secrets.js'); // the grandiose database var users = [ ]; -exports.numUsers = function() { return users.length; } +exports.num = function() { return users.length; } function genEmail() { return secrets.generate(8) + "@" + secrets.generate(8) + "." + secrets.generate(3); diff --git a/performance/run.js b/performance/run.js index 470b143b134153911911293b087c8e3927d7ec75..e7a0a537f3f2ed6edd2354e38d23dd5f869ab271 100755 --- a/performance/run.js +++ b/performance/run.js @@ -259,5 +259,23 @@ function poll() { iterations++; } -console.log("Average active users simulated over the last 1s/5s/60s:"); -setTimeout(poll, 1); +// always start out by creating a bunch of users +var NUM_INITIAL_USERS = 50; + +console.log("To start, let's create " + NUM_INITIAL_USERS + " users. A moment please."); + +const userdb = require("./lib/user_db.js"); +var createUser = require("./lib/signup.js").startFunc; +var created = 0; +for (var i = 0; i < NUM_INITIAL_USERS; i++) { + createUser(configuration, function(rv) { + if (!rv) { + console.log("failed to create initial users! tragedy! run away!"); + process.exit(1); + } + if (++created == NUM_INITIAL_USERS) { + console.log("Average active users simulated over the last 1s/5s/60s:"); + poll(); + } + }); +}