Watij——Java开源Web测试工具
一个非常好用的Java Web测试框架,虽然这方面也曾经在HtmlUnit、JWebUnit和HttpUnit之间犹豫过,不发现了Watij之后就决定是它了。这里翻译一下官方的Quick Start Guide,更多内容请访问官方网站(http://watij.com)。
1.下载Watij
从https://sourceforge.net/project/showfiles.php?group_id=165206下载Watij的发布版本
解压watij_X_x.x.zip
2.安装
将jniwrap.dll复制到system32目录下(通常为C:/WINDOWS/system32/)
打开你最喜爱的IDE并创建一个工程(我最喜欢的是Intellj)
将watij.jar以及lib目录下的所有jar包都加入到工程的classpath中
创建一个JUnit TestCase,并确保包含这句话“import static watij.finders.SymbolFactory.\*;”
试着编写如下示例程序
注意:在/watij_X_xx/src/java-test/watij下可以查看示例程序
Google Search Test Example
import junit.framework.TestCase;
import static watij.finders.SymbolFactory.*;
public class GoogleTest extends TestCase {
public void testGoogleSearch() throws Exception {
IE ie = new IE();
ie.start("http://www.google.com");
ie.textField(name,"q").set("XWiki");
ie.button("Google Search").click();
assertTrue(ie.containsText("/Java wiki engine/"));
}
}
注意,具体方法可以查询Watij的Javadoc API文档。
使用BeanShell
在BeanShell中输入如下代码并运行
图。。。
再介绍些UserGuide中现有的内容
创建一个IE浏览器实例
IE ie = new IE();
启动一个IE浏览器实例
IE ie = new IE();
ie.start();
启动一个IE浏览器实例并访问Google
IE ie = new IE();
ie.start("http://www.google.com");
使用当前已经打开的IE浏览器
根据URL指定
IE ie = new IE();
ie.attach(url,"http://www.google.com")
根据标题指定
IE ie = new IE();
ie.attach(title,"Google");
IE导航
ie.goTo("http://www.mysite.com");用IE浏览器访问www.mysite.com
ie.navigate("http://www.mysite.com");功能同上
ie.forward(); 相当于浏览器中的“前进”
ie.back(); 相当与浏览器中的“后退”
窗口焦点、位置、大小以及模式的设置
ie.bringToFront(); //将窗口置于其他浏览器窗口之前
ie.focus(); //设定焦点为指定的ie窗口
ie.maximize(); //将窗口最大化,知道占满整个屏幕
ie.minimize(); //将窗口最小化
ie.restore(); //将窗口的大小设为上一次的大小。
ie.fullScreen(true); //打开窗口的全屏幕模式
ie.fullScreen(false); //禁止窗口的全屏幕模式
ie.theatreMode(true); //打开窗口的剧院(Theatre)模式
ie.theatreMode(false); //禁止窗口的剧院模式
ie.visible(false); //将窗口从桌面上隐藏起来
ie.visible(true); //恢复窗口可见
ie.left(100); /将窗口到屏幕的左边距设为100
ie.top(200); //将窗口到屏幕的上边距设为200
得到页面中name="button1"的按钮
ie.button(name,”button1”);
得到页面中name="deleteButton"的所有按钮集合
ie.buttons(name,”deleteButton”);
得到上面这个集合中的第二个元素,即页面中第二个name="deleteButton"的按钮
ie.buttons(name,”deleteButton”).get(1);
// OR
ie.buttons(name,”deleteButton”).button(1);
得到页面中name="deleteButton",value="delete"的所有按钮集合中的第三个按钮
Button button = ie.buttons(name,”deleteButton”).buttons(value,”Delete”).button(2);
得到页面中<MYTAG>的HTML元素
例如<MYTAG>My Text1</MYTAG>
ie.htmlElement(tag,”MYTAG”);
假如有
<MYTAG myattr1=”attribute1”>My Text1</MYTAG>
<MYTAG myattr2=”attribute2”>My Text2</MYTAG>
则可以通过如下方式得到第一个元素
ie.htmlElement(attribute(“myattr1”,"attribute1"));
其中htmlElement()中的参数还可以换成以下方式
tag(String tagName)
attribute(String name, String value)
index(int index)
text(String text)
name(String value)
value(String value)
caption(String value)
id(String value)
title(String value)
alt(String value)
src(String value)
action(String value)
method(String value)
url(String value)
href(String value)
xpath(String expression)
超链接
假如页面中有如下链接
<a href="http://google.com">Google</a>
则可以通过text,url和xpath三种方式得到该链接,并可以使用正则表达式作为参数,click()表示模拟点击该链接
ie.link(text,"Google").click();
ie.link(text,"/oogl/").click();
ie.link(url,"http://google.com").click();
ie.link(url,"/google.com/").click();
ie.link(xpath, "//A[@url='http://google.com']").click();
多选框
假如页面中有如下多选框
Check Me: <input name="checkme" value="1" type="checkbox">
则可以通过如下方式来实现勾选该多选框
ie.checkbox(name,"checkme").set();
ie.checkbox(value,"1").set();
ie.checkbox(xpath, "//INPUT[@name='checkme' and @value='1']").set();
还可以调用clear()来取消多选框的选中状态
单选框
假如页面中有如下单选框
Click Me: <input name="clickme" id="1" type="radio">
则可以通过如下方式来实现勾选该多选框
ie.radio(name,"clickme").set();
ie.radio(id,"1").set();
ie.radio(xpath, "//INPUT[@name='clickme' and @id='1']").set();
还可以调用clear()来取消单选框的选中状态
按钮
假如页面中有如下按钮
<input type = "submit" value = "ClickTheButton" name="b1"></input>
可以通过如下方式得到该按钮
ie.button(name, "b1").click();
ie.button(value,"ClickTheButton").click();
默认会根据按钮的value值来寻找该按钮,如
ie.button("ClickTheButton").click();
下拉列表
假如页面中有如下下拉列表
<select name = "selectme" > <option name="1">O1<option name="2">O2</select>
可以通过如下方式选中该下拉列表中的选项
//(finds the option in the select list with name 1)
ie.selectList(name, "selectme").option(name,"1").select();
//(finds the second option in the list)
ie.selectList(name, "selectme").option(index,1).select();
//(返回当前下拉列表是否可用,即disable的状态)
ie.selectList(name, "selectme").disabled();
可以使用clearSelection()方法清除下拉列表的选中状态。
图片
假如页面中有如下图片元素
<img src = images/square.jpg id=square title="square_image">
可以通过如下方式实现点击该图片
ie.image(src, "/square/").click();
ie.image(title, "square_image").hasLoaded();
ie.image(id,"square").width();
ie.image(xpath, "//IMAGE[@id='square']").click();
文本框和多行文本区域
假如页面中有如下文本框
<input name="username" type="text">
可以通过如下方式得到文本框的值,或设置其值
ie.textField(name, "username").set("myusername");
ie.textField(name, "username").value();
得到子浏览器
当当前浏览器打开一个新的浏览器窗口时,可以使用如下方法得到新的窗口
IE ie = new IE().start("www.mysite.com");
//lets click a link that causes a new window to popup
ie.link(name, "mylink").click();
//now lets get a handle on the child browser;
IE new_ie = ie.childBrowser();
http://www.51testing.com/html/28/116228-230188.html
http://www.cnblogs.com/keeping/archive/2010/09/23/1833303.html
相关推荐
【JAVA开源WEB测试工具详解】 在Java开源领域,有许多优秀的Web测试工具,这些工具帮助开发者和测试人员确保Web应用程序的功能性和稳定性。以下是一些主要的Java开源Web测试工具的详细介绍: 1. **HtmlUnit**:这...
《精通NetBeans——Java桌面、Web与企业级程序开发详解》是一本专为Java开发者设计的深入指南,它详尽地介绍了如何利用NetBeans IDE进行高效且高效的编程工作。NetBeans是一个开源的集成开发环境(IDE),广泛用于...
本文将深入探讨几个流行的开源Web测试工具,以帮助开发者和测试人员提升测试效率和软件质量。 首先,我们来了解自动化测试的重要性。在Web开发中,手动测试虽然直观,但效率低下,且难以重复。自动化测试可以节省...
jSeamless —— Java开源用Java创建一个完整的web站点 - **概述**:jSeamless 是一个基于Java的开源框架,用于创建完整的Web站点。 - **主要特性**: - 支持快速构建Web应用。 - 提供丰富的模板和组件库。 - **...
总之,《Java测试与设计——从单元测试到Web测试》不仅强调了测试在软件开发中的核心地位,还提供了实用的工具和方法论,帮助开发者构建高质量、高性能和安全的Java应用。通过深入理解并实践这些测试原则,开发者...
Java开源Web项目是全球开发者社区中的一个重要组成部分,它们为学习、开发和创新提供了丰富的资源。这些项目通常是基于Java编程语言构建的,旨在提供一个可扩展、高性能、安全且易于维护的Web应用程序框架。通过开源...
这个压缩包"ASP.NET源码——开源WEB在线SQL管理工具.zip"包含了一个基于ASP.NET的开源项目,允许用户通过Web界面进行SQL数据库的在线管理和操作。这样的工具对于开发者和DBA来说非常实用,因为它提供了远程访问和...
- **GlassFish服务器**:NetBeans默认集成了开源的GlassFish应用服务器,方便开发者进行Java EE应用的测试和部署。 4. **源代码管理** - **版本控制**:NetBeans支持多种版本控制系统,如Git、SVN等,方便团队...
NetBeans作为一个强大的开源集成开发环境(IDE),是Java开发者的得力工具,尤其在桌面应用、Web应用和企业级应用开发领域,其丰富的功能和易用性使其广受好评。 本书首先会引导读者熟悉NetBeans的安装和基本界面,...
《精通NetBeans——Java桌面、Web与企业级程序开发详解》是一本专注于使用NetBeans IDE进行Java编程的深度指南。这本书涵盖了广泛的Java开发领域,包括桌面应用、Web应用以及企业级解决方案。源码附件是作者为了配合...
《精通NetBeans——Java桌面、Web与企业级程序开发详解》是一本全面介绍使用NetBeans进行Java编程的书籍,提供了丰富的源代码实例。NetBeans是一款强大的集成开发环境(IDE),尤其在Java领域,它以其易用性和高效性...
MeyboMail Web(Java)开源简化_meybomailwebMeyboMail Web(Java)开源简化_meybomailwebMeyboMail Web(Java)开源简化_meybomailwebMeyboMail Web(Java)开源简化_meybomailwebMeyboMail Web(Java)开源简化_...
开源软件的网络安全问题——以开源协议与进出口监管的冲突展开.pdf
③Java EE: Java 语言的企业版,用于web方向的网站开发。 4)Java的主要特性: ①面向对象 ②安全性 ③多线程 ④简单易用 ⑤开源 ⑥跨平台 5)①JDK:Java开发工具包【JVM、核心类库、开发工具】 ②JRE:Java的...
Eclipse是一个免费开源跨操作系统的IDE,它本身的功能非常有限,需要靠插件来扩展功能,以应对实际的开发需要。随着时间的推移,有人把最有用的一些插件优化整理打包形成一个插件集,并开始出售,这就是MyEclipse,...
JAVA性能测试工具是IT行业中用于评估和优化JAVA应用程序性能的关键组件。这些工具旨在模拟真实世界的负载情况,帮助开发者识别和解决性能瓶颈,确保应用程序在高负载下仍能保持稳定和高效运行。以下是对几种主要JAVA...
《Mail Web开源版:构建B/S邮件系统客户端的探索与实践》 在信息化时代,电子邮件作为重要的通信工具,其便捷性和高效性不言而喻。本文将深入探讨一款名为"Mail Web开源版"的基于B/S(Browser/Server,浏览器/...
"Android源码——afinal开源框架实例源码_new_03.rar"是压缩包内的主要文件,可能包含了Afinal框架的具体实现代码,例如Java类文件、资源文件(如布局XML、图片等)、项目配置文件(如build.gradle)以及可能的文档...
【MeyboMail Web——基于Java的开源邮件系统解析】 MeyboMail Web是一个基于Java技术构建的开源邮件服务器系统,其源码提供给了开发者深入理解邮件服务后台处理的宝贵机会。这个项目主要针对那些想要学习JSP(Java ...