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与 ...
随机推荐
- Navicat Premium下载、安装、破解
Navicat Premium 是一套数据库管理工具,让你以单一程序同時连接到 MySQL.MariaDB.SQL Server.SQLite.Oracle 和 PostgreSQL 数据库. 此外, ...
- 解析JQuery Ajax
jQuery是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封 ...
- 基于vue的环信基本实时通信功能
本篇文章借鉴了一些资料,然后在这个基础上,我将环信的实现全部都集成在一个组件里面进行实现: https://blog.csdn.net/github_35631540/article/details/ ...
- python中循环引用导致内存泄漏小案例
首先定义一个Person类和一个Dog类,然后分别实例化对象p和d,给p对象添加一个pet属性 给d对象添加一个master属性此时Person和Dog的应用计数都为2,当del p 和del d后P ...
- C++Builder常用函数
BCB函数集 1.内存分配 函数名称 AllocMem 函数说明 在队中分配指定字节的内存块,并将分配的每一个字节初始化为 0.函数原型如下: void * __fastcall AllocM ...
- react 组件的生命周期 超简版
组件从被创建到被销毁的过程称为组件的 生命周期: 通常,组件的生命周期可以被分为三个阶段:挂载阶段.更新阶段.卸载阶段: 一.挂载阶段 这个阶段组件被创建,执行初始化,并被挂载到DOM中,完成组件的第 ...
- 在VC中使用WebBrowser控件的两方法
ClassWizard方式: 1.创建包装类:View->ClassWizard->Add Class->Form a Type Library->C:/winnt/syste ...
- ul列表元素在float:right后li元素倒转
发现对li元素进行float:right后,虽然成功右浮动,但是的元素是倒转的 解决方案: 对ul进行右浮动,然后对li左浮动 结果
- HttpURLConnection与HttpClient浅析AAAA
. GET请求与POST请求 HTTP协议是现在Internet上使用得最多.最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源. 在介绍HttpURLConnectio ...
- FHS 文件层次标准
FHS:文件层次标准 操作系统自身运行使用的 /bin: 存放可执行的二进制程序,管理员和普通用户都可以使用 /sbin:管理员才能执行的命令 运行正常功能的程序存放位置 /usr/bin /usr/ ...