groovy webtest блокирует корневой контекст при вызове URL-адреса
-
19-08-2019 - |
Вопрос
Я пытаюсь разобраться в canoo webtest
Я настраиваю простой groovy webtest.Я даже создал и запустил xml-эквивалент, и я получаю ту же ошибку, когда он пытается закодировать URL.
Я получаю сообщение об ошибке, когда я использую контекстный корень.Я не получаю сообщение об ошибке, когда я просто использую URL без корня контекста. ie."http://somesite.com"
Помимо наличия дополнительных букв и тому подобного, есть также другая косая черта, но, по-видимому, глупый декодер байт-кода мог обрабатывать косые черты в части http://...Почему не что-то столь же простое, как каталог
Я бы подумал, что webtest сможет обрабатывать что-то столь простое, как каталог внутри сайта или контекстный корень, или, по крайней мере, правильно обнаруживать и кодировать данные.Загрузка любого типа URL-адреса имела бы первостепенное значение, если бы вы писали приложение под названием "Веб"-тест..
invoke(url: "http://somesite.com/CONTEXTRoot", description: "Load dev java site")
verifyTitle("Title to check")
или
<?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>
Отслеживание стека:
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)
Решение
Я заставил это работать при вызове, когда изменил тег meta и page в моем jsp
От
<%@ 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">
Для
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
Я отправил ошибку JIRA по этому поводу, поскольку ошибка возникает только во время вызова, а не при отправке формы и щелчках по ссылке.