groovy webtest soffoca sulla root di contesto nell'URL invoke
-
19-08-2019 - |
Domanda
Sto cercando di avvolgere la testa attorno al canoo webtest
Ho installato un semplice test web groovy. Ho persino creato ed eseguito l'equivalente xml e ottengo lo stesso errore quando tenta di codificare l'URL.
Ricevo un errore quando utilizzo una root di contesto.
Non ottengo un errore quando uso solo l'URL senza la root di contesto. . Per esempio " http: //somesite.com"
Oltre alle lettere extra e così c'è anche un'altra barra ma apparentemente lo stupido decodificatore di codice byte potrebbe gestire le barre con la parte http: // ... Perché non qualcosa di così semplice come una directory
Penso che webtest sarebbe in grado di gestire qualcosa di semplice come una directory all'interno di un sito o una root di contesto o almeno di rilevare e codificare correttamente i dati. Il caricamento di qualsiasi tipo di url sarebbe di fondamentale importanza se si scrivesse un'applicazione chiamata " Web & test;
invoke(url: "http://somesite.com/CONTEXTRoot", description: "Load dev java site")
verifyTitle("Title to check")
o
<?xml version="1.0" ?>
<!DOCTYPE project SYSTEM "../dtd/Project.dtd">
<project default="test">
<target name="test">
<webtest name="check login and welcome page load and work">
<invoke description="Go to dev site"
url="http://devsite.com/CONTEXTRoot/" />
<clickButton label="Enter Application" />
</webtest>
</target>
</project>
Stacktrace:
E:\canoo\WebSiteFunctionalTests\tests\WebSiteWebTest.xml:11: Unexpected exception caught: sun.io.MalformedInputException
at com.canoo.webtest.steps.StepUtil.handleException(StepUtil.java:120)
at com.canoo.webtest.steps.Step.handleException(Step.java:379)
at com.canoo.webtest.steps.Step.execute(Step.java:110)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
...
Caused by: sun.io.MalformedInputException
at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java:262)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:314)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:364)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:250)
at java.io.InputStreamReader.read(InputStreamReader.java:212)
at org.cyberneko.html.HTMLScanner.load(HTMLScanner.java:1166)
at org.cyberneko.html.HTMLScanner.read(HTMLScanner.java:1127)
at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1913)
at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:893)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:495)
at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:448)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at com.gargoylesoftware.htmlunit.html.HTMLParser$HtmlUnitDOMBuilder.parse(HTMLParser.java:680)
at com.gargoylesoftware.htmlunit.html.HTMLParser.parse(HTMLParser.java:240)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createHtmlPage(DefaultPageCreator.java:127)
at com.gargoylesoftware.htmlunit.DefaultPageCreator.createPage(DefaultPageCreator.java:101)
at com.canoo.webtest.engine.Configuration$2.createPage(Configuration.java:655)
Soluzione
L'ho fatto funzionare sull'invocazione quando ho cambiato il tag meta e page nel mio jsp
da
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
a
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
Ho inviato un bug JIRA al riguardo poiché l'errore si verifica solo durante un invoke e non su invii di moduli e clic sui collegamenti.