blob: 6fe3a695d383906443ae102059cf5131baf8832a [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
package com.cloud.test.utils;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
public class ProxyLoadTemp {
public static int numThreads = 0;
public static ArrayList<ConsoleProxy> proxyList = new ArrayList<ConsoleProxy>();
public static long begin;
public static long end;
public static long sum = 0;
public ProxyLoadTemp() {
}
public static void main(String[] args) {
begin = System.currentTimeMillis();
Runtime.getRuntime().addShutdownHook(new ShutdownThread(new ProxyLoadTemp()));
ConsoleProxy.proxyIp = "172-16-1-101";
try {
BufferedReader consoleInput = new BufferedReader(new FileReader("console.input"));
boolean eof = false;
logger.info("Started reading file");
while (!eof) {
String line = consoleInput.readLine();
logger.info("Line is " + line);
if (line == null) {
logger.info("Line " + numThreads + " is null");
eof = true;
} else {
String[] result = null;
try {
logger.info("Starting parsing line " + line);
result = parseLine(line, "[,]");
logger.info("Line retrieved from the file is " + result[0] + " " + result[1] + " " + result[2]);
ConsoleProxy proxy = new ConsoleProxy(result[0], result[1], result[2]);
proxyList.add(proxy);
new Thread(proxy).start();
numThreads++;
} catch (Exception ex) {
logger.warn(ex);
}
}
}
} catch (Exception e) {
logger.warn(e);
}
}
public static class ShutdownThread extends Thread {
ProxyLoadTemp temp;
public ShutdownThread(ProxyLoadTemp temp) {
this.temp = temp;
}
@Override
public void run() {
logger.info("Program was running in " + numThreads + " threads");
for (int j = 0; j < proxyList.size(); j++) {
long av = 0;
if (proxyList.get(j).getConnectionsMade() != 0) {
av = proxyList.get(j).getResponseTime() / proxyList.get(j).getConnectionsMade();
}
logger.info("Information for " + j + " thread: Number of requests sent is " + proxyList.get(j).getConnectionsMade() + ". Average response time is " +
av + " milliseconds");
sum = sum + av;
}
ProxyLoadTemp.end = System.currentTimeMillis();
logger.info("Summary for all" + numThreads + " threads: Average response time is " + sum / numThreads + " milliseconds");
logger.info("Test was running for " + (ProxyLoadTemp.end - ProxyLoadTemp.begin) / 1000 + " seconds");
}
}
public static String[] parseLine(String line, String del) throws Exception {
String del1 = del.substring(1, del.length() - 1);
if (line.contains(del1) != true) {
throw new Exception();
} else {
String[] token = line.split(del);
return token;
}
}
}