mirror of https://github.com/apache/cloudstack.git
113 lines
4.2 KiB
Java
113 lines
4.2 KiB
Java
// 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;
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
public class ProxyLoadTemp {
|
|
public static final Logger s_logger = Logger.getLogger(ProxyLoadTemp.class.getClass());
|
|
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;
|
|
s_logger.info("Started reading file");
|
|
while (!eof) {
|
|
String line = consoleInput.readLine();
|
|
s_logger.info("Line is " + line);
|
|
if (line == null) {
|
|
s_logger.info("Line " + numThreads + " is null");
|
|
eof = true;
|
|
} else {
|
|
String[] result = null;
|
|
try {
|
|
s_logger.info("Starting parsing line " + line);
|
|
result = parseLine(line, "[,]");
|
|
s_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) {
|
|
s_logger.warn(ex);
|
|
}
|
|
}
|
|
|
|
}
|
|
} catch (Exception e) {
|
|
s_logger.warn(e);
|
|
}
|
|
|
|
}
|
|
|
|
public static class ShutdownThread extends Thread {
|
|
ProxyLoadTemp temp;
|
|
|
|
public ShutdownThread(ProxyLoadTemp temp) {
|
|
this.temp = temp;
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
s_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();
|
|
}
|
|
s_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();
|
|
s_logger.info("Summary for all" + numThreads + " threads: Average response time is " + sum / numThreads + " milliseconds");
|
|
s_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;
|
|
}
|
|
|
|
}
|
|
|
|
}
|