package testclient;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.RandomAccessFile;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
/**
* @author Sven
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class LasttestClient {
public int max_thread_count = 300;
public int thread_counter = 0;
public int error_count = 0;
public int turns = 0;
public long max = 0;
public long min = Long.MAX_VALUE;
public PrintStream Log = null;
public boolean stop = false;
private String readFile(String filename) throws Exception
{
RandomAccessFile raf = new RandomAccessFile(filename, "r");
if (raf.length() > Integer.MAX_VALUE)
throw new IOException("file too big to fit in byte array.");
byte[] result = new byte[(int) raf.length()];
raf.read(result);
return new String(result);
}
public String buildRequest(String filename) throws Exception
{
String data = readFile(filename);
int index = data.indexOf(">");
String xml_head = data.substring(0,index+1);
data = data.substring(index+1);
//Log.println("Data2:\n"+data);
data =
xml_head +
"\" "+
"soap:encodingStyle=\"http://www.w3.org/2001/12/soap-encoding\"> "+
" "+
data +
""+
"";
if(data.indexOf("10.16.46.109")!=-1)
data = replaceString(data,"10.16.46.109","127.0.0.1");
System.out.println("Request:"+data);
return data;
}
public String buildEndpoint(String request,String server)
{
String ep = null;
if(request.indexOf("");
if(pos==-1)
{
return true;
}
else
{
return false;
}
}
}
private String replaceString(
String input,
String oldPart,
String newPart)
throws Exception {
String erg = null;
//First Part
erg = input.substring(0, input.indexOf(oldPart));
//Insert new Part
erg += newPart;
//insert REST
erg
+= input.substring(
input.indexOf(oldPart) + oldPart.length(),
input.length());
return erg;
}
public static void main(String[] args) throws Exception
{
int sek = 0;
int turns = 0;
if(args.length!=4)
{
System.out.println("Parameteranzahl falsch. Bitte verwenden Sie die Syntax ");
return;
}
try {
sek = Integer.parseInt(args[2]);
if(args[3].equals("INF"))
{
turns = 0;
}
else
turns = Integer.parseInt(args[3]);
}
catch(NumberFormatException e)
{
System.out.println("Einer der Parameter (Requestanzahl oder Testanzahl) ist keine Zahl !");
return;
}
System.out.println("Starte Lastest mit folgenden Parametern ...");
System.out.println("Requestdatei: "+args[0]);
System.out.println("ServerURL: "+args[1]);
System.out.println("Requests pro Sekunde: "+sek);
System.out.println("Durchläufe: "+(turns==0?"INF":turns+""));
LasttestClient lc = new LasttestClient();
//lc.startTest("data/CX0/TestGeneratorCX0.001.Req.xml","http://161.106.2.255:8080/",10,1000);
lc.startTest(args[0],args[1],sek,turns);
}
}
class Dispatcher extends Thread
{
private String request = null;
private String endpoint = null;
private LasttestClient parent = null;
private int max;
private int turns;
public Dispatcher(LasttestClient parent,String request,String endpoint,int max,int turns)
{
this.request = request;
this.endpoint = endpoint;
this.parent = parent;
this.max = max;
this.turns = turns;
}
public void run()
{
this.setPriority(Thread.NORM_PRIORITY+1);
System.out.println("Dispatcher wird gestartet...");
TestThread[] old_reqs = buildRequests();
for(int turn_counter=0;turns==0?true:(turn_counter");
if(pos==-1)
{
long diff = end-start;
if(parent.maxdiff)
{
parent.min=diff;
}
return true;
}
else
{
return false;
}
}
}
}