I've been tasked with choosing an automated web testng tool for our
application and had WebTest
recommended to me but haven't yet had any success as we're using basic
http authentication for logging in.
I have set up the correct username and password as attributes of the
invoke step but receive a MalformedChallengeException. :-

  INFO (com.canoo.webtest.ant.WebtestTask) - Starting webtest "myTest"
(D:\webtest\simple-test.xml:17: )
 INFO (com.canoo.webtest.ant.WebtestTask) - Canoo Webtest: R_1594.
 INFO (com.canoo.webtest.engine.Configuration) - Creating result
directory: D:\webtest\webtest-results
 INFO (com.canoo.webtest.engine.Configuration) - Surfing with browser
Mozilla/4.0 (compatible; MSIE 6.0b; Windows 98)
 INFO (com.canoo.webtest.steps.Step) - >>>> Start Step: steps (1/2)
 INFO (com.canoo.webtest.steps.Step) - >>>> Start Step: invoke "Get the
page" (1/2)
 INFO (com.canoo.webtest.steps.request.AbstractTargetAction) - ->
gotoTarget by URL:
http://localhost:7001/ros.bops.presentation.ui/ros/bops/presentation/ui/
workflow/pageflows/begin.do
 INFO (com.canoo.webtest.steps.request.TargetHelper) - getting response
for url:
http://localhost:7001/ros.bops.presentation.ui/ros/bops/presentation/ui/
workflow/pageflows/begin.do
 INFO (com.canoo.webtest.steps.request.TargetHelper) - Setting password
for username: Bops_admin
 INFO (org.apache.commons.httpclient.auth.AuthChallengeProcessor) -
basic authentication scheme selected
ERROR (org.apache.commons.httpclient.HttpMethodDirector) - Invalid
challenge: Basic
org.apache.commons.httpclient.auth.MalformedChallengeException: Invalid
challenge: Basic
        at
org.apache.commons.httpclient.auth.AuthChallengeParser.extractParams(Aut
hChallengeParser.java:97)
        at
org.apache.commons.httpclient.auth.RFC2617Scheme.processChallenge(RFC261
7Scheme.java:93)
        at
org.apache.commons.httpclient.auth.BasicScheme.processChallenge(BasicSch
eme.java:111)
        at
org.apache.commons.httpclient.auth.AuthChallengeProcessor.processChallen
ge(AuthChallengeProcessor.java:161)
        at
org.apache.commons.httpclient.HttpMethodDirector.processWWWAuthChallenge
(HttpMethodDirector.java:689)
        at
org.apache.commons.httpclient.HttpMethodDirector.processAuthenticationRe
sponse(HttpMethodDirector.java:663)
        at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMetho
dDirector.java:192)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3
96)
        at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:3
46)
        at
com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConne
ction.java:126)
        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.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)
 INFO (com.gargoylesoftware.htmlunit.WebClient) - statusCode=[401]
contentType=[text/html]
 INFO (com.gargoylesoftware.htmlunit.WebClient) - <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Draft//EN">
<HTML>
<HEAD>
<TITLE>Error 401--Unauthorized</TITLE>
<META NAME="GENERATOR" CONTENT="WebLogic Server">
</HEAD>
<BODY bgcolor="white">
<FONT FACE=Helvetica><BR CLEAR=all>
<TABLE border=0 cellspacing=5><TR><TD><BR CLEAR=all>
<FONT FACE="Helvetica" COLOR="black" SIZE="3"><H2>Error
401--Unauthorized</H2>
</FONT></TD></TR>
</TABLE>
<TABLE border=0 width=100% cellpadding=10><TR><TD VALIGN=top WIDTH=100%
BGCOLOR=white><FONT FACE="Courier New"><FONT FACE="Helvetica"
SIZE="3"><H3>From RFC 2068 <i>Hypertext Transfer Protocol --
HTTP/1.1</i>:</H3>
</FONT><FONT FACE="Helvetica" SIZE="3"><H4>10.4.2 401 Unauthorized</H4>
</FONT><P><FONT FACE="Courier New">The request requires user
authentication. The response MUST include a WWW-Authenticate header
field (section 14.46) containing a challenge applicable to the requested
resource. The client MAY repeat the request with a suitable
Authorization header field (section 14.8). If the request already
included Authorization credentials, then the 401 response indicates that
authorization has been refused for those credentials. If the 401
response contains the same challenge as the prior response, and the user
agent has already attempted authentication at least once, then the user
SHOULD be presented the entity that was given in the response, since
that entity MAY include relevant diagnostic information. HTTP access
authentication is explained in section 11.</FONT></P>
</FONT></TD></TR>
</TABLE>

</BODY>
</HTML>


I've used a http header analyser to confirm the server response contains
the challenge header in the correct format.
Just wanted to check if anyone else had experienced a similar problem or
if there is another means for submitting the 
username & password. Thanks,

Ben Nisbet

Reply via email to