private void ProcessResult(WebTest test, WebResponse response) { long pageLoadTime = response.getLoadTime(); int statusCode = response.getStatusCode(); String content = response.getContentAsString(); boolean responseContentValid = true; if (!test.getRespShouldContain().isEmpty()) { if (!content.contains(test.getRespShouldContain())) { responseContentValid = false; } } else if (!test.getRespShouldNotContain().isEmpty()) { if (content.contains(test.getRespShouldNotContain())) { responseContentValid = false; } } Orville.LOG() .info( String.format( "Page load status code: %d, page load time: %d ms, response valid: %s\n", statusCode, pageLoadTime, (responseContentValid == true) ? "true" : "false")); boolean statusCodeValid = (test.getRespHttpCode() != 0 ? statusCode == test.getRespHttpCode() : true); boolean testPassed = (statusCodeValid && responseContentValid) ? true : false; StringBuffer urlBuffer = new StringBuffer(); urlBuffer.append("http://orville-agent-management.herokuapp.com/test_results/"); // urlBuffer.append("http://localhost:3000/test_results/"); urlBuffer.append(test.getTestId() + "/"); urlBuffer.append(Orville.AgentGuid() + "/"); urlBuffer.append(testPassed + "/"); urlBuffer.append(pageLoadTime); // Need to make sure the URL doesn't have any spaces String url = urlBuffer.toString().replaceAll("\\s+", "%20"); Orville.LOG().info("Test result URL: " + url); DefaultHttpClient httpclient = new DefaultHttpClient(); HttpPost httpPost = null; try { httpPost = new HttpPost(url); HttpResponse postResponse = httpclient.execute(httpPost); Orville.LOG() .fine( String.format( "Test result data posted, response code: %d\n", postResponse.getStatusLine().getStatusCode())); } catch (IOException e) { Orville.LOG() .warning( String.format( "Unable to connect with Redstone test results service: %s\n", e.getMessage())); } }
private void ProcessTest(WebTest test) { HtmlPage page = null; // Orville.LOG().info(String.format("Executing test %s\n", event)); WebClient webClient = new WebClient(); webClient.setRefreshHandler(new ThreadedRefreshHandler()); webClient.getOptions().setJavaScriptEnabled(false); try { if (test.getMethod().toLowerCase().equals("post")) { WebRequest request = new WebRequest(UrlUtils.toUrlUnsafe(test.getUrlString()), HttpMethod.POST); request.setRequestParameters(new ArrayList<NameValuePair>()); for (Map.Entry<String, String> entry : test.getPostData().entrySet()) { request.getRequestParameters().add(new NameValuePair(entry.getKey(), entry.getValue())); } page = webClient.getPage(request); } else { page = webClient.getPage(test.getUrlString()); } ProcessResult(test, page.getWebResponse()); } catch (FailingHttpStatusCodeException fsc) { Orville.LOG() .warning( String.format( "Failing HTTP Status code caught executing the test command: %s\n", fsc.getMessage())); } catch (IOException ioe) { Orville.LOG() .warning( String.format( "IO Exception caught executing the test command: %s\n", ioe.getMessage())); } webClient.closeAllWindows(); }