diff --git a/examples/utilities/diagnostics/loadTestServers.js b/examples/utilities/diagnostics/loadTestServers.js new file mode 100644 index 0000000000..789273c5e0 --- /dev/null +++ b/examples/utilities/diagnostics/loadTestServers.js @@ -0,0 +1,68 @@ +// +// loadTestServers.js +// examples/utilities/diagnostics +// +// Created by Stephen Birarda on 05/08/15. +// Copyright 2015 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// +// This script is made for load testing HF servers. It connects to the HF servers and sends/receives data. +// Run this on an assignment-client. +// + +var count = 0; +var yawDirection = -1; +var yaw = 45; +var yawMax = 70; +var yawMin = 20; +var vantagePoint = {x: 5000, y: 500, z: 5000}; + +var isLocal = false; + +// set up our EntityViewer with a position and orientation +var orientation = Quat.fromPitchYawRollDegrees(0, yaw, 0); + +EntityViewer.setPosition(vantagePoint); +EntityViewer.setOrientation(orientation); +EntityViewer.queryOctree(); + +Agent.isListeningToAudioStream = true; +Agent.isAvatar = true; + +function getRandomInt(min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; +} + +function keepLooking(deltaTime) { + count++; + + if (count % getRandomInt(5, 15) == 0) { + yaw += yawDirection; + orientation = Quat.fromPitchYawRollDegrees(0, yaw, 0); + + if (yaw > yawMax || yaw < yawMin) { + yawDirection = yawDirection * -1; + } + + EntityViewer.setOrientation(orientation); + EntityViewer.queryOctree(); + + } + + // approximately every second, consider stopping + if (count % 60 == 0) { + print("considering stop.... elementCount:" + EntityViewer.getOctreeElementsCount()); + + var stopProbability = 0.05; // 5% chance of stopping + + if (Math.random() < stopProbability) { + print("stopping.... elementCount:" + EntityViewer.getOctreeElementsCount()); + Script.stop(); + } + } +} + +// register the call back so it fires before each data send +Script.update.connect(keepLooking);