public void testPageFlow() throws Exception {
WebClient webClient = new WebClient();
HtmlPage page = (HtmlPage)webClient.getPage(
new URL( "http://localhost:7001/JPFWebProject/multipleForms/multipleFormsController.jpf" ) );
HtmlAnchor anchor = page.getFirstAnchorByText( "Show the JSP with blank form fields." );
HtmlPage page2 = (HtmlPage)anchor.click();
HtmlForm form = (HtmlForm)page2.getFormByName( "form1" );
Iterator elements = form.getAllSubmittableElements().iterator();
int count = 1;
while( elements.hasNext() ) {
HtmlElement element = (HtmlElement)elements.next();
assertTrue( element instanceof HtmlTextInput );
HtmlTextInput textInput = (HtmlTextInput)element;
textInput.setValueAttribute( "Value" + count++ );
}
HtmlPage page3 = (HtmlPage)form.submit();
String pageText = page3.asText();
assertTrue( pageText.indexOf( "Field A = \"Value1\"" ) != -1 );
assertTrue( pageText.indexOf( "Field B = \"Value2\"" ) != -1 );
}
测试本身是相当直观的。它首先创建了一个WebClient对象,该对象负责响应Web浏览器。然后,它发出一个请求给页面流的URL所代表的服务器。测试查找带有文本“Show the JSP with blank form fields”的链接。它点击链接,然后在结果页面中定位表单。在通过表单元素进行迭代和给它们赋值之后,测试提交了表单,并在结果页面中查找这些值。
如果您要在您的站点上使用NetUI,要小心标签库通常不会为表单元素生成非常简单的名称。通常这没有关系,因为无论是作为开发人员的你,还是最终用户都不需要关心名称,但是当编写测试时,您通常需要给特定元素设置特殊值。通过在浏览器中查看页面的HTML源代码,您总是能够找出一个元素的名称。
Java Web Services(JWS)
像基于HTML的组件那样,可以通过HTTP从服务器外部访问Java Web Services。尽管JWS通过其WSDL提供一个更加稳定的API,但它可以使测试变得更加容易,因为输入和输出XML的形状变化的可能性比代表JSP输出的实际HTML要小。从web服务返回的XML没有包含格式信息,而格式信息可以使HTML由于布局影响而发生变化的可能性更大。
您可能想考虑从同一个客户端生产平台测试您的web服务。例如,如果您使用WebLogic Workshop在服务器上实现您的web服务,而且始终从在Microsoft .NET中编写的客户端调用它们,您可能会想在.NET中至少编写一些测试,以测试跨平台的交互。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-31119-8.html
有几个公司账目不造假
我跟你