We have a portal login page which I have to monitor but I'm unable to
change. I've been playing around with webtest build number = R_1641,
under Redhat AS5 (jdk1.6.0_03/bin/java, Apache Ant version 1.6.5) and
I've managed to check secure pages with a little difficulty (until I
found the keytool reference); but I've had nothing but trouble with our
portal page:
The problem appears to be javascript that does a
location.href='https://i.flinders.edu.au/portal/page/portal/ifdev/iflinders/login'
The two files I'm using are:
*** iflinders.properties *****
webtest.home=/usr/local/webtest
host=i.flinders.edu.au
port=80
context=/
*** iflinders.xml ****
<project name="MailReaderTest" basedir="." default="main">
<property file="iflinders.properties"/>
<property name="webtest.connectioninitializer"
value="com.canoo.webtest.security.SunJsseBaseConnectionInitializer"/>
<property name="webtest.truststore.file"
value="certs/iflinders.keystore" />
<property name="webtest.truststore.passphrase" value="test123" />
<import file="${webtest.home}/webtest.xml"/>
<taskdef file="/${webtest.home}/webtestTaskdefs.properties">
<classpath>
<fileset dir="${webtest.home}" includes="**/lib/*.jar"/>
</classpath>
</taskdef>
<target name="main">
<testSpec name="myTest">
<config
autorefresh="true"
host="${host}"
port="${port}"
protocol="http"
basepath="${context}"
summary="true"
showhtmlparseroutput="true"
saveresponse="true"
timeout="300"
resultpath="iflinders-results"
/>
<steps>
<!--
This test loads the home page of the flinders portal,
-->
<invoke description="Get the page: Flinders University: iFlinders"
url="http://i.flinders.edu.au"/>
<setInputField forLabel="FAN:" value="XXXXXX"/>
<setInputField forLabel="Password:" value="XXXXXX"/>
<clickButton label="Login"/>
<clickLink label="Logout here"/>
</steps>
</testSpec>
</target>
</project>
*** And the output is ***
Will use /usr/java/jdk1.6.0_03/bin/java
Buildfile: iflinders.xml
main:
[testSpec] INFO (com.canoo.webtest.ant.WebtestTask) - Starting webtest
"myTest" (/opt/home/eame0002/Simple/iflinders.xml:19: )
[testSpec] INFO (com.canoo.webtest.ant.WebtestTask) - Canoo Webtest: R_1641.
[config] INFO (com.canoo.webtest.engine.Configuration) - Creating result
directory: /opt/home/eame0002/Simple/iflinders-results/013_MyTest
[config] INFO (com.canoo.webtest.engine.Configuration) - Surfing with
browser 4.0 (compatible; MSIE 6.0; Windows 98)
[steps] INFO (com.canoo.webtest.steps.Step) - >>>> Start Step: steps (1/5)
[invoke] INFO (com.canoo.webtest.steps.Step) - >>>> Start Step: invoke "Get the
page: Flinders University: iFlinders" (1/5)
[invoke] INFO (com.canoo.webtest.steps.request.TargetHelper) - getting
response for url: http://i.flinders.edu.au
[invoke] INFO (com.canoo.webtest.steps.request.TargetHelper) - Using custom
initializer: com.canoo.webtest.security.SunJsseBaseConnectionInitializer
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Content of
window changed to http://i.flinders.edu.au (text/html)
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Content loaded
in newly opened window, its content will become current response
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Current form set
to none
[invoke] INFO (com.canoo.webtest.engine.WebClientContext) - Current response
now: http://i.flinders.edu.au
INFO (org.apache.commons.httpclient.HttpMethodDirector) - Redirect requested
but followRedirects is disabled
ERROR (com.gargoylesoftware.htmlunit.javascript.host.Location) -
jsxSet_location("https://i.flinders.edu.au/portal/page/portal/ifdev/iflinders/login")
Got IOException
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
DELETED TO SAVE SPACE
at org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2251)
at
org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:161)
at
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:340)
at
com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:186)
at
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2758)
at
org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:172)
at org.mozilla.javascript.Context.evaluateString(Context.java:1132)
at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:386)
at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:508)
at org.mozilla.javascript.Context.call(Context.java:528)
at org.mozilla.javascript.Context.call(Context.java:450)
at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:394)
at
com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:764)
at
com.gargoylesoftware.htmlunit.javascript.host.JavaScriptBackgroundJob.run(JavaScriptBackgroundJob.java:109)
at java.lang.Thread.run(Thread.java:619)
at
com.gargoylesoftware.htmlunit.ThreadManager$1.run(ThreadManager.java:120)
ERROR (com.gargoylesoftware.htmlunit.javascript.host.JavaScriptBackgroundJob) -
Caught exception in Window.setTimeout()
======= EXCEPTION START ========
Exception class=[org.mozilla.javascript.WrappedException]
com.gargoylesoftware.htmlunit.ScriptException: Wrapped
java.net.ConnectException: Connection refused (JavaScriptBackgroundJob#1)
at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:512)
at org.mozilla.javascript.Context.call(Context.java:528)
at org.mozilla.javascript.Context.call(Context.java:450)
at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:394)
[setInputField] at
com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:764)
[setInputField] at
com.gargoylesoftware.htmlunit.javascript.host.JavaScriptBackgroundJob.run(JavaScriptBackgroundJob.java:109)
[setInputField] at java.lang.Thread.run(Thread.java:619)
[setInputField] at
com.gargoylesoftware.htmlunit.ThreadManager$1.run(ThreadManager.java:120)
[setInputField] Caused by: org.mozilla.javascript.WrappedException: Wrapped
java.net.ConnectException: Connection refused (JavaScriptBackgroundJob#1)
[setInputField] at
org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1693)
[setInputField] at
org.mozilla.javascript.MemberBox.invoke(MemberBox.java:160)
[setInputField] at
org.mozilla.javascript.ScriptableObject.setBySetter(ScriptableObject.java:1715)
[setInputField] at
org.mozilla.javascript.ScriptableObject.put(ScriptableObject.java:242)
[setInputField] at
org.mozilla.javascript.ScriptableObject.putProperty(ScriptableObject.java:1403)
[setInputField] at
org.mozilla.javascript.ScriptRuntime.setObjectProp(ScriptRuntime.java:1435)
DELETED TO SAVE SPACE
[setInputField] at
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:340)
[setInputField] at
com.gargoylesoftware.htmlunit.javascript.HtmlUnitContextFactory.doTopCall(HtmlUnitContextFactory.java:186)
[setInputField] at
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2758)
[setInputField] at
org.mozilla.javascript.InterpretedFunction.exec(InterpretedFunction.java:172)
[setInputField] at
org.mozilla.javascript.Context.evaluateString(Context.java:1132)
[setInputField] at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$3.doRun(JavaScriptEngine.java:386)
[setInputField] at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:508)
[setInputField] at org.mozilla.javascript.Context.call(Context.java:528)
[setInputField] at org.mozilla.javascript.Context.call(Context.java:450)
[setInputField] at
com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:394)
[setInputField] at
com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptIfPossible(HtmlPage.java:764)
[setInputField] at
com.gargoylesoftware.htmlunit.javascript.host.JavaScriptBackgroundJob.run(JavaScriptBackgroundJob.java:109)
[setInputField] at java.lang.Thread.run(Thread.java:619)
[setInputField] at
com.gargoylesoftware.htmlunit.ThreadManager$1.run(ThreadManager.java:120)
[setInputField] == CALLING JAVASCRIPT ==
[setInputField]
location.href='https://i.flinders.edu.au/portal/page/portal/ifdev/iflinders/login'
[setInputField] ======= EXCEPTION END ========
[setInputField] INFO (com.canoo.webtest.steps.Step) - >>>> Start Step:
setInputField (2/5)
INFO (com.canoo.webtest.engine.WebClientContext) - Responses restored
INFO (com.canoo.webtest.ant.WebtestTask) - Finished executing webtest "myTest"
(/opt/home/eame0002/Simple/iflinders.xml:19: )
INFO (com.canoo.webtest.reporting.XmlReporter) - Writing report to
/opt/home/eame0002/Simple/iflinders-results/013_MyTest/WebTestReport.xml
INFO (com.canoo.webtest.ant.WebtestTask) - Test report successfully created.
--
Richard Eames
Information Services
Flinders University
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest