package hudson.plugins.grinder;
import junit.framework.TestCase;
import java.io.InputStream;
import java.util.List;
/**
* Test class for the Grinder results loader.
*
* @author Eivind B Waaler
*/
public class TestGrinderResultReader extends TestCase {
public void testLoadOneTestResultWithError() throws Exception {
InputStream is = getClass().getResourceAsStream("/out_2.log");
ResultReader rr = new ResultReader(is, System.out);
List<Test> tests = rr.getTests();
assertNotNull(tests);
assertEquals(1, tests.size());
assertTest(tests.get(0), "Test 101", 1, 0, 47.0, 0.0, 1518.0, 0.0, 1, 16.0, 16.0, 47.0, "Hent forside (HTML) med p�logging");
Test totals = rr.getTotals();
assertTest(totals, "Totals", 1, 0, 47.0, 0.0, 1518.0, 0.0, 1, 16.0, 16.0, 47.0, "");
}
public void testLoadMultipleTestResultsFromWindows() throws Exception {
InputStream is = getClass().getResourceAsStream("/out_1.log");
ResultReader rr = new ResultReader(is, System.out);
List<Test> tests = rr.getTests();
assertNotNull(tests);
assertEquals(8, tests.size());
assertTest(tests.get(0), "Test 101", 50, 0, 17407.6, 15017.92, 67586.60, 0.0, 0, 1.60, 4.08, 4317.0, "Hent forside (HTML) med p�logging");
assertTest(tests.get(1), "Test 201", 30, 0, 1311.03, 1509.49, 26856.77, 0.0, 0, 0.0, 0.0, 1203.63, "Hent fagomr�der");
assertTest(tests.get(2), "Test 301", 20, 0, 1807.9, 2233.07, 22882.4, 0.0, 0, 0.0, 0.0, 1730.6, "Hent nyhet A");
assertTest(tests.get(3), "Test 401", 10, 0, 903.6, 652.5, 24198.0, 0.0, 0, 0.0, 0.0, 772.3, "Hent nyhet B");
assertTest(tests.get(4), "Test 501", 10, 0, 867.6, 1436.25, 23326.0, 0.0, 0, 0.0, 0.0, 795.6, "Hent nyhet C");
assertTest(tests.get(5), "Test 601", 10, 0, 953.2, 1535.51, 22879.0, 0.0, 0, 0.0, 0.0, 823.6, "Hent nyhet D");
assertTest(tests.get(6), "Test 701", 10, 0, 692.4, 930.25, 21385.5, 0.0, 0, 0.0, 0.0, 659.5, "�pne ansatts�k");
assertTest(tests.get(7), "Test 801", 10, 0, 2222.6, 1522.19, 37542.5, 0.0, 0, 0.0, 0.0, 2016.1, "Utf�r ansatts�k - fornavn Eivind");
assertTest(rr.getTotals(), "Totals", 150, 0, 6681.75, 11597.56, 39573.27, 0.0, 0, 0.53, 1.36, 2248.28, "");
}
public void testLoadMultipleTestResultsFromMac() throws Exception {
InputStream is = getClass().getResourceAsStream("/out_3.log");
ResultReader rr = new ResultReader(is, System.out);
List<Test> tests = rr.getTests();
assertNotNull(tests);
assertEquals(5, tests.size());
assertTest(tests.get(0), "Test 1", 100, 0, 698.49, 453.3, 30152.0, 0.0, 0, 1.39, 69.67, 344.75, "Frontpage");
assertTest(tests.get(1), "Test 2", 100, 0, 1717.36, 580.06, 29175.0, 0.0, 0, 0.0, 0.0, 1583.85, "Search");
assertTest(tests.get(2), "Test 3", 100, 0, 284.55, 309.91, 126.0, 0.0, 0, 0.0, 0.0, 284.2, "English");
assertTest(tests.get(3), "Test 4", 100, 0, 468.92, 218.33, 42491.0, 0.0, 0, 0.0, 0.0, 344.14, "Trondheim");
assertTest(tests.get(4), "Test 5", 100, 0, 383.9, 213.65, 31369.0, 0.0, 0, 0.0, 0.0, 285.86, "UI design");
assertTest(rr.getTotals(), "Totals", 500, 0, 710.64, 646.79, 26662.6, 0.0, 0, 0.28, 13.93, 568.56, "");
}
public void testSeleniumLogFile() throws Exception {
InputStream is = getClass().getResourceAsStream("/out_Selenium1-0.log");
ResultReader rr = new ResultReader(is, System.out);
assertTest(rr.getTotals(), "Totals", 1, 0, 125.00, 0.00, 7604.00, 20277.33, 0, 0.00, 31.00, 109.00, "");
}
public void testJavaLogFile() throws Exception {
InputStream is = getClass().getResourceAsStream("/out_java-0.log");
ResultReader rr = new ResultReader(is, System.out);
Test totals = rr.getTotals();
assertEquals(100, totals.getTestCount());
assertEquals(0, totals.getErrorCount());
assertEquals(0.54, totals.getMeanTime());
assertEquals(1.96, totals.getStdDev());
}
public void testOutLogFile() throws Exception {
InputStream is = getClass().getResourceAsStream("/out.log");
ResultReader rr = new ResultReader(is, System.out);
Test totals = rr.getTotals();
assertEquals(1, totals.getTestCount());
assertEquals(0, totals.getErrorCount());
assertEquals(0.88, totals.getMeanTime());
assertEquals(1.65, totals.getStdDev());
}
public void testNullInput() throws Exception {
try {
new ResultReader(null, System.out);
} catch (GrinderParseException e) {
assertEquals("Empty input stream", e.getMessage());
}
}
public void testSummaryRowLogFile() throws Exception {
InputStream is = getClass().getResourceAsStream("/out_summary_rows.log");
ResultReader rr = new ResultReader(is, System.out);
List<Test> tests = rr.getTests();
assertNotNull(tests);
assertEquals(25, tests.size());
assertTest(tests.get(0), "Test 10", 2, 0, 189.50, 77.50, 5346.00, 726.46, 0, 17.5, 24.0, 56.5, "GET index.html");
assertTest(tests.get(1), "Test 11", 2, 0, 9.5, 2.5, 4523.0, 614.62, 0, 0.0, 0.0, 7.5, "GET screen.css");
}
private void assertTest(
Test test,
String id,
Number testCount,
Number errorCount,
Number meanTime,
Number stdDev,
Number meanRespLength,
Number respBytesPrSec,
Number respErrorCount,
Number resolveHostMeanTime,
Number establishConnMeanTime,
Number firstByteMeanTime,
String name) {
assertEquals(id, test.getId());
assertEquals(testCount, test.getTestCount());
assertEquals(errorCount, test.getErrorCount());
assertEquals(meanTime, test.getMeanTime());
assertEquals(stdDev, test.getStdDev());
assertEquals(meanRespLength, test.getMeanRespLength());
assertEquals(respBytesPrSec, test.getRespBytesPrSecond());
assertEquals(respErrorCount, test.getRespErrorCount());
assertEquals(resolveHostMeanTime, test.getResolveHostMeanTime());
assertEquals(establishConnMeanTime, test.getEstablishConnMeanTime());
assertEquals(firstByteMeanTime, test.getFirstByteMeanTime());
assertEquals(name, test.getName());
}
}