Selenium1 框架的了解
优点:成熟、稳定与全面
缺点:受到JavaScript安全模型的导致的限制,并且编程的过程更加的像面向过程而不是面向对象。
(可以使用的语言:java,JavaScript,Ruby,PHP,Python,Perl以及c#)
Selenium 服务器,
1)它负责启动或者关闭浏览器,
2)解释和运行从测试程序中传来的Selenese命令
3)扮演http代理的角色
4)截获和验证在浏览器和被测试的应用程序之间传递http消息
脚本———(命令)———> Selenium服务器(解释,执行)————>反馈测试结果————>脚本
rc服务器捆绑Selenium core并且自动注入浏览器。
(脚本打开浏览器的时候(使用客户端库文件的api函数([打开的]))
总结:脚本调用客户端文库的api启动浏览器,并且将必要的库(Selenium core库)注入到浏览器中,这些库都是js语言编写的程序,所以浏览器中的js解释器被调用并且执行。
Selenium客户端
客户端文件提供各种编程语言和Selenium RC服务器之间的接口。
提供编程支持,可以知己设置Selenium脚本来执行测试,并且语言各个版本都有相应的功能函数的api对应。
总结:提供API的调用支持。(也就是脚本是调用相关的api来通过server实现b/s之间的通讯)
脚本<=========> 远程服务器(Remote Control Server) <=======>浏览器(被测试的应用程序:Selenium 核心)
(包中含有Selenium1 和Selenium2的API)
http://docs.seleniumhq.org/download/ 下载地址
下载Selenium类库,解压之后的文件介绍:
libs :包含各种java的相关的基础框架
CHANGELOG(changelog):Selenium的变更情况
selenium-java-2.48.2.jar:Selenium1和Selenium2 主要的api文件,自动化测试就是需要这个类库来实现。
selenium-java-2.48.2-srcs.jar:Selenium的部分源代码
先关测试例子的代码:
package org.example.selenium1;
import com.thoughtworks.selenium.*;//导入Selenium包中的内容
//Selenium1的测试
public class Selenium1Test {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("deprecation")
//这些方法都已经过时了,应该使用什么方法来进行替换???
DefaultSelenium selenium = new DefaultSelenium("localhost",4444,"*chrome","http://www.google.com");
//创建了Selenium测试实例,有四个参数
/*
serverHost :Selenium服务器的主机的ip
serverPort :Selenium 服务器的端口 ,默认是4444
browserString:用于加载浏览器,可以使用“*浏览器名”方式加载,也可以通过浏览器的绝对路径
browserURL:只包含域名的起始url,浏览器会指向该url上的资源
*/
selenium.start(); //打开对应的浏览器和控制界面
selenium.open("http://www.baidu.com");
String title = selenium.getTitle();
// System.out.println(title);
// selenium.open("http://www.google.com");
/*try{
Thread.sleep(3000);
}catch(InterruptedException e){
e.printStackTrace(); //打印跟踪
}*/
//这样就可以写入其他的代码来对浏览器控制,也就是对网页工程的控制
// selenium.goBack();
}
}