图2.4 Selenium IDE回放
最后脚本调试完毕之后,将脚本保存成自己需要的代码即可,本文存成java代码脚本。 如图2.5:
图2.5脚本代码转换
保存后的脚本java代码为:
package com.example.tests;
import com.thoughtworks.selenium.*;
import org.testng.annotations.*;
import static org.testng.Assert.*;
import java.util.regex.Pattern;
public class java1 extends SeleneseTestNgHelper {
@Test public void testJava1() throws Exception {
selenium.open("/");
selenium.type("id=kw", "中国");
selenium.click("id=su");
}
}
2.1.2 Selenium RC
全称为Selenium Remote Control。Selenium RC包含Selenium Core,能针对任何支持JavaScript的浏览器进行页面自动化测试。Selenium Core是Selenium技术中的核心驱动模块,是一个由JavaScript脚本语言编写的驱动工具,可以操作Web页面中HTML标签元素,是Selenium IDE和Selenium RC工作的驱动引擎。
它在Web浏览器与被测Web应用之间架设一个代理服务器(Selenium Server),采用Java语言实现,使得JavaScript引擎与被测Web应用同源,绕开同源策略(见2.1.3介绍)的限制(Same Origin Policy),进而取得对Web页面进行各种操作的权限。提供多种编程语言支持,具有多种浏览器支持,使用灵活,易于扩展,便于文护的特点。
Selenium RC作为Selenium框架中的主要工具,支持使用高级编程语言如Java、PHP、Ruby、C#等编写Web页面测试脚本,同时几乎支持目前所有主流浏览器。其编写的测试脚本能够跨平台运行。运用Selenese编写的脚本命令能够通过Selenium RC转换成相应的高级语言脚本,实现各种复杂的逻辑测试。
1、RC组件
Selenium RC工具中,主要由两个组件协同工作来实现RC的功能。分别是Selenium Server(以下称SServer)和Client libraries。在实际过程中,RC组件的功能如表2.1所示:
表2.1 Selenium RC组件功能
组件名称 功能描述
Selenium Server 1、 为测试过程启动和关闭浏览器
2、 解释和运行与测试用例脚本对应的Selenium命令
3、 扮演HTTP代理服务器角色,拦截和验证HTTP协议信息以绕过同源策略实现浏览器与AUT之间通信。
Client libraries 1、 提供客户端驱动功能
2、 为所支持的编程语言提供与Selenium Server之间的通信接口,实现RC客户端与服务器之间信息交互。
Selenium服务器负责传递JavaScript脚本形式的Selenese测试命令到浏览器端执行,在浏览器端,通过调用JavaScript解释器来执行Selenese命令,这个过程会执行命令中指定的Actions并验证每一个操作过程的结果。图2.6显示了Selenium Server、Client libraries 与客户端之间的关系:
图2.6 Selenium RC架构图[40]
图2.6清晰描述了Selenium RC各组件与浏览器、用户测试用例之间的关系。测试人员使用Java、PHP等高级语言编写测试驱动代码时,通过调用Client libraries所提供的客户端驱动类,实现测试用例驱动程序与相应的Selenese命令之间的映射,从而实现与SServer之间的通信,SServer中的Selenium Core通过调用浏览器的JS解释器来解释并执行Selenese测试命令,从而实现测试脚本在浏览器端对AUT的测试。Selenium RC能够轻松完成包括复杂条件逻辑控制、循环迭代和数据库集成等复杂的测试任务。 基于FitNium的Web关键字驱动的测试(4):http://www.youerw.com/jisuanji/lunwen_8907.html