一. Selenium 基础
最近几年,Web自动化测试发展得非常迅速,自动化测试工具也从传统的工具QTP发展到现在开源的测试框架。传统的工具存在稳定性差,编程语言能力要求高,不易学等缺点,而现在的自动化测试框架都是开源的,兼容性强,可以使用多种语言开发等,所以这也是Web自动化测试发展迅速的主要原因。
1. Selenium 简介
Selenium 是一款免费的,开源的,基于Web页面的UI自动化测试工具,它可以支持多个浏览器,支持跨平台,支持多语言等。
Selenium提供了一套完善的测试函数,功能非常灵活,能够完成界面元素的定位,窗口的跳转,结果的比较等。
2. Selenium家族
Selenium 框架其实是由多个工具组成,分别是Selenium IDE,Selenium RC,Selenium WebDriver和Selenium Grid。
Selenium IDE:是一个可以通过录制操作完成基本脚本构建的工具,拥有简单易用的界面。它FireFox浏览器中的一个插件,可以录制用户的基本操作,生成测试脚本。
Selenium RC:它使用编程语言来创建更为复杂的测试,Selenium RC主要是由Client Libraries和Selenium Server组成的,Client Libraries主要通过编写测试脚本来控制Selenium Server库,而Selenium Server主要负责控制浏览器的行为,该库又包括三部分:Launcher,Http Proxy和Core。Selenium Core是一系列JavaScript函数的集合,只有通过JavaScript函数才可以实现用程序对浏览器进行相应的操作。而Launcher的作用主要是启动浏览器,然后将Selenium Core加载到浏览器页面中,通过Selenium Server的HttpProxy完成对应浏览器的代理设置。
Selenium WebDriver其实就是Selenium RC的升级版,是基于Selenium RC进行再次封装的,可以直接发送命令给浏览器。
Selenium Grid:用于运行不同的机器,不同的浏览器进行并行测试,目的就是加快测试用例的运行速度,从而减少测试运行的总时间。灵活利用Grid可以很简单地让多台机器在异构环境中运行测试用例。
3.安装Selenium及Selenium IDE
1)直接在DOS环境下执行命令pip install selenium即可。
2) 下载Selenium安装包手动的安装。
3)直接通过PyCharm集成工具进行安装。
4.浏览器驱动
在Selenium 3.x版中没有默认浏览器的支持,需要使用哪个浏览器完成自动化,就需要获取该浏览器官方提供的对应版本的驱动,这样会使各个浏览器在自动化测试中更加稳定。
5. Selenium 的运行原理
客户端(即用PyCharm设计的脚本)发送请求,基于JSON Wire格式的协议创建一个绑定特定端口的会话连接(Selenium RC),相当于服务器。
服务端又会根据不同的浏览器驱动来启动不同类型的浏览器,浏览器不同的类型(4中内核:IE,Firefox,Chrome,Opera),不同版本具有不同的驱动,此时服务器会将客户端发送过来的事件指令通过驱动在浏览器操作完成后会将结果返回给服务端,服务端将结果返回给客户端。