Selenium
一、web自动化测试两种方式
1. 模拟整个http客户端:常用性能测试工具,如Jmeter, loadrunner。工具直接与Web Server交互,不需要浏览器的参与,被测对象包括整个前端(浏览器)和后端(Web服务器),所以忽略了前端代码逻辑,如页面功能。常用于Web后端与服务器的性能测试自动化。
2. 模拟用户操作:Selenium,人与浏览器交互,模拟人的操作,如点击、输入等。适合做功能测试的自动化。
二、Selenium是什么?
Selenium是自动化浏览器的工具包。
包括Web自动化的库和工具。
官方解释:Selenium可以用程序自动化控制浏览器,这是Selenium的能力。它不是专门就是为自动化测试用的,只是具备这样一种能力。比如可以利用Selenium进行抢票;或者Selenium自动运行程序进行表格输入。
Selenium得到主流浏览器的官方支持。
使用Selenium用于控制成本,提高效率。
三、Selenium工具包里有什么?
Selenium RC (Selenium 1):
工作原理--
自动化测试程序 (http协议) --》
Selenium Remote Control Server --》
Selenium Core --》Browser --》
Request-Response --》
Web server hosting
Selenium Web Driver (Selenium 2、3):
工作原理--
自动化测试程序(调用Selenium提供的客户端接口库发送消息给浏览器驱动。
Test Script using WebDriver Client libraries supported in Java, Ruby, and etc. )
--》浏览器驱动 Web Driver (现在浏览器厂商自己做浏览器驱动Web driver:Chrome Driver,FireFox Driver,IE Driver 来驱动浏览器)
--》浏览器 Browser
--》Request-Reponse
--》Web server hosting
Selenium WebDriver 包括Selenium2 和Selenium3。调用接口几乎没有区别,Selenium2是Selenium针对各种浏览器写的web driver, Selenium3 的web Driver 是由各个浏览器厂商自己提供的,所以自动化效率更高。我们所说的自动化程序其目的就是用来调用Selenium的接口库(接口库连接已经写好的各种驱动程序,本质就是调用各种Selenium已经写好的自动化测试程序,指挥Selenium发送消息给浏览器驱动,浏览器驱动完成对浏览器的自动操作行为,至于如何进行的操作,无需详解,我们要做的只是下命令调用Selenium,Selenium内部会有程序完成操作任务。余下的步骤就是基本的浏览器向服务器发送请求,响应请求,完成一个过程。 (自己总结的,有待完善)
Selenium IDE:Firefox 插件
Selenium Grid: 用来在多台机器上同时执行Selenium自动测试。用于要执行的测试用例非常多,或其中某些测试非常耗时。要搭建多套测试环境。
四、HTML
Hyper Text Markup Language
是一种标记语言markup language,不是编程语言。
用来描述网页的一种语言
HTML页面由HTML元素构建而成,HTML元素由标签表示
浏览器渲染(render)HTML语言,显示页面结构
五、搭建自动化测试环境 (见:Mac下搭建自动化测试环境)