• webdriver介绍&与Selenium RC的比较


    什么是webdriver?

    webdriver是一个web自动化测试框架,不同于selenium IDE只能运行在firefox上,webdriver能够在不同的浏览器上执行你的web测试用例。其支持的浏览器有:Firefox、Chrome、IE、Edge、Safari、Opera、phantomjs等等。

    webdriver支持使用不同的编程语言来写测试脚本,这是selenium IDE所无法做到的。对于测试人员来说至少具备:

    • 掌握编程语言的判断分支语法
    • 掌握基本的循环语法

    webdriver支持的编程语言有:

    • java
    • .net
    • php
    • python
    • perl
    • ruby

    在本系列教程中,我们将使用python来写webdriver测试脚本。如果你对python的基本语法不够熟悉的话,请先参照《python简明教程》学习(建议两个小时内完成学习)。

    Selenium RC和webdriver的区别

    在webdriver发布前selenium1.0版本叫做selenium remote control,简称Selenium RC。webdriver和Selenium RC之间有以下共同的特色:

    • 它们都支持使用一种编程语言来设计你的测试脚本
    • 它们均支持驱动多种浏览器来进行自动化测试

    那它们之间有什么区别呢?接下来让我们一起看一看它们的区别:

    1、架构

    相比Selenium RC的架构,webdriver的架构更加简洁。

    • webdriver通过OS层级来控制浏览器
    • webdriver运行你使用你喜欢的编程语言的IDE来进行脚本开发
    webdriver架构图

    Selenium RC的架构更为复杂。

    • 在运行测试脚本前必须先启动Selenium RC Server
    • Selenium RC Server扮演着浏览器和测试脚本之间通信的桥梁角色
    • 当开始运行测试脚本时,Selenium RC Server会Selenium Core(js代码)注入到浏览器中以达成控制浏览器
    • 一旦Selenium Core被注入到浏览器中,Selenium Core就会开始接收并转发来自Seleniun RC Server的测试指令
    • 当测试指令接收后,Selenium Core就会把它们当做js来执行
    • 浏览器按照Selenium Core的指令进行操作,并将执行结果返回给Selenium RC Server
    • Selenium RC Server将接收到的结果返回给你的测试脚本
    • Selenium RC Server继续从你的测试脚本发送过来的指令中提取下一条指令,重复上述过程。
    Selenium RC 架构图

    2、速度

    在运行速度方面,webdriver会远远好于Selenium RC。原因是Webdriver直接调用浏览器原生API进行驱动,而Selenium RC则通过Selenium Core(javascript实现)来间接驱动浏览器。

    3、交互机制

    • webdriver直接与浏览器进行交互
    • Selenium RC通过Selenium RC Server中转才能与浏览器进行交互

    4、API

    • Selenium RC的API复杂冗余,不利于学习掌握
    • Webdriver的API简洁,只要掌握几个常用的即可进行测试

    5、支持的浏览器

    • Selenium RC只能驱动可视化的浏览器
    • webdriver除了驱动可视化的浏览器,还可以驱动内存模式的浏览器,比如HtmlUnit browser,phantomjs

    webdriver的局限性

    • webdriver无法及时的支持最新版本的浏览器,每次浏览器升级后,需要下载新的驱动程序。
    • webdriver必须基于脚本模式开发测试用例

    总结

    • webdriver支持使用多种编程语言进行跨浏览器的web测试
    • webdriver的强大在于支持N中编程语言来设计和实现测试
    • webdriver执行速度更快是因为其简洁的架构
    • webdriver直接驱动浏览器
    • webdriver支持内存模式的浏览器
    • webdriver不能实时的支持最新版浏览器
    • webdriver没有内置的命令模式来自动生成测试结果
    微信公众号:DeepTest 专注软件测试领域开源技术、资讯、工具、解决方案(涵盖自动化测试、接口测试、性能测试等等[python、selenium/webdriver、robotframework、soapui、jmeter])。 每日更新...
  • 相关阅读:
    spark学习进度9
    spark学习进度8-scrapy框架的安装与使用
    spark学习进度7-Python爬取大学排名实例
    spark学习进度6-Python爬取数据的四个简单实例
    spark学习进度5-利用开发工具IntelliJ IDEA编写Spark应用程序(Scala+Maven)
    Scala官网下载不下来问题-已解决
    spark学习进度4
    大数据学习总结07
    大数据学习总结06
    大数据学习总结05
  • 原文地址:https://www.cnblogs.com/lym51/p/6627438.html
Copyright © 2020-2023  润新知