Selenium浏览器自动化测试使用(1)
Selenium - 介绍
Selenium是一个开源的和便携式的自动化软件测试工具,用于测试Web应用程序有能力在不同的浏览器和操作系统运行。Selenium真的不是一个单一的工具,而是一套工具,帮助测试者更有效地基于Web的应用程序的自动化。
现在让我们了解selenium套件和使用这些工具。我们将着眼于以下工具功能:
工具 | 描述 |
---|---|
Selenium IDE | Selenium 集成开发环境(IDE)是一个Firefox插件,可以让测试人员跟着,需要测试的工作流程,以记录他们的行为。 |
Selenium RC | Selenium远程控制(RC)为旗舰测试框架,它允许多个简单的浏览器动作和线性执行。它使用的编程语言,如Java,C#,PHP,Python和Ruby和Perl的强大功能来创建更复杂的测试。 |
Selenium WebDriver | Selenium的webdriver前身是Selenium RC,直接发送命令给浏览器,并检索结果。 |
Selenium Grid | Selenium网格用于运行在不同的机器,不同的浏览器同时以最小化执行时间的并行测试的工具。 |
Selenium优势
QTP和Selenium 都是市场上软件自动化测试最常用的工具。因此,selenium有更多的意义,现在selenium比较QTP/ UFT有更多的优点。
Selenium | QTP/UFT |
---|---|
Selenium 是一种开源工具。 | QTP是一个商业工具和成本涉及许可证。 |
可以扩展它公开DOM各种技术。 | 有限的附加组件和需要附加组件的技术。 |
可以在不同浏览器执行脚本。 | 可以运行测试在Firefox,IE和Chrome浏览器的特定版本。 |
可以执行各种操作系统的脚本。 | 仅适用于Windows操作系统。 |
支持的移动设备。 | 支持第三方工具的移动设备。 |
执行在浏览器中测试,这不是必需的,重点是脚本执行的进度。 | 脚本执行的工具作用于浏览器(模拟用户操作)过程中需要重点 |
可以并联使用Selenium网格运行测试。 | QTP不能并行执行测试,但与质量控制整合QTP允许测试并行执行。质量控制也是一种商业工具。 |
Selenium 缺点
现在我们讨论selenium较QTP的缺陷。
Selenium | QTP/UFT |
---|---|
仅支持基于Web的应用程序。 | 可以测试Web和桌面应用程序。 |
任何功能部件,例如对象存储库/恢复方案 | QTP已经或和恢复方案内置。 |
没有IDE,所以这样的脚本开发,不会快于QTP。 | 更直观的IDE,自动化,可以实现更快。 |
不能在浏览器中访问控制 | 可以在浏览器中访问控制,如收藏夹栏,后退和前进按钮。 |
没有默认生成测试报告。 | 默认的测试结果生成工具中。 |
用于参数设置,用户必须依赖于编程语言 | 参数是内置的,易于实现。 |
Selenium - IDE
Selenium的IDE(集成开发环境)是一个易于使用的Firefox插件,用于开发Selenium测试案例。它提供了一个图形用户界面,用于记录使用Firefox浏览器,用来学习和使用Selenium用户操作,但它只能用于只用Firefox浏览器不支持其它浏览器。
然而,所记录的脚本可以被转换成由Selenium 支持多种编程语言和脚本可以在各种其它的浏览器,以及被执行。
点击表格中了解详细列出了以下每一个功能。
Title | 描述 |
---|---|
下载Selenium IDE | 本节介绍如何下载和配置Selenium IDE |
Selenium IDE 特性 | 本节介绍在Selenium IDE使用的功能 |
创建Selenium IDE 测试 | 本节介绍了如何使用记录功能创建IDE测试 |
Selenium IDE 脚本测试 | 本节介绍Selenium IDE脚本的调试 |
插入验证点 | 在Selenium IDE插入验证在本节中讨论。 |
Selenium 模式匹配 | 本节介绍如何使用IDE正则表达式来工作。 |
Selenium用户扩展 | Java脚本,允许用户定制或添加新的功能。 |
不用浏览器执行 | 本节介绍了如何在不同的浏览器执行Selenium IDE脚本。 |
Selenium - IDE
步骤 1 : 启动Firefox,然后导航到URL - http://seleniumhq.org/download/。 在Selenium IDE部分,单击显示如下所示当前版本号的链接。
步骤 2 : Firefox的附加组件通知弹出了允许和禁止的选项。用户必须允许安装。
步骤3 : 加载项安装程序发出警告不可信的附加组件的用户。点击“Install Now”。
步骤 4 : Selenium IDE现在可以通过浏览访问 'Tools' >> 'Selenium IDE'。
步骤 5 : 在Selenium IDE,也可以直接从快速访问菜单栏访问,如下图所示。
Selenium - IDE 工具特点
Selenium IDE的特点列出了一个简单的工具的帮助下提示,如下图所示。
记录工具栏的功能进行说明如下。
Selenium IDE 测试创建
涉及使用IDE Selenium创建测试,如下面的步骤
记录和测试添加命令
保存测试记录
保存测试程序
执行测试记录
在测试中记录和添加命令
为了演示目的,我们将利用www.ncalculators.com,了解selenium的特点。
步骤 1 : 启动Firefox浏览器,然后导航到该网站 - http://www.ncalculators.com/
步骤 2 : 从工具菜单中打开Selenium IDE,按下录制按钮-即在右上角。
步骤 3 : 导航到 "Math Calculator" >> "Percent Calculator >> 输入"10" 作为 number1 并且输入 50 作为 number2 然后点击 "calculate".
步骤 4 : 然后,用户可以插入检查点通过右键单击Web元素,并选择 "Show all available commands" >> 选择"assert text css=b 5"
步骤 4 : 所记录的脚本生成并被显示在以下脚本如下所示。
保存记录的测试
第1步:保存测试用例可通过导航到 "File" >> "Save Test" 并将文件保存在选择的位置。该文件保存为.HTML为默认值。
该测试也可以保存扩展名为 .HTM,.SHTML和.XHTML。
保存测试套件
测试套件是可以作为一个单独的实体来执行测试的集合。
步骤1:创建一个测试套件可通过导航到 "File" >> "New Test Suite" 如下所示:
步骤2:该测试可以通过选择选项来记录,一个接一个 从 "File" 菜单中的"New Test Case" .
步骤3:个人测试使用单独的名称来保存 "Test Suite".
执行记录的测试
所记录的脚本,执行的任何脚本可通过单击在工具栏中的按钮 "Play entire suite" 或 "Play current test" 。
第1步: 运行状态可以可以看出,在显示的通过和失败的测试号状态窗格。
第2步:一旦步执行,用户可以看到结果在“Log”窗格。
第3步:在执行每个步骤之后,测试步骤的背景变成“绿色”,如果获得通过如果失败则为“红”,,如下图所示。
Selenium IDE 测试
调试是为了发现和修复测试脚本,任何脚本开发的共同步骤是错误的处理。为了使这一过程更加稳固,我们可以使用Selenium IDE的一个插件叫“Power Debugger”
Step 1 : 安装Selenium IDE的Power Debugger,导航到 https://addons.mozilla.org/en-US/firefox/addon/power-debugger-selenium-ide/ 然后点击 "Add to Firefox" 链接如下所示:
Step 2 : 现在启动 'Selenium IDE' 会发新的图标, "Pause on Fail" 在录制工具栏,如下图所示。点击它为 ON。 当再次点击,将它打开为"OFF"。
Step 3 : 用户可以打开 "pause on fail" 开或关在任何时间即使测试运行
Step 4 : 一旦测试在暂停的情况下,由于步骤中有一个失败,可以使用通常的暂停/步按钮继续执行测试。如果故障是在任何测试的情况下,最后一个命令执行不会被暂停。
Step 5 : 我们还可以使用断点来了解在这过程中到底发生了什么。插入一个特定步骤一个断点,执行从上下文“右键”,选择“toggle Break Yiibai”相关菜单。
Step 6 : 插入断点则显示暂停图标,特定步骤如下所示。
Step 7 : 当我们执行该脚本,该脚本将暂停执行插入断点的地方。这将有助于计算一个元素等的值/表示在用户执行过程中。
Selenium - IDE模式匹配
在Selenium IDE中,如定位器,模式是selenium中经常使用的一种类型的参数。它允许用户描述特殊字符的模式。很多时候,我们想核实文字是动态的,在这种情况下,模式匹配是非常有用的。
模式匹配是用于所有验证点命令 - VerifyTextPresent,verifyTitle,verifyAlert,assertConfirmation,verifyText和verifyPrompt
有三种方法来定义一个模式 - 通配符,正则表达式和精确。
通配符
通配已经在Linux或Windows使用的文件匹配模式,而寻找一个特定的文件类型,如* doc或*.JPG,大多数技术人员。但通配硒只支持三个特殊字符:*,?和[]。
* - 匹配任何数目的字符。
? - 匹配单个字符。
[ ] - 所谓字符类,可以匹配括号内发现的任何单个字符。 [0-9]匹配任何数字
要指定selenium 命令glob,前缀与关键字的模式'glob :“。例如,如果想搜索的文本“tax year 2013”或“tax year 2014”,那么可以使用“tax year *”来代替,如下图所示。
然而关键字的用法“glob:”是可选的,而指定文本模式,因为Selenium的匹配模式是默认。
命令 | 目标 | 值 |
---|---|---|
clickAndWait | link=search | |
verifyTextPresent | glob: tax year * |
精确模式
模式带有前缀“exact:'能匹配给定的文本。用户希望字符串值精确匹配,即没有globe 的操作符,我们可以使用“exact”的模式如下图所示。在这个例子中,操作符'*'将作为普通字符,而不是一个模式匹配通配符。
命令 | 目标 | 值 |
---|---|---|
clickAndWait | link=search | |
verifyValue | exact: *.doc |
正则表达式模式
正则表达式是当中匹配技术中可用的模式是最有用的。Selenium 支持完整的Java语言支持reugular表达模式。因此,用户通过不再受限于*,?和[]匹配模式。
要使用正则表达式模式,我们需要与任何前缀“regexp:”或“regexpi”。前缀“regexpi”是不区分大小写的。 glob: 和exact: 模式是正则表达式模式的子集。一切完成使用 glob: 和exact:可以完成与正则表达式。
示例
例如,下面将测试,如果与ID“name”输入的字段中包含字符串“tax year”,'Tax Year' 或 'tax Year'。
命令 | 目标 | 值 |
---|---|---|
clickAndWait | link=search | |
verifyValue | id=name | regexp:[Tt]ax ([Yy]ear) |
Selenium用户扩展
这很容易扩展Selenium IDE加入自定义操作,断言和定位,策略,这是通过添加方法,在JavaScript的帮助下Selenium 对象原型。在启动时,Selenium会自动寻找通过这些原型方法,使用名称的模式来识别哪些是行动,断言和定位器。
让我们使用JavaScript添加一个'while'循环在Selenium IDE。
步骤 1 : 要添加js文件,首先导航到https://github.com/darrenderidder/sideflow/blob/master/sideflow.js和复制脚本和地点将其保存在本地文件夹下为 “sideflow.js”,如下图所示。
第2步:现在启动“Selenium IDE”,然后导航到"Options" >> "Options",如下图所示。
第3步:点击“Browse”按钮下的“Selenium Core Extensions”区域产并指向我们已经保存在第1步中的js文件。
第4步:重新启动Selenium IDE。
第5步:现在将有机会获得一些更多的命令,如 "Label" "While"等
第6步:现在,我们创造出在Selenium IDE内的循环,这是能够执行的,如下图所示。
Selenium IDE- 不同的浏览器
Selenium IDE脚本只能对火狐的工具Firefox插件运行测试。使用Selenium-IDE开发的测试可以对其他浏览器所保存为Selenium网络驱动器或硒的远程控制指令码执行。脚本只能对火狐的工具Firefox插件运行测试。使用Selenium-IDE开发的测试可以对其他浏览器所保存为Selenium网络驱动器或硒的远程控制指令码执行。更多关于Selenium的webdriver和Selenium的远程控制,在后面的章节有详细讲解。
第1步:打开Selenium IDE任何已保存的测试
第2步:定位到“File”菜单,并选择“Export Test Suite As”,而选择将被列出。
步骤3:现在让我们导出脚本“WebDriver”,并将其保存为同样的名称。
第4步:如下图所示,显示保存webdriver文件。
Selenium浏览器自动化测试使用(1)的更多相关文章
- Selenium浏览器自动化测试工具
目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...
- selenium浏览器自动化测试框架文档(修正版)
写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还 ...
- Selenium浏览器自动化测试框架
selenium简介 介绍 Selenium [1] 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 1 ...
- Selenium浏览器自动化测试使用(2)
Selenium - 环境安装设置 为了开发Selenium RC或webdriver脚本,用户必须确保他们有初始配置完成.有很多关联建立环境的步骤.这里将通过详细的讲解. 下载并安装Java 下载并 ...
- 杂项-自动化测试工具:Selenium(浏览器自动化测试框架)
ylbtech-杂项-自动化测试工具:Selenium(浏览器自动化测试框架) Selenium 是一个用于Web 应用程序测试的工具.Selenium 测试直接运行在浏览器中,就像真正的用户在操作一 ...
- selenium + python 自动化测试环境搭建
selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...
- Selenium终极自动化测试环境搭建(一) Selenium+Eclipse+Junit+TestNG
Selenium终极自动化测试环境搭建(一)Selenium+Eclipse+Junit+TestNG 第一步 安装JDK JDk1.7. 下载地址:http://www.oracle.com/tec ...
- selenium+python自动化测试
F12: 右键 选择复制 path 在selenium+python自动化测试(一)–环境搭建中,运行了一个测试脚本,脚本内容如下: from selenium import webdriver ...
- 【转载】selenium与自动化测试成神之路
Python selenium —— selenium与自动化测试成神之路 置顶 2016年09月17日 00:33:04 阅读数:43886 Python selenium —— selenium与 ...
随机推荐
- robotframework冷门关键字
1.Reload Page 模拟页面重载 2.Register Keyword To Run On Failure 参数: Keyword 描述: 当Selenium2Library类库关键字执行失败 ...
- 微信小程序传递URL中含有特殊字符
小程序传递URL中含有特殊字符"="时,解决办法:先encodeURIComponent,取到值以后再decodeURIComponent 首先在A页面 var urls = en ...
- Maven - 深入理解maven构建生命周期和各种plugin插件
作者:亚当-adam 来源:CSDN 原文:https://blog.csdn.net/zhaojianting/article/details/80321488 版权声明:本文为博主原创文章,转载请 ...
- java 自加和短路问题 几个例子
x++可以看做一个独立的变量 如int a=x++;x的值先把他赋值给x++然后X++再赋值a,最后x再自加1 ++X int a=++ X 先自加1 x的值赋值给++x然后++x再赋值a ...
- JPA 基本使用
ORM简介 对象关系映射(Object Relational Mapping,简称ORM),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换. 实现ORM思想的框架:Mybati ...
- SpringBoot-application:application.yml/配置文件详解
ylbtech-SpringBoot-application:application.yml/配置文件详解 springboot采纳了建立生产就绪spring应用程序的观点. Spring Boot优 ...
- PAT甲级——A1121 Damn Single【25】
"Damn Single (单身狗)" is the Chinese nickname for someone who is being single. You are suppo ...
- Facebook分布式框架—Thrift介绍。
Thrift介绍 Thrift是一个分布式RPC框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, ...
- Java 面试题经典 77 问(含答案)!
金三银四了,3月底,4月初,找工作换单位的黄金时期.4月初将会有有一大批职场人士流动... 作为Java开发码农的你是不是也在蠢蠢欲动,或者已经搞了几轮车轮战了? 我们为大家准备了 77 道经典 Ja ...
- Nodejs之路(三)—— Nodejs之Express框架
Express 原生的 http 在某些方面表现不足以应对我们的开发需求,所以我们需要使用框架来加快我们的开发效率.框架的目的就是提高效率,让我们的代码更高度统一 在Node 中,有很多 Web 开发 ...