selenium-简介及环境搭建 面试准备——(三)Selenium(1)基础问题及自动化测试

selenium简介及环境搭建

Selenium简介

1.Selenium简介及组成

selenium是一种web自动化测试工具,它可以在主流的浏览器上运行,支持的语言有java, python,javascript

selenium主要有三部分组成:

Selenium IDE:录制和回放脚本,可以模拟用户对页面的真实操作,区别于其他工具:是通过拦截http请求。

一般只把录制脚本当作一个辅助功能,因为一个UI节点的细微变化,都可能导致自动化测试工具无法识别,当测试项目项目大时,定位、更新十分困难。

其次,录制的脚本有时候人工难以理解。

Selenium Grid:实现在多台机器上、和异构环境中并行执行测试用例。并行执行不仅节省时间,而且可以同时在不同的浏览器、平台上运行自动化测试脚本。

Selenium Web Driver:针对各个浏览器而开发,通过原生浏览器支持或者扩展(Chrome webDrive、FireFox WebDriver)直接控制浏览器

Selenium RC(Selenium1.0):在浏览器中运行javaScript,使用浏览器内置的JavaScript来翻译和执行selense

2.Selenium特点

支持录制和回放(Selenium IDE)

通过WebDriver,直接控制浏览器,而不是通过拦截HTTP请求,实现真正模仿了用户的操作;同时使用WebDriver能够灵活的获取页面元素(WebDriver),并且提供执行JS的接口

能够分布式运行在不同机器和异构环境中(不同浏览器)

3. Selenium的内部运行机制?如何能够跨浏览器使用?——WebDriver原理(&RC原理)

1)RC原理

在Selenium1.0中,是通过Selenium RC服务器作为代理服务器去访问应用从而达到测试的目的。

Selenium RC分为三个部分,Launcher、HttpProxy、Core。

Launcher用于启动浏览器,把Selenium Core加载到浏览器中,并且把浏览器的代理设置为Selenium Server的Http Proxy。

Core是一堆JavaScript的集合,所以本质相当于运行这些JavaScript函数来实现对Html页面的操作。——这也是为什么可以运行在几乎所有主流的浏览器上。

然而直接运行JavaScript会有极大的安全漏洞,所以会受到“同源限制”,在这个基础上,Selenium2.0引入了WebDriver。

2)Web Driver原理

webDriver是按照client/server模式设计的。client是我们的测试脚本,发送请求;server就是打开的浏览器,用来接收client的请求并作出响应。

具体的工作流程:

webDriver打开浏览器并绑定到指定端口。启动的浏览器作为远程服务器remote server

client通过CommandExecuter发送http请求给远程服务器的侦听端口(the wire protocal)

远程服务器根据原生的浏览器组件来转化为浏览器的本地(native)调用

所以web Driver用到的协议

打开浏览器时:HTTP协议

client端发送http请求到远程服务器的侦听端口:the wire protocol

其中:

有线协议:指的是从点到点获取数据的方式,是应用层的协议。

HTTP协议:是用于从服务器传输超文本标记语言HTML到客户端的通信协议。是一个应用层协议,由请求/响应构成,是一个标准的客户/服务器模式。是一个无状态的协议。

(无状态:对事务没有记忆能力,不会保存这次传输的信息——节约内存)

环境搭建

1.安装java运行环境

2.下载selenium IDE : https://www.seleniumhq.org/download/

3.新建一个java项目,在其下面创建一个libs的文件夹,将selenium-java.zip中的jar包都拷贝进去

 

4.鼠标右击java项目->Build Path -> Config build path -> java build Path -> Libraries -> Add JARs

如下所示,添加jar包成功

5.编写java code打开浏览器

package com.java.sele;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Test {
    public static void main(String[] args) {
        WebDriver driver;
        //设置浏览器驱动环境变量
        System.setProperty("webdriver.firefox.marionette", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
        driver = new FirefoxDriver();
        driver.get("http://www.baidu.com");
    }
}

参考资料:《基于Selenium 2的自动化测试》

参考资料:面试准备——(三)Selenium(1)基础问题及自动化测试

猜你喜欢

转载自www.cnblogs.com/marton/p/11233994.html
今日推荐