I've been beginning to use canoo webtest on my current project, but have
hit a problem: I have a page which under some circumstances returns a
204 No content http status code. But the tests I've built in webtest
fail to run - (its not that they run and fail, but they they won't run
and webtest dies). How can I run a test that expects a 204 status code,
or is this a bug that I've found? Details below.
Any help would be appreciated :)
thanks
Jon
The test code is:
<webtest name="3 Camera Control">
<config
host="${target.host}"
basepath="${hanet.basepath}"
summary="true"
saveresponse="true"
haltonfailure="${halt.on.failure}">
<option name="ThrowExceptionOnFailingStatusCode" value="false"/>
</config>
<steps>
<invoke description="3.1/spec 2.2.5 Valid positive pan"
url="control.cgi?cameraid=10004&pan=45"
/>
<storeResponseCode property="status"/>
<verifyProperty description="expecting 202 No Content"
name="status"
text="202" />
</steps>
</webtest>
The server returns this:
HTTP/1.1 204 No Content
Connection: keep-alive
Date: Tue, 19 Jun 2007 16:40:25 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
MicrosoftOfficeWebServer: 5.0_Pub
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Length: 0
(and no content)
and the error message I get is this:
BUILD FAILED
C:\Home\davies_fj\Workspace\SwordTests\runtests.xml:30: The following
error occurred while executing this line:
C:\Home\davies_fj\Workspace\SwordTests\hanet.xml:137: Canoo Webtest:
R_1560.
Test failed.
Exception raised:
java.lang.NullPointerExceptionjava.lang.NullPointerException
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1025)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:999)
at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:218)
at
com.gargoylesoftware.htmlunit.WebResponseData.getBody(WebResponseData.ja
va:150)
at
com.gargoylesoftware.htmlunit.WebResponseData.<init>(WebResponseData.jav
a:105)
at
com.gargoylesoftware.htmlunit.HttpWebConnection.makeWebResponse(HttpWebC
onnection.java:387)
at
com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConne
ction.java:128)
at
com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection
(WebClient.java:1424)
at
com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1
381)
at
com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:332)
at
com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:399)
at
com.canoo.webtest.steps.request.TargetHelper.getResponse(TargetHelper.ja
va:69)
at
com.canoo.webtest.steps.request.AbstractTargetAction.getResponse(Abstrac
tTargetAction.java:68)
at
com.canoo.webtest.steps.request.InvokePage.findTarget(InvokePage.java:13
4)
at
com.canoo.webtest.steps.request.AbstractTargetAction$1.call(AbstractTarg
etAction.java:108)
at
com.canoo.webtest.steps.request.TargetHelper.protectedGoto(TargetHelper.
java:88)
at
com.canoo.webtest.steps.request.AbstractTargetAction.gotoTarget(Abstract
TargetAction.java:106)
at
com.canoo.webtest.steps.request.AbstractTargetAction.doExecute(AbstractT
argetAction.java:78)
at com.canoo.webtest.steps.Step.execute(Step.java:104)
at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at
com.canoo.webtest.ant.TestStepSequence.executeSteps(TestStepSequence.jav
a:43)
at
com.canoo.webtest.ant.TestStepSequence.doExecute(TestStepSequence.java:3
1)
at com.canoo.webtest.steps.Step.execute(Step.java:104)
at org.apache.tools.ant.Task.perform(Task.java:364)
at
com.canoo.webtest.ant.WebtestTask.execute(WebtestTask.java:164)
at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at
org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleChe
ckExecutor.java:37)
at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382)
at
org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107)
at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecut
or.java:40)
at
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at org.apache.tools.ant.Main.runBuild(Main.java:668)
at org.apache.tools.ant.Main.startAnt(Main.java:187)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)