51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 5456|回复: 4
打印 上一主题 下一主题

[原创] Watij——Java Web 测试

[复制链接]
  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    跳转到指定楼层
    1#
    发表于 2011-2-27 15:58:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    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();
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2011-5-13 17:36:27 | 只看该作者
    您好,想问下版主,您现在还在用Watij么?期待您的回复.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2011-11-23 12:39:21 | 只看该作者
    回复 1# msnshow

    ------------------版本在线吗?向您请教一下WATIJ的问题?请问WATIJ能否用于exe进程框架的吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2011-11-26 11:34:08 | 只看该作者
    不能吧  进程非IE的话  就用不了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2011-12-19 12:48:34 | 只看该作者
    watj 和 selenium 比较 如何呢?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-28 13:58 , Processed in 0.077193 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表