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创建测试,如下面的步骤

  1. 记录和测试添加命令

  2. 保存测试记录

  3. 保存测试程序

  4. 执行测试记录

在测试中记录和添加命令

为了演示目的,我们将利用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)的更多相关文章

  1. Selenium浏览器自动化测试工具

    目录 Selenium浏览器自动化测试工具 Selenium模块在爬虫中的使用 Python简单使用Selenium Selenium的基本操作 Selenium爬取动态加载的数据 Selenium动 ...

  2. selenium浏览器自动化测试框架文档(修正版)

    写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还 ...

  3. Selenium浏览器自动化测试框架

    selenium简介 介绍 Selenium [1]  是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 1 ...

  4. Selenium浏览器自动化测试使用(2)

    Selenium - 环境安装设置 为了开发Selenium RC或webdriver脚本,用户必须确保他们有初始配置完成.有很多关联建立环境的步骤.这里将通过详细的讲解. 下载并安装Java 下载并 ...

  5. 杂项-自动化测试工具:Selenium(浏览器自动化测试框架)

    ylbtech-杂项-自动化测试工具:Selenium(浏览器自动化测试框架) Selenium 是一个用于Web 应用程序测试的工具.Selenium 测试直接运行在浏览器中,就像真正的用户在操作一 ...

  6. selenium + python 自动化测试环境搭建

    selenium + python 自动化测试 —— 环境搭建 关于 selenium Selenium 是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操 ...

  7. Selenium终极自动化测试环境搭建(一) Selenium+Eclipse+Junit+TestNG

    Selenium终极自动化测试环境搭建(一)Selenium+Eclipse+Junit+TestNG 第一步 安装JDK JDk1.7. 下载地址:http://www.oracle.com/tec ...

  8. selenium+python自动化测试

    F12: 右键   选择复制  path 在selenium+python自动化测试(一)–环境搭建中,运行了一个测试脚本,脚本内容如下: from selenium import webdriver ...

  9. 【转载】selenium与自动化测试成神之路

    Python selenium —— selenium与自动化测试成神之路 置顶 2016年09月17日 00:33:04 阅读数:43886 Python selenium —— selenium与 ...

随机推荐

  1. buff/cache内存占用过多

    通过free -m 查看到 buff/cache的值比较大,导致可使用的内存有120M左右了 通过下面的命令,清除缓存 echo 1 > /proc/sys/vm/drop_caches ech ...

  2. java 数组常见操作

    1.遍历  依次访问数组中的每个元素 public class ArrayDemo04 { public static void main(String[] args) { int[] arr = { ...

  3. 计算几何——圆卡精度cf1059D

    double 在1e17以后就不能顾及小数,所以用一下加精度的技巧 sqrt(r*r-d*d)=sqrt(r+d)*sqrt(r-d) 遇到误差在几位以内的注意要修改二分的精度,用最大的数据去乘以精度 ...

  4. NOIP2016 解题报告

    D1T1 玩具谜题 xjb模拟即可 #include<bits/stdc++.h> #define N (100000+5) using namespace std; inline int ...

  5. 尚学linux课程---7、linux系统管理命令

    尚学linux课程---7.linux系统管理命令 一.总结 一句话总结: 查网络:netstat -ntpl 查进程:ps 1.需要下载163yum源(从外部源同步仓库)里面的所有rpm文件? re ...

  6. Docker系列(二):Docker基础命令

    docker的部署安装(Linux kernel至少3.8以上): yum install docker docker1.8安装:(下面 是两个命令) # cat >/etc/yum.repos ...

  7. Android Support 包的作用、用法

    1, Android Support V4, V7, V13是什么?本质上就是三个java library. 2,  为什么要有support库?如果在低版本Android平台上开发一个应用程序,而应 ...

  8. URL类发送请求

    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...

  9. 5.1_Spring Boot2.x安装Docker

    1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker 是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用 ...

  10. 2019 Multi-University Training Contest 6 Nonsense Time (纯暴力)

    题意:给你一个n的排列,起初这些数都不能用, 然后还有一个数组 第 i 个数表示下标为 i 的数能够使用. 问每一个 i 对应的最长上升子序列. 题解: 可以通过倒推,从后往前考虑转化一下 ,然后就是 ...