paulwong

Watij入门

Watij介绍

Javadoc API for Watij

http://watij.sourceforge.net/docs/api/index.html?watij/IE.html

第三章 Watij环境设置

3.1 Watij环境要求

l Watij 3.2.1

l JDK 1.5

l Java IDE(本文中使用Eclipse

3.2 Watij安装及设置

l 下载软件包

Watij 3.2.1

下载地址:http://sourceforge.net/project/showfiles.php?group_id=165206

JDK 1.5

下载地址:http://java.sun.com/javase/downloads/index_jdk5.jsp

l 安装&配置

Ø 安装JDK1.5

Ø 解压watij_release_3.2.1.zip

Ø 拷贝watij_release_3.2.1/ jniwrap.dllC:/windows/system32/;

Ø 配置Eclipse的编译器为JDK1.5;

依次打开Window->Preferences->Java->Compiler,设置“Compiler compliance level”为5.0

3.2-1 配置JDK

l 新建工程

Ø 依次打开New->Project,选择“Java Project”,点击“Next

Ø Project Name”中输入“Watij”,点击“Next

Ø 在“Java Settings”中选择“Libraries”选项卡,点击“Add External JARs”,如图3.2-2所示

Ø 添加“watij.jar”和lib目录下的所有jar,点击“Finish”,如图3.2-2所示

3.2-2 添加Jar包到classpath

第四章 Watij Examples

4.1 HP Web Tours

4.1.1 显示登录页面

这部分主要描述如何打开IE浏览器、IE导航、IE窗口的设置与调整。

本次Web自动化测试的例子使用LoadRunner中自带的HP Web Tours

如没有安装LoadRunner,可在其他已安装过的机器上拷贝X:/Mercury/LoadRunner/WebTours目录,执行“StartServer.bat”以启动Web Server(没有试验过,理论上可以);或者使用其他网址替换掉4.1.1中的http://127.0.0.1:1080/WebTours/”来练习,但是4.1.2及以后的例子将不再适用。 下面就开始Watij的自动化测试之旅了。

1. 启动Web Server(图4.1-1)。本例中使用LoadRunner的实例HP Tours作为本次WEB自动化测试的对象。

4.1-1 启动Web Server

 

2. 打开Eclipse,新建一个“Junit Test Case”(图4.1-2),输入“Name”为“HpTours”(图4.1-3),点击“Finish

4.1-2 新建Junit Test Case

 

4.1-3 输入TestCaseName


3.
输入以下代码:

import junit.framework.TestCase;
import watij.runtime.ie.IE;
import static watij.finders.SymbolFactory.*;

public class HpTours extends TestCase {
public void testHpTours () throws Exception {
IE ie 
= new IE();

//打开 IE 浏览器
ie.start();
//转到 “http://127.0.0.1:1080/WebTours/”
ie.goTo("http://127.0.0.1:1080/WebTours/");
}

}


4. 运行:输入以上代码并保存后,选择“Run as->JUnit Test”,如图4.1-4所示。

4.1-4 运行


5.
执行结果:执行过程没有错误时,JUnit执行状态显示绿色(图4.1-5),并且打开HP Web Tours的登录页面(图4.1-6)。

4.1-5 JUnit执行状态

4.1-6 登录页面

6. 代码解释:


1)
在打开IE浏览器之前,需要实例化一个IE对象:

IE ie = new IE();


2) 使用start方法,打开新的IE浏览器:

IE ie = new IE();
ie.start();

 

也可以打开浏览器后转到某个URL

IE ie = new IE();
ie.start(
"http://google.com");


3)
IE导航的几种方法:

ie.goTo("http://www.baidu.com"); //转到www.baidu.com
ie.navigate("http://www.google.com"); //转到www.google.com,同goTo
ie.forward(); //转到历史列表中的前一个地址
ie.back(); //转到历史列表中的后一个地址

 


4)
IE窗口设置、调整:

 

 

ie.bringToFront(); //将IE窗口置为最前
ie.focus(); //设置为当前焦点
ie.maximize(); //最大化窗口
ie.minimize(); //最小化窗口
ie.restore(); //重置窗口为之前的状态
ie.fullScreen(true); //turns the window's full screen mode on
ie.fullScreen(false); //turns the window's screen mode back to normal
ie.theatreMode(true); //turns the window's theatre mode on
ie.theatreMode(false); //turns the window's screen mode back to normal

ie.visible(
false); //隐藏窗口
ie.visible(true); //显示窗口
ie.left(100); //调整窗口位置
ie.top(200); //调整窗口位置


4.1.2 用户登录测试

模拟用户输入;登录成功后,验证提示信息及HTML元素数量。

启动WEB服务器及新建JUnit Test Case步骤,请参考4.1.1

1. 输入以下代码:

import watij.runtime.ie.IE;
import junit.framework.TestCase;
import static watij.finders.SymbolFactory.*;

public class LoginWithRightUsernamePassword extends TestCase {

public void testLoginWebTours () throws Exception {

int button_id;
int button_numbers = 4;
String[] button_src 
= new String[button_numbers];

IE ie 
= new IE();
ie.start();
ie.bringToFront();
ie.goTo(
"http://127.0.0.1:1080/WebTours");
ie.frame(
"body").frame("navbar").textField(name, "username").set("jojo");
ie.frame(
"body").frame("navbar").textField(name, "password").set("bean");
ie.frame(
"body").frame("navbar").button(value, "Login").click();

// Verify user "jojo" has logged in and four buttons displayed 
assertTrue( ie.frame("body").frame("info").containsText("jojo") );

for (button_id=0; button_id<button_numbers; button_id++{
button_src[button_id] 
= ie.frame("body").frame("navbar").images().get(button_id).src();
}

// Capture current Screen
ie.focus();
ie.maximize();
ie.screenCapture(
"d://login_PASSED.png");
}

}



2.代码解释:

1) 输入用户名、密码:

Watij根据HTML标签提供的文字输入列的nameid或其他属性来设置其值。textfieldHTML代码形如:

 

<input type=text name=username value='' size=14 maxlength=14>

<input type=password name=password value='' size=14 maxlength=14>


输入用户名、密码,可以使用如下方法:

ie.textField(name, “username”).set(“jojo”);
ie.textField(name, “password”).set(“bean”);


获取某个textfield的值,使用:

ie.textField(name, “username”).get();
ie.textField(name, “password”).get();


2) 点击Login,登录:

Watijbutton支持的HTML对象包括:<input> 标签typeimagesubmitbuttonreset

<input type=image name=login value=Login alt=Login border=1 src='/WebTours/images/mer_login.gif'>

<input type="submit" id="SubmitLoginBTN" value="登录(L)" accesskey="L" class="loginSubmit" />

<input type="button" value="登录" name="btnSubmit">


使用buttonclick方法来模拟用户点击操作:

ie.button(value, “Login”).click();
ie.button(id, “SubmitLoginBTN”).click();
ie.button(name, “btnSubmit”).click();


3) 验证用户是否已经登录:

验证该用户是否已经登录,可以通过提示信息是否包含该用户的名字以及左边框架中包含四个buttons来验证。验证HTML body中是否包含某些文本,使用如下方法:

ie.containsText(“jojo”);


它的返回值是TrueFalse,可以使用断言来验证该用户是否已登录:

assertTrue( ie.containsText(“jojo”) );


4) 截图:

最后,要保存一下测试结果,即将登录后窗口截图。如下代码,会将当前屏幕截图保存到d:/login_PASSED.png

ie.screenCapture(“d://login_PASSED.png”);

posted on 2012-01-03 22:01 paulwong 阅读(2244) 评论(0)  编辑  收藏 所属分类: TESTIGN


只有注册用户登录后才能发表评论。


网站导航: