zoukankan      html  css  js  c++  java
  • selenium简介及发展

    什么是selenium ?
    • 一套软件工具,用来支持不同的自动化测试方法。
    • 开源软件:可以根据需要来增加或者重构工具的某些功能
    • 跨平台:linux windows mac
    • 核心功能就是可以在多个浏览器上进行自动化测试
    • 支持多种编程语言
    • 目前已经被google、百度、腾讯等公司广泛使用
    • 能够实现类似商业工具的大部分功能,并且还实现了商业工具不能支持的功能。
    • 建议大家整体学习整套工具,将来好选择适合自己测试目的的测试工具。

    Selenium 的发展历史
    • 2004年在 ThoughtWorks 公司,一个叫做 Jason Huggins 为了减少手
    工测试的工作,自己写了一套 JavaScript 的库,这套库可以进行页面交互,并且可以重复的在不同浏览器上进行重复的测试操作。
    • 这套库后来变为了 Selenium Core,为Selenium Remote Control (RC)
    和 Selenium IDE提供了坚实的核心基础能力。
    • Selenium 的作用是划时代的,因为他允许你使用多种语言来控制浏览器。
    • 思考:为何这样的工具在中国很难诞生? 诞生这样的工具需要具备什么样的个人素质和能力

    • 浏览器的对 JS 的安全限制也对 Selenium 的发展带来了困扰,并且
    Web 程序也越来越强大,特性也越来越多,都对 Selenium 的发展来说带来了不少困难。
    • 2006年Google的工程师 Simon Stewart 开启了一个叫做 WebDriver 的项目,此项目可以直接让测试工具使用浏览器和操作系统本身提供方
    法,借此来绕过 JS 环境的沙盒效应。WebDriver项目目标就是为了解决Selenium的痛处。
    • 2008年北京奥运会年, Selenium 和 WebDriver这两个项目进行了合并,Selenium 2.0出现了,也就是大家常说的 WebDriver

    Selenium 的工具套件
    • Selenium 2 (aka. Selenium Webdriver)提供了极佳的测试工具特性,例如:关联的面向对象API
    • Selenium 1 (aka. Selenium RC or Remote Control)支持更多的浏览器,支持更多的编程语言 (Java, JavaScript, Ruby,PHP,Python,Perl and C#)
    • Selenium IDE(集成开发环境)是 Firefox 的插件,有图形界面来录制和回放脚本。此插件只是用来做原型工具,并不希望你使用这个工具来运行所有的测试脚本。
    • Selenium -Grid 可以并行的在多个测试环境执行测试脚本,实现脚本的并发测试执行。缩短大量测试脚本集合的执行时间

    选择你的 Selenium 工具
    • 如果没有编程经验,建议选择Selenium IDE 来熟悉Selenium 的命令。使用 IDE 以快速的创建简单的测试脚本。
    • 我们不建议你选择 Selenium IDE来执行自动化测试,建议使用编程语言使用 Selenium 1 或 2 来构建,可以根据个人爱好来进行选择。
    • 建议先熟悉:Selenium IDE
    • 再进一步熟练使用 Selenium-WebDriver API

    Selenium IDE 和 Selenium 1 支持的浏览器和操作系统

    WebDriver支持的浏览器
    • IE 6-11
    • FireFox 大部分版本
    • Chrome
    • Safari
    • Opera
    • Android 系统上的自带浏览器
    • IOS 系统上的自带浏览器
    • HtmlUnit 的无界面实现

    Selenium 1 和 WebDriver 的关系
    • WebDriver 是 Selenium 1 的升级版本,也可以理解为两个不同的产品
    • WebDriver 相比 Selenium 1来说可以更好地绕过 JS 的限制、API也更易于使用。
    • Selenium 1 比 WebDriver支持更多的浏览器
    • WebDriver可以实现向下兼容 Selenium 1的脚本

    Selenium 1.0 的工作原理

    Selenium 1.0 组成:
    (1)Selenium IDE:一个firefox的plug-in,可以录制和回放并保存test cases,测试用例为html格式
    (2)Selenium Core:整个测试机制的核心部分,即有assertion(断言)机制的test suite runner。它由一些纯js代码组成,可以运行在windows/linux的不同browser上
    (3)Selenium Remote Control(RC):一个代理与控制端, 可代替Seleniumcore/ Selenium IDE的client端(相当于通过编程来实现一切),是支持多语言的.

    执行过程解析:

    1 执行测试脚本,要启动某个浏览器
    2 脚本把打开浏览器的命令发给RC(selenium remote control)
    3 RC的launcher打开了指定的浏览,可能是ie,chrome,firefox。。。。
    4 启动浏览器之后,访问脚本指定的网址
    5 浏览器(设置的代理:RC)发出请求网页的请求,给你RC
    5 RC收到请求的url(被测试对象的网址),RC去真正请求url对应的网页内容
    6 被测试服务器返回所有的hmtl,css,js等内容给RC
    7 RC拿到了之后,注入selenium Core
    8 RC将注入selenium core的全部网页内容发给了浏览器
    9 测试脚本中的其他测试逻辑,均通过操作selenium core来实现。
  • 相关阅读:
    QT多重继承的时候,要把QObject放在最前面,否则报错——C++认为人性本恶,默认都是私有的,这点和Delphi的世界观不一样
    动态库的搜索路径
    载入OpenSSL的动态库——学会使用tryToLoadOpenSslWin32Library和QPair
    Physical Standby Database Failover
    ARM和X86功耗差别的深层原因探讨
    Qt 鼠标样式特效探索样例(一)——利用时间器调用QWidget.move()函数
    QT---线程间通信
    Qt :非window子窗体的透明度设置
    QT:给Widget设置背景图片——设置Widget的调色板,调色板使用图片和背景色
    用友CDM系统,将货位间商品移库单(一步)修改为内调出入库单(一步)方法使用
  • 原文地址:https://www.cnblogs.com/wenm1128/p/11576608.html
Copyright © 2011-2022 走看看