Revision: 8388
http://languagetool.svn.sourceforge.net/languagetool/?rev=8388&view=rev
Author: dnaber
Date: 2012-11-12 23:03:17 +0000 (Mon, 12 Nov 2012)
Log Message:
-----------
make load test work with > 1 thread
Modified Paths:
--------------
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java
Modified:
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
===================================================================
---
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
2012-11-12 22:15:26 UTC (rev 8387)
+++
trunk/JLanguageTool/src/test/java/org/languagetool/server/ExampleSentenceProvider.java
2012-11-12 23:03:17 UTC (rev 8388)
@@ -70,7 +70,7 @@
}
List<ExampleSentence> getRandomSentences(Language lang) {
- final List<ExampleSentence> sentences = languageToExamples.get(lang);
+ final List<ExampleSentence> sentences = new
ArrayList<ExampleSentence>(languageToExamples.get(lang));
final int sentenceCount = rnd.nextInt(Math.max(1, maxSentences -
minSentences)) + minSentences;
Collections.shuffle(sentences);
return sentences.subList(0, Math.min(sentences.size(), sentenceCount));
Modified:
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java
===================================================================
---
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java
2012-11-12 22:15:26 UTC (rev 8387)
+++
trunk/JLanguageTool/src/test/java/org/languagetool/server/HTTPSServerTesting.java
2012-11-12 23:03:17 UTC (rev 8388)
@@ -42,7 +42,7 @@
private static final String SERVER_URL = "https://localhost:8081";
//private static final String SERVER_URL = "https://languagetool.org:8081";
private static final int REPEAT_COUNT = 100;
- private static final int THREAD_COUNT = 1;
+ private static final int THREAD_COUNT = 3;
private final ExampleSentenceProvider provider = new
ExampleSentenceProvider(1, 500);
private final Random rnd = new Random(10);
@@ -57,7 +57,7 @@
final ExecutorService executorService =
Executors.newFixedThreadPool(THREAD_COUNT);
final List<Future> futures = new ArrayList<Future>();
for (int i = 0; i < THREAD_COUNT; i++) {
- final Future<?> future = executorService.submit(new TestRunnable());
+ final Future<?> future = executorService.submit(new TestRunnable(i));
futures.add(future);
}
for (Future future : futures) {
@@ -74,11 +74,17 @@
}
private class TestRunnable implements Runnable {
+ private final int threadNumber;
+
+ public TestRunnable(int threadNumber) {
+ this.threadNumber = threadNumber;
+ }
+
@Override
public void run() {
try {
for (int i = 0; i < REPEAT_COUNT; i++) {
- runTests();
+ runTests(threadNumber);
}
} catch (Exception e) {
throw new RuntimeException(e);
@@ -86,15 +92,15 @@
}
}
- private void runTests() throws IOException {
+ private void runTests(int threadNumber) throws IOException {
final Language[] languages = Language.REAL_LANGUAGES;
final Language lang = languages[rnd.nextInt(languages.length)];
final List<ExampleSentence> sentences = provider.getRandomSentences(lang);
final String text = getSentencesAsText(sentences);
final String data = "language=" + lang.getShortNameWithVariant() +
"&text=" + URLEncoder.encode(text, "utf-8");
- final String resultXml = checkAtUrl(new URL(SERVER_URL), data);
+ final String resultXml = checkAtUrl(new URL(SERVER_URL), data,
threadNumber);
for (ExampleSentence sentence : sentences) {
- assertTrue("Expected " + sentence.getRuleId() + " for '" + text + "'",
resultXml.contains(sentence.getRuleId()));
+ assertTrue("Expected " + sentence.getRuleId() + " for '" + text + "' ("
+ sentences.size() + " sentences)", resultXml.contains(sentence.getRuleId()));
}
}
@@ -109,14 +115,14 @@
return sb.toString();
}
- private String checkAtUrl(URL url, String data) throws IOException {
+ private String checkAtUrl(URL url, String data, int threadNumber) throws
IOException {
final long startTime = System.currentTimeMillis();
final String startOfData = data.substring(0, Math.min(30, data.length()));
synchronized(this) {
checkCount++;
}
final String result = HTTPTools.checkAtUrlByPost(url, data);
- System.out.println(checkCount + ". Got " + url + " with data (" +
data.length() + " bytes) " + startOfData
+ System.out.println(checkCount + ". [" + threadNumber + "] Got " + url + "
with data (" + data.length() + " bytes) " + startOfData
+ "...: " + (System.currentTimeMillis() - startTime) + "ms");
return result;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Languagetool-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-commits