Selenium简介
1.1是什么?有什么用
我们用户上网是通过Web浏览器经过Internet访问各个站点的Web应用的。浏览器和Web Server之间是通过Http协议进行交互的。对测试人员来说,根据模拟的对象,常见的Web应用的自动化测试有两种方式。
- 方式一:模拟整个http客户端,就是不需要浏览器,直接用测试工具模拟浏览器发送http请求给服务端。如下图所示。这种方式最常见的是性能测试工具(想一想,为什么),比如Jmeter等。
- 方式二:模拟用户操作
这种方式,测试程序模拟用户操作浏览器(比如chrome、火狐等),进行对整个web应用进行测试,如下图所示
image.png这种测试常见于功能测试工具,我们要讲的Selenium,就是典型代表。
Selenium官网开头这样写着:Selenium可以(用程序控制)自动化浏览器。这是它的能力。至于你怎么用这种能力,用到什么程度,完全看你了。你可以只把他用在自动化测试方面,也可以用在日常的web操作上,比如100个新员工注册公司内部平台账号,又比如在12306网抢票。当今世界,web应用非常广泛。而web应用的客户端就是浏览器,也是驱动web应用的最源头,所以,驱动了浏览器,就基本驱动、控制整个web应用。而Selenium就是为了从浏览器端自动化web应用,量身定做的开源项目。可以这么说,目前它已经是这个领域最广泛使用的开元工具了。web测试自动化是很多公司控制成本,提高效率的急迫需求。所以我们打开招聘类网站,对测试人员(尤其是测试开发)的招聘说明中经常把Selenium技能作为一项重要的加分项目。Selenium目前已经获得主流web浏览器(比如Chrome、Firefox、Safari、Opera、Edge)的官方的驱动支持,自动化能力强,效率高。
1.2工具包里有什么
Selenium是一个工具包,里面有好几种工具用作不同web自动化用途。主要有下面这样常用的工具
- Selenium RC (Selenium 1)
Selenium RC就是Selenium 1,它是Selenium 2 和 3之前的版本。现在也仍然在维护中。和Selenium 2 、3使用Web Driver的方式不同,Selenium1主要依靠的是Remote Server将Selenium Core(Selenium 命令解释器)注入到浏览器,通过JavaScript实现Web 自动化。下面是其原理示意图
image.png- Selenium Web Driver (Selenium 2、Selenium 3)
Selenium Web Driver提供了web自动化的各种语言(java,python,ruby等等)调用接口库和各种浏览器的驱动(Web driver)。这是课程的重点,后面会详细讲解。下面是其原理的示意图
image.png目前有两个版本Selenium 2和Selenium 3。Selenium WebDriver几乎支持目前所有的浏览器。
-
Selenium IDE
Selenium IDE是火狐(Firefox)的一个插件,它提供了一个图形化界面,实现简单的IDE功能。它可以录制、回放用户在web页面上的操作,并可以编辑、调试命令,还能将命令脚本导出成不同的语言的Selenium自动化脚本。下面是其界面示例。
- Selenium Grid
Selenium Grid可以用来在多台机器上同时执行Selenium自动测试。如果要执行的测试用例非常多,或者其中某些测试非常耗时,可以使用这种方法。