selenium自动化测试(二)
1. 入门
2. 入门知识
工具 | 描述 |
---|---|
Selenium IDE | Selenium 集成开发环境(IDE)是一个Firefox插件,可以让测试人员跟着,需要测试的工作流程,以记录他们的行为。 |
Selenium RC | Selenium远程控制(RC)为旗舰测试框架,它允许多个简单的浏览器动作和线性执行。它使用的编程语言,如Java,C#,PHP,Python和Ruby和Perl的强大功能来创建更复杂的测试。 |
Selenium WebDriver | Selenium的webdriver前身是Selenium RC,直接发送命令给浏览器,并检索结果。 |
Selenium Grid | Selenium网格用于运行在不同的机器,不同的浏览器同时以最小化执行时间的并行测试的工具。 |
(3) selenium 演变
webDriver----------------------------------> selenium 2
Selenium | QTP/UFT |
---|---|
Selenium 是一种开源工具。 | QTP是一个商业工具和成本涉及许可证。 |
可以扩展它公开DOM各种技术。 | 有限的附加组件和需要附加组件的技术。 |
可以在不同浏览器执行脚本。 | 可以运行测试在Firefox,IE和Chrome浏览器的特定版本。 |
可以执行各种操作系统的脚本。 | 仅适用于Windows操作系统。 |
支持的移动设备。 | 支持第三方工具的移动设备。 |
执行在浏览器中测试,这不是必需的,重点是脚本执行的进度。 | 脚本执行的工具作用于浏览器(模拟用户操作)过程中需要重点 |
可以并联使用Selenium网格运行测试。 | QTP不能并行执行测试,但与质量控制整合QTP允许测试并行执行。质量控制也是一种商业工 |
缺点:
Selenium | QTP/UFT |
---|---|
仅支持基于Web的应用程序。 | 可以测试Web和桌面应用程序。 |
任何功能部件,例如对象存储库/恢复方案 | QTP已经或和恢复方案内置。 |
没有IDE,所以这样的脚本开发,不会快于QTP。 | 更直观的IDE,自动化,可以实现更快。 |
不能在浏览器中访问控制 | 可以在浏览器中访问控制,如收藏夹栏,后退和前进按钮。 |
没有默认生成测试报告。 | 默认的测试结果生成工具中。 |
用于参数设置,用户必须依赖于编程语言 | 参数是内置的,易于实现。 |
selenium core : js 框架
IDE : 火狐插件
RC: 服务端和 客户端
webDriver : selenium 2的核心 + API + 不需要再显示的启动 selenium Server + 支持的脚本(java + C# + python等等)
grid : 分布执行测试
3. 如何入手
3.1 selenium webDriver分类
firefox Driver (默认的Driver)
IE Driver
chrome Driver
safari
android
3.2 步骤
step 1 : 创建一个webDriver对象-控制浏览器
step 2 : 创建webElement对象-操作页面元素
3.3 页面元素定位方法
ClassName
CssSelector
Id
LinkText
PartialLinkText
Name
TagName
Xpath
3.4 验证
page title getTitle(); assertEquals
Attributes getAttribute();assertNotNull
JavaScript 返回值 IJavaScriptExecutor
3.5 verify 与 assert 差异
verify : 一旦运行失败, 会继续往下执行。一个case 可以有多个verify.
assert : 一旦运行失败, 抛出异常,停止继续执行。一个case 一般只有一个assert.
3.6 测试代码定时运行
持续集成工具--jenkins CI
系统定时任务-commands
4. 实践
4.1 环境配置
下载并配置Eclipse
配置Firebug和FirePath
配置Selenium RC
配置Selenium的webdriver
4.2 什么是Selenium - RC
4.3 什么是 Selenium Webdriver
在Selenium开发者社区努力下,不断提高Selenium webdriver与Selenium的整合。
WebDriver Wire协议是通用的,也就是说不管是FirefoxDriver还是ChromeDriver,启动之后都会在某一个端口启动基于这套协议的Web Service。例如FirefoxDriver初始化成功之后,默认会从http://localhost:7055开始,而ChromeDriver则大概是http://localhost:46350之类的。接下来,我们调用WebDriver的任何API,都需要借助一个ComandExecutor发送一个命令,实际上是一个HTTP request给监听端口上的Web Service。在我们的HTTP request的body中,会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做社么事情。
在我们new一个WebDriver的过程中,Selenium首先会确认浏览器的native component是否存在可用而且版本匹配。接着就在目标浏览器里启动一整套Web Service,这套Web Service使用了Selenium自己设计定义的协议,名字叫做The WebDriver Wire Protocol。这套协议非常之强大,几乎可以操作浏览器做任何事情,包括打开、关闭、最大化、最小化、元素定位、元素点击、上传文件等等等等。
4.4 Selenium TestNG
selenium自动化测试(二)相关推荐
- Python+Selenium自动化测试——126邮箱自动登录脚本(登录首页是二维码,切入账号密码输入框)
Python+Selenium自动化测试--126邮箱自动登录脚本 版权声明:本文为博主原创文章,未经允许不得转载.https://blog.csdn.net/qiao_wan/article/det ...
- Python高级特性与网络爬虫(二):使用Selenium自动化测试工具爬取一号店商品信息
上一篇介绍了Ajax动态渲染的页面的分析和爬取,通过JavaScript动态渲染的页面的方式不只有ajax这一种,还有很多其他的方式,分析他们的网页结构和加密参数难度非常大,为了解决这样的页面的数据爬 ...
- python测试脚本项目全程教程_《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)...
1. 简介 今天我们继续前边的练习,学习和练习一下:如何使用webdriver方法获取操作复选框-CheckBox.测试不同的分辨率.如何断言title.如何获取某一个元素的text属性值等等,这些小 ...
- selenium自动化测试框架_selenium自动化测试框架之PO设计模式
面向对象的特性:封装.继承.多态.在自动化中一样适用,Selenium自动化测试中有一个名字常常被提及PageObject(思想与面向对象的特性相同),通过PO模式可以大大提高测试用例的维护效率. 传 ...
- java二次开发浏览器内核_深入理解基于Selenium的二次开发
对于做web端自动化测试的人来说,可能接触selenium比QTP还要多,但是我们在做基于selenium的二次开发的时候,经常会说到二次开发是 为了易于维护,很多人可能不懂得维护的价值是什么,和到底 ...
- python Chrome + selenium自动化测试与python爬虫获取网页数据
一.使用Python+selenium+Chrome 报错: selenium.common.exceptions.SessionNotCreatedException: Message: sessi ...
- Selenium自动化测试系列文章汇总
selenium系列文章汇总 Selenium自动化测试-selenium介绍及环境安装 Selenium自动化测试-浏览器基本操作 Selenium自动化测试-元素定位(1) Selenium自动化 ...
- Selenium自动化测试-JavaScript定位
------·今天距2020年37天·------ 这是ITester软件测试小栈第83次推文 做自动化过程中,会发现有的按钮点击不了,或者点击没有反应,也没有报错,或者不能处理滚动条等场景,我们可以 ...
- Selenium自动化测试-设置元素等待
------·今天距2020年54天·------ 这是ITester软件测试小栈第75次推文 selenium中有三种时间等待: 强制等待:sleep 隐式等待:implicitly_wait 显示 ...
- Selenium自动化测试-8.iframe处理
------·今天距2020年75天·------ 这是ITester软件测试小栈第61次推文 大家好 我是vivi小胖虎 听说很多城市最近的气温急转直下 在生活和行业寒冬的双重夹击中 身心灵与肉都饱 ...
最新文章
- Shared——The best front-end hacking cheatsheets — all in one place.
- VPS批量管理软件--远程桌面批量管理
- c#调用python函数_C#调用python脚本的方法步骤(2种)
- iOS利用视频做起始页
- 机器学习的最佳学习路线原来只有四步
- 使用Regions ADF 11g进行Master Detail CRUD操作
- 牛逼!计算机基础知识总结与操作系统 PDF 开放下载了!
- django请求生命周期
- SpringCloud工作笔记075---SpotBugs介绍--优化java代码的质量
- 一些关于大数据的总结
- Visual Studio 安装自定义插件
- 使用元组交换两个数据
- 查看CSDN历史下载明细
- WordPress主题Ripro子主题美化包wori-child 1.3+下载插件美化
- python人名抽签_办公人员的 python 妙用——抽签结果提取
- synchronized关键词保证线程安全
- cups ipp oracle,使用 CUPS 打印管理器管理打印机
- 清除当前目录下的.svn文件 linux/windows
- 俄罗斯方块的简单实现
- Eclipse 配置JDK
热门文章
- java过滤器重定向_解决ajax请求过滤器重定向不跳转 (过滤器)
- 四、cadence ic 5141 ——添加工艺库文件
- nodejs环境变量配置问题记录
- 实践是检验真理的唯一标准!静态路由相关配置实操①
- 【SSH】SSH 免密码登录配置|Secure Shell 免密认证登录|linux 生成密钥
- PHP代码安全基础1
- html5做动画视频教程,基于HTML5的Flash动画开发视频教程
- 河南省区块链产业联盟成立暨可信区块链技术创新大会启幕
- SkeyeVSS智慧办公区视频监控解决方案
- cad中怎么随意移动图形_CAD中不用移动命令也可以移动图形