new - Bci news Blog

Download Report

Transcript new - Bci news Blog

HTTPUNIT
What is HTTPUNIT



HttpUnit is an open source software testing
framework used to perform testing of web sites
without the need for a web browser.
HttpUnit is primarily designed for "black-box"
testing of web sites
HttpUnit is free software available from [HttpUnitSite] that
implements several useful unit testing methods together
with classes for connecting to HTTP servers, processing
HTML, and maintaining stateful sessions.



BSD(Berkeley Software Distribution)
license.
Recent Version HttpUnit1.7
JavaScript support is very basic at present.
The near-term goal is full JavaScript 1.1
support. Currently, we do not plan to
support browser-specific JavaScript.
HttpUnit supports :
o HTML form submission
o JavaScript
o automatic page redirection and cookies.
o Written in Java, HttpUnit allows Java test
code to process returned pages as text,
XML DOM, or containers of forms, tables
and links



It is well suited to be used in combination
with JUnit.
It easily write tests that verify the proper
behaviour of a web site.
The use of HttpUnit allows for automated
testing of web applications
The center of HttpUnit is the WebConversation
class, which takes the place of a browser talking
to a single site.
 It is responsible for maintaining session context,
which it does via cookies returned by the server.
 To use it, one must create a request and ask the
WebConversation for a response.
For Example:

WebConversation wc = new WebConversation();
WebRequest req = new GetMethodWebRequest(
"http://www.meterware.com/testpage.html" );
WebResponse resp = wc.getResponse( req );


The response may now be manipulated
either as pure text (via the getText()
method), as a DOM (via the getDOM()
method)
WebConversation wc = new WebConversation();
WebResponse resp = wc.getResponse(
"http://www.meterware.com/testpage.html" );
Some Drawbacks to HTTPUnit:
 Tests are tied to page structures.


If you change your page (say, reordering links
or forms), you will break your tests.
Test assertions typically depend on the
content of the page.


If content changes, tests may break.
Checking content is not completely sufficient
for testing Grid portals.
public WebConversation loginToPortal()
throws Exception {
//WebConversation objects are the cornerstone class.
WebConversation wc = new WebConversation();
//We will need to specify the user agent to simulate a browser.
ClientProperties cprops = wc.getClientProperties();
cprops.setUserAgent("Mozilla/5.0");
WebResponse resp = wc.getResponse(portalUrl);
// Find the login form.
// It's not named so we pick it out of an array
String frontPage = resp.getText();
//First make sure we are looking at the right web page.
assertTrue("Failed to get front page",
frontPage.indexOf("Please Login") != -1);
WebForm form = resp.getForms()[1];
assertNotNull("No login form found", form);
// Fill in form and submit
form.setParameter("userName", “admin”);
form.setParameter("password", “admin”);
form.submit();
// Get logged in page
WebResponse resp2 = wc.getCurrentPage();
String page = resp2.getText();
assertFalse("Failed to log in",
page.indexOf("Please Login") != -1);
return wc;
}

o
o
o
o
o
o
o
o
o
o
o
o
o
Assertion Statement Reference: There is the list of the different
types of assertion statements that are used to test your code.
assertNotNull("url: ", url, response)
assertFalse(message, condition)
assertNotNull(object)
assertNotSame(expected, actual)
assertNotSame(message, expected, actual)
assertNull(object)
assertNull(message, object)
assertSame(expected, actual)
assertSame(message, expected, actual)
assertTrue(condition)
assertTrue(message, condition)
fail()
fail(message)
Thank You