zoukankan      html  css  js  c++  java
  • java+selenium3-简介及环境搭建

    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/

    下载chromedriver.exe : http://selenium-release.storage.googleapis.com/index.html

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

     

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

    如下所示,添加jar包成功

    6.编写代码启动Chrome浏览器

    package com.java.sele;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    
    public class Test {
        public static void main(String[] args) {
            WebDriver driver;
            //设置浏览器驱动环境变量
            System.setProperty("webdriver.chrome.driver", "C:\Program Files (x86)\ChromeCore\chromedriver.exe");
            driver = new ChromeDriver();
            driver.get("http://www.baidu.com");
        }
    }

    注意:

    chromedriver.exe与Chrome浏览器的版本要对应,否则代码会报错

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

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

  • 相关阅读:
    新人手册
    使用koa-mysql-session时报错
    自建windows服务器如何部署egg应用
    mac os 10.15 virtualBox6.0.12崩溃
    thinkphp3.2 上传图片兼容小程序
    PHP版本微信支付开发
    php mysql 按照指定年月查找数据 数据库create_time为时间戳
    Mac OS 查看端口和杀死进程
    MAC PHP7 如何disable xdebug
    TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
  • 原文地址:https://www.cnblogs.com/marton/p/11233994.html
Copyright © 2011-2022 走看看