自动化测试之selenium介绍
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的流程为:
测试用例通过Http请求建立与 selenium-RC server 的连接
Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy
执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码
4.Selenium Core执行接收到的指令并操作
当浏览器收到新的请求时,发送http请求
Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面
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介绍相关推荐
- Web UI自动化测试之Selenium工具篇
本文大纲截图: 一.自动化测试介绍 1.基本介绍 1.1 自动化 概念: 由机器设备代替人工自动完成指定目标的过程 优点: 1)减少人工劳动力 2)提高工作效率 3)产品规格统一标准 4)规模化(批量 ...
- body click js 委托_自动化测试之selenium调用JS语句
首先,我们来了解一下selenium调用JS语句的优缺点. 优点: 1.不受页面前端显示限制.(例如有一些页面元素需要鼠标悬停在某处,或者页面比较长,需要移动内嵌拖动条) 2.可以直接修改页面的参数( ...
- 玩玩自动化测试之selenium篇
现如今社会科技发展太快了,纯功能点点点已经落后别人好几条街了,所以为了让自己多点职业生涯年限,得挺起肩,傲起头.自动化测试,其本质是用代码程序测试程序,所以其实第一步应该学好编程语言,后再自己开发自动 ...
- web自动化测试之Selenium基础 — XPath定位大全
1.什么是 XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 包含一个标 ...
- 【书签】web自动化测试之selenium
2019独角兽企业重金招聘Python工程师标准>>> Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作.但是手工执行的任务容易出 ...
- UI自动化测试之Selenium原理详解
Selenium简介 Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Ch ...
- UI自动化之Selenium介绍、Selenium定位方法
Selenium库 用于web应用程序的测试工具 模拟手工操作浏览器,进行自动化测试 特点 开源免费 多浏览器支持 -Chrome.IE.FireFox等 多平台支持 - Windows.Linux都 ...
- web自动化测试之Selenium
一.Selenium自动化测试框架 1.什么是框架? 框架(framework)是一个框子--指其约束性,也是一个架子--指其支撑性.是一个基本概念上的结构,用于去解决或者处理复杂的问题 框架是整个或 ...
- Selenium自动化测试之Selenium IDE
最新文章
- MySQL show processlist说明
- ARCore中根据屏幕坐标计算射线的算法
- String 方法中 replace 和 replaceAll 的区别详解(源码分析)
- pymysql单条插入数据和批量插入数据:
- [转]ExtJs基础--Html DOM、Ext Element及Component三者之间的区别
- 从数据库中取出数据表,导入并生成excel
- Java BigDecimal应用
- 英语学习app源码_无纸化英语学习APP击败%89英语学习者
- 在线笔记存代码_李宏毅《机器学习》完整版笔记发布
- python有趣小程序-小码王分享python一些有趣的小程序
- python五位回文数_蓝桥杯,特殊回文数,Python
- 【JVM】上帝视角看JVM内存模型,分而治之论各模块详情
- 设备接入(LWM2M协议)
- 六、假设检验:使用Python进行两个正态总体均值的假设检验
- 通过百度地图批量查询经纬度/通过经纬度批量查询县市
- 安卓文件管理神器--X-plore
- PHP实现地址自动识别的功能实例
- Typora导入CSDN
- win10启动项(win10启动项怎么添加)
- 10个顶级商业思维:如何升级思维模式突破认知,让自己快速成长
热门文章
- EasyExcel标题加批注和标题字体填充红色
- 学习计算机软件技术感想,信息技术学习心得体会
- android开发百度地图步行导航
- HD44780http://blog.sina.com.cn/s/blog_61b6e08b01016xif.html
- L0,L1,L2正则化浅析
- 3.3 构建神经网络小结
- echarts省级地图展示(包含3D地图)
- TestCenter测试管理工具功能详解五(J)
- echarts饼图圆环图数据为0时字体重叠
- UEFI EDK2 同一代码在IA32可以运行,X64就不可以!