1.什么是自动化

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审以后,由测试人员根据测试用例中描述的过程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力,时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

自动化测试是通过工具录制或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。

2.什么是selenium

Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。具有如下特点:

1、多浏览器支持:可以对多浏览器进行测试,如IE、Firefox、Safari、Chrome、Android手机浏览器等

2、支持多种语言:如Java、C#、Python、Ruby、PHP等

3、支持多种操作系统:如Windows、Linux、IOS、Android等

4、开源免费:官网:http://www.seleniumhg.org/

Selenium框架由多个工具组成,包括:

(1)selenium RC:selenium Server+Client Libraries。

-- Selenium  Server负责控制浏览器的行为。

-- Client Libraries则是给测试人员编写测试案例时用来控制selenium Server的库。

(2)selenium IDE:记录与浏览器的交互以创建测试用例。之后,可以使用播放选项重新运行测试用例。

(3)selenium GRID:控制多台机器多个浏览器执行测试用例。

3.seleniun组成部分

3.1selenium RC

Selenium RC是selenium家族核心部分。Selenium RC支持多种不同的语言编写自动化测试脚本,通过SeleniumRC的服务器作为代理服务器去访问应用,从而达到测试的目的。

RC的流程为:

  1. 测试用例通过Http请求建立与 selenium-RC server 的连接

  1. Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy

  2. 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码

  3. 4.Selenium Core执行接收到的指令并操作

  4. 当浏览器收到新的请求时,发送http请求

  1. Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面

  2. Selenium Server中的Http Proxy把接收到的页面返回给浏览器

3.2selenium IDE

selenium IDE 是 Selenium Suite下的开源Web自动化测试工具,该工具是一个用于构建脚本的初级工具,其实是FireFox的一个插件,拥有一个易于使用的界面。它拥有记录功能,能够记录用户执行的操作,并可以导出为可重复使用的脚本。它无需使用任何编程逻辑来编写测试基本,而只需记录与浏览器的交互以创建测试用例。之后,可以使用播放选项重新运行测试用例。如果没有编程经验,可以通过Selenium IDE来快速熟悉Selenium的命令。

3.3selenium Grid

selenium Grid是一种自动化测试辅助工具,通过利用现有的计算机基础设施,能加快Web-app的功能测试,利用Grid,可以很方便同时在多台机器上和异构环境中并行运行多个测试事例。其特点是:

1.并行执行。

2.通过一个主机控制用例在不同环境、不同浏览器下运行。

3.灵活添加变动测试机。

3.4selenium webDriver

selenium 2.0 = selenium 1.0 + WebDriver

 在selenium 2.0 中主推的是WebDriver ,WebDriver 是selenium RC 的替代品,因为 selenium 为了向下兼容性,所以selenium RC 并没有彻底抛弃,如果你使用selenium开发一个新自动化测试项目,强烈推荐使用WebDriver 。那么selenium RC 与webdriver 主要有什么区别呢?

selenium RC 在浏览器中运行JavaScript应用,使用浏览器内置的JavaScript 翻译器来翻译和执行selenese命令(selenese 是selenium命令集合)。

 WebDriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。WebDriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript安全模型导致的限制。除了来自浏览器厂商的支持,WebDriver还利用操作系统级的调用模拟用户输入。

webDriver是selenium2.0之后的核心,Webdriver通过原生浏览器支持或者浏览器扩展直接控制浏览器。webdriver针对各个浏览器而开发,取代了嵌入到被测Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript安全模式导致的限制。除了来自浏览器厂商的支持,webdriver还利用操作系统级的调用模拟用户输入。

使用webdriver需要给浏览器安装驱动,chrome浏览器驱动是chromedriver,IE浏览器驱动是IEDriver,firefox浏览器驱动是geckodriver,其中浏览器与驱动有对应的版本要求。

selenium2.0以上支持多语言的测试脚本编写,因为使用webdriver,webdriver是基于JSON Wire Protocol协议,JSON Wire protocol是在http协议基础上,对http请求及响应的body部分的数据的进一步规范。WebDriver中请求报文和响应报文数据都是以JSON的形式存在并进行传送的,所以在Client和Server之间,只要是基于JSON Wire Protocol来传递数据,就与具体的脚本语言无关了,这样同一个浏览器的驱动就即可以处理Java语言的脚本,也可以处理Python语言的脚本。


下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:779450660里面有各种软件测试资源和技术讨论)

自动化测试之selenium介绍相关推荐

  1. Web UI自动化测试之Selenium工具篇

    本文大纲截图: 一.自动化测试介绍 1.基本介绍 1.1 自动化 概念: 由机器设备代替人工自动完成指定目标的过程 优点: 1)减少人工劳动力 2)提高工作效率 3)产品规格统一标准 4)规模化(批量 ...

  2. body click js 委托_自动化测试之selenium调用JS语句

    首先,我们来了解一下selenium调用JS语句的优缺点. 优点: 1.不受页面前端显示限制.(例如有一些页面元素需要鼠标悬停在某处,或者页面比较长,需要移动内嵌拖动条) 2.可以直接修改页面的参数( ...

  3. 玩玩自动化测试之selenium篇

    现如今社会科技发展太快了,纯功能点点点已经落后别人好几条街了,所以为了让自己多点职业生涯年限,得挺起肩,傲起头.自动化测试,其本质是用代码程序测试程序,所以其实第一步应该学好编程语言,后再自己开发自动 ...

  4. web自动化测试之Selenium基础 — XPath定位大全

    1.什么是 XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 包含一个标 ...

  5. 【书签】web自动化测试之selenium

    2019独角兽企业重金招聘Python工程师标准>>> Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出 ...

  6. UI自动化测试之Selenium原理详解

    Selenium简介 Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Ch ...

  7. UI自动化之Selenium介绍、Selenium定位方法

    Selenium库 用于web应用程序的测试工具 模拟手工操作浏览器,进行自动化测试 特点 开源免费 多浏览器支持 -Chrome.IE.FireFox等 多平台支持 - Windows.Linux都 ...

  8. web自动化测试之Selenium

    一.Selenium自动化测试框架 1.什么是框架? 框架(framework)是一个框子--指其约束性,也是一个架子--指其支撑性.是一个基本概念上的结构,用于去解决或者处理复杂的问题 框架是整个或 ...

  9. Selenium自动化测试之Selenium IDE

最新文章

  1. MySQL show processlist说明
  2. ARCore中根据屏幕坐标计算射线的算法
  3. String 方法中 replace 和 replaceAll 的区别详解(源码分析)
  4. pymysql单条插入数据和批量插入数据:
  5. [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
  6. 从数据库中取出数据表,导入并生成excel
  7. Java BigDecimal应用
  8. 英语学习app源码_无纸化英语学习APP击败%89英语学习者
  9. 在线笔记存代码_李宏毅《机器学习》完整版笔记发布
  10. python有趣小程序-小码王分享python一些有趣的小程序
  11. python五位回文数_蓝桥杯,特殊回文数,Python
  12. 【JVM】上帝视角看JVM内存模型,分而治之论各模块详情
  13. 设备接入(LWM2M协议)
  14. 六、假设检验:使用Python进行两个正态总体均值的假设检验
  15. 通过百度地图批量查询经纬度/通过经纬度批量查询县市
  16. 安卓文件管理神器--X-plore
  17. PHP实现地址自动识别的功能实例
  18. Typora导入CSDN
  19. win10启动项(win10启动项怎么添加)
  20. 10个顶级商业思维:如何升级思维模式突破认知,让自己快速成长

热门文章

  1. EasyExcel标题加批注和标题字体填充红色
  2. 学习计算机软件技术感想,信息技术学习心得体会
  3. android开发百度地图步行导航
  4. HD44780http://blog.sina.com.cn/s/blog_61b6e08b01016xif.html
  5. L0,L1,L2正则化浅析
  6. 3.3 构建神经网络小结
  7. echarts省级地图展示(包含3D地图)
  8. TestCenter测试管理工具功能详解五(J)
  9. echarts饼图圆环图数据为0时字体重叠
  10. UEFI EDK2 同一代码在IA32可以运行,X64就不可以!