• Selenium  IDE:它是使用Javascript 脚本语言与CS端的DOM对象进行交互,并且为修改测试用例提供了接口。录制功能是它最大的亮点,录制功能可以让测试人员对需要进行测试的功能流程进行录制并保存操作过程,由此使得测试用例的回放可以完全模拟操作过程;除此之外,还有相应的校验接口,方便了测试人员对于测试的期望值与实际值之间进行验证比较。
  • 安装Selenium  IDE 

a:安装Mozilla Firefox浏览器(41版本),   Mozilla Firefox下载网址:https://www.mozilla.org/firefox

b:下载Selenium  IDE:网址:http://docs.seleniumhq.org/download/(备注:插件是以xpi为扩展名的文件)

c:安装Selenium  IDE:若使用Mozilla Firefox浏览器下载Selenium  IDE,下载后会自动安装,若是其他浏览器则应该将xpi文件直接拖入某个打开的FireFox浏览器的页面进行安装。

d:Selenium  IDE安装完成:在Tools菜单中出现Selenium  IDE的选项单击Selenium  IDE则会出现Selenium  IDE的主界面,那么代表Selenium  ID安装完成。同样使用浏览器工具栏上的快捷键按钮来启动也可。

  • Selenium  IDE界面

Base URL:被测系统的最初URL地址;

工具栏:从左向右依次为执行速度,执行多次测试用例,      执行单个测试用例,暂停执行,单步执行;

录制触发:录制需要测试的功能流程,后续可用于回放;

测试用例(test  case):用于列举出所有的测试用例集合;

测试步骤:列出每一个测试用例所有的执行步骤

Command:下拉框会显示所有的命令,可以自动补齐或者下拉框选择命令。

Target:用于输入定位网页元素的表达式(Find:在Target文本框在输入某个网页元素的定位语句之后,可以点击Find按钮在网页中查找并高亮该元素)

Value:用于输入数值。

信息栏

Log:显示测试运行过程中相关的日志信息;

Reference:显示 Command的相关信息;

UI-Element:显示实际的UI元素的映射信息;

Rollup:(Rollup将一系列Selenium  IDE中可以用的命令打包起来)显示Rollup的规则信息;

  • 第一个测试用例

a:用Mozilla Firefox浏览器打开百度的主页:http://www.baidu.com;

b:在Mozilla Firefox浏览器的Tools菜单中打开Selenium  IDE;

c:点击Selenium  IDE上的录制触发按钮,开始录制测试用例;

d:在百度的主页上的搜索框中输入Selenium  IDE,并点击‘百度一下’,进行搜索;

e:在搜索结果页面上单击鼠标右键并选择assert-Text;

f:点击Selenium  IDE上的录制触发按钮,停止录制。

g:点击在Selenium  IDE页面上的工具栏执行单个测试用例:来回放已经录制好的测试用例;(回放完若无BUG产生,则Test Case栏:最下方runs:1;failures:0;Table栏:所有测试用例的执行步骤均为绿色,且assert语句为高亮深绿色;Log栏:显示执行日志信息;Reference栏:显示单个Command的参考信息)

  • 添加新的Command到当前已录制的测试用例

a:选中需要在后面添加Command的那一个测试步骤

b:打开录制触发按钮,操作网页完成动作

c:再次点击录制触发按钮以结束录制,此时新的动作将会添加到Command执行列表中。

  • 存储页面信息:临时存储页面上的信息,并在后续的过程中使用,方法有store,storeValue,storeText。

a:打开已有的测试用例;

b:选择测试用例的最后一行步骤;

c:单击鼠标右键,弹出菜单,选择Insert new command;

d:添加storeText命令并存储相应的文本信息;

e:重复bcd三个步骤至Insert new command并添加echo命令来打印该存储变量storeText的文本信息

f:结果是运行日志中出现了echo命令的打印信息,storeText的文本信息是Selenium  IDE

  • 与异部Javascirpt和XML(AJAX)进行交互(备注:在浏览器和web服务器之间使用异步数据传输HTTP请求,好处是可以使得网页从服务器请求少量的信息,但是也由此导致了测试时没有得到需要的数据结果而无法正常执行下一步)

以autcomplete为例进行测试,网址为http://jqueryui.com/autcomplete/ 这个demo(模型)的功能就是在Tags输入框输入英文首字母,就会自动弹出备选编程语言列表,之后用户就可以通过鼠标选中列表中的字段自动填充到Tags中。

使用Selenium  IDE完成该测试用例:

a:启动Selenium  IDE并点击录制触发按钮;

b:打开待测试页面;

c:录制的测试用例步骤如图,其中waitForTest就是为了解决AJAX的问题而采用的。(注:新版本中有一些旧的命令不支持,如waitForTestPresent现为waitForTest,通过查看reference就可以看到相关的信息,不再支持的命令会被标注出来)

  • 处理多窗口:通过在测试用例的步骤中使用各种命令的组合和临时变量可以操作多个浏览器之间的监控,

百度谷歌浏览器之间切换测试:在此例中必须确保在火狐中允许打开pop_up窗口且百度主页的地址中允许pop_up窗口的弹出,且此用例中百度主页是第一窗口,通过pop_up窗口打开第二个窗口,

a:在Selenium  IDE中打开百度主页,storeTitle命令用于将百度主页的命令保存到变量中并在后续步骤中使用它,同时定义了加载百度主页的活动窗口为父窗口,open—window窗口会在新pop_up的窗口中打开谷歌主页,并通过pause命令将Selenium  IDE暂停5秒,是新pop_up的窗口有充足的时间加载谷歌主页;

b:操作新pop_up的窗口,此时不可以对新窗口进行操作。首先通过selectwindow命令将新窗口选中,定义这个加载谷歌主页的活动窗口为子窗口。

c:单击谷歌主页上的Image链接如果此时需要在父窗口上添加什么操作,那么需要将当前活动页面的标题变量用j保存起来,这样可以在后续再次找到这个子窗口进行操作;

d:通过selectWindow${i}选中父窗口,也就是之前加载了百度主页的窗口,继而打击‘图片’链接;

e:选中子窗口google Image并关闭该窗口,在选中父窗口‘百度图片’并关闭该父窗口;(备注:为了可以在多个浏览器之间自由切换,必须要先保存当前活动窗口的标题)

  • RoLLup命令:将一系列的Selenium  IDE中可以用的命令封装到一起,作用是为测试用例减肥。

在Selenium  IDE中使用用户自定义的扩展文件:

a:单击Selenium  IDE是Option菜单;

b:打开General界面(Default timeout:默认情况下,数值为30000ms,它的大小影响Selenium  IDE中脚本的执行时间,但此数值可以自行调整,如果某个命令的执行时间超时,在日志中会报错:[error] Time out after 30000ms;Selenium  Core extensions:用户可以根据需求扩展Selenium  IDE的功能,方法就是引入用户自定义的扩展文件,即:user-extension.js,且必须以js为扩展名的文件,单击Browser 按钮并选中需要添加的用户扩展文件即可,随后重启Selenium  IDE,否则扩展功能不能生效;Selenium  IDE extension:用于添加数据文件,只可以解析以js为扩展名的文件,添加完之后也要重启;Remember base URL:base URL 会记住最近一次使用的网址链接;Record assertautomatically:在浏览网页时,Selenium  IDE会自动添加‘assertTitle’命令到测试脚本的步骤中;Record absolute URL:Selenium  IDE会记住网页的绝对路径,如以http/https开头的链接地址;Start recordimmediately on open:Selenium  IDE每次开启就会自动打开录制功能),添加用户自定义扩展文件;

c:接下来的案例要用到的自定义扩展文件的user-extension.js(

登录网易126邮箱:http://www.126.com

用户名:seleniumiderollup

密码:rollup

)代码如下:

Var manager = new RollupManager();

Manager.addRollupRule({

name:'logincommands',

args:[],

commmandMachers:[],

getExpandedCommands:function(args){

Var commands = [];

command,push({

command:'open',

target:'http://www.126.com/'//120邮箱地址的URL})

comman.push({

commad:'type',

target:'id = idinput',//用户名输入框的id

value:'seleniumiderollup'});

comman.push({

commad:'type',

target:'id = pwinput',//用户名输入框的id

value:'rollup 123'});

comman.push({

commad:'type',

target:'id = idinput',//密码输入框的id

value:'seleniumiderollup'});

comman.push({

commad:'clickandwait',

target:'id = loginBtn',//登录按钮的id

value:'seleniumiderollup'});

return commands;}});

在Selenium  IDE主界面添加rollup命令:

a:command选择rollup命令;

b:Target栏选择logincommands,该规则通过RollupManager添加。

SeleniumIDE初级入门的更多相关文章

  1. 响应式Web初级入门

    本文来自我的前端博客,原文地址:http://www.hacke2.cn/about-responsive/ 跨终端时代的到来 当你乘坐各种交通工具(公交.地铁.轻轨.火车)时你会发现,人们都个个低下 ...

  2. Sping AOP初级——入门及简单应用

    在上一篇<关于日志打印的几点建议以及非最佳实践>的末尾提到了日志打印更为高级的一种方式——利用Spring AOP.在打印日志时,通常都会在业务逻辑代码中插入日志打印的语句,这实际上是和业 ...

  3. Linux初级入门(第一次作业)

    Linux初级入门 在本科期间学过一些Linux的简单命令,再次接触Linux不仅巩固了知识还学习到了很多新的东西. 什么是操作系统? 操作系统,英文名称Operating System,简称OS,是 ...

  4. Spring AOP初级——入门及简单应用

      在上一篇<关于日志打印的几点建议以及非最佳实践>的末尾提到了日志打印更为高级的一种方式——利用Spring AOP.在打印日志时,通常都会在业务逻辑代码中插入日志打印的语句,这实际上是 ...

  5. Linux初级入门(一)

    Linux是一种开源电脑操作系统内核,它是一个用C语言写成,符合POSIX标准的类Unix操作系统.Linux最早是由芬兰黑客 Linus Torvalds为尝试在英特尔x86架构上提供自由免费的类U ...

  6. hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2

    问题导读 1.改变hdfs文件的权限,需要修改哪个配置文件?2.获取一个文件的或则目录的权限,哪个命令可以实现?3.哪个命令可以实现设置访问控制列表(ACL)的文件和目录? 接上篇:Hadoop[2. ...

  7. hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1

    问题导读1.Hadoop文件系统shell与Linux shell有哪些相似之处?2.如何改变文件所属组?3.如何改变hdfs的文件权限?4.如何查找hdfs文件,并且不区分大小写? 概述文件系统 ( ...

  8. hadoop入门手册3:Hadoop【2.7.1】初级入门之命令指南

    问题导读1.hadoop daemonlog管理员命令的作用是什么?2.hadoop如何运行一个类,如何运行一个jar包?3.hadoop archive的作用是什么? 概述 hadoop命令被bin ...

  9. Spring Cloud实战之初级入门(六)— 服务网关zuul

    目录 1.环境介绍 2.api网关服务 2.1 创建工程 2.3 api网关中使用token机制 2.4 测试 2.5 小结 3.一点点重要的事情 1.环境介绍 好了,不知不觉中我们已经来到了最后一篇 ...

随机推荐

  1. 【Unity3D基础教程】给初学者看的Unity教程(一):GameObject,Compoent,Time,Input,Physics

    作者:王选易,出处:http://www.cnblogs.com/neverdie/  欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点推荐.谢谢! Unity3D重要模块的类图 最近刚刚完成了一 ...

  2. c++读写二进制文件

    要读取文件必须包含<fstream>头文件,这里包含了C++读写文件的方法,可以使用fstream 类,这个类可以对文件进行读写操作.   1.打开文件.   打开文件可以有两种方式,第一 ...

  3. [JBoss] - JBAS015874: JBoss AS 7.1.1.Final "Brontes" started - Eclipse中不能正常启动的解决方法

    在使用Eclipse + Jboss插件时,如果有时写配置文件写错,在重新启动发布JBoss时,会出现: 14:43:49,317 INFO  [org.jboss.as] (Controller B ...

  4. EM算法 The EM Algorithm

    (EM算法)The EM Algorithm http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html EM算法原理 http: ...

  5. android学习笔记51——SQLite 手势Gesture

    手势Gesture 所谓手势,是指用户手指或触摸笔在触摸屏幕上的连续触碰行为. Androi对两种手势行为都提供了支持: 1.对于第一种手势而言,android提供了手势检测,并为手势检测提供了相应的 ...

  6. ElasticSearch安装及部署

    安装及部署 一.环境配置 操作系统:Cent OS 7ElasticSearch版本:1.3.2JDK版本:1.7.0_51SSH Secure Shell版本:XShell 5elasticsear ...

  7. ulipad python配置

    运行                                                                                   打开程序之后,界面非常友好,创 ...

  8. .NET:序列化和反序列化

    .NET:序列化和反序列化 需要反序列化的字符串: { "LouPanID": "sample string 1", "LouPanHao" ...

  9. 黄聪:Access-Control-Allow-Origin,JS跨域解决办法

    .htaccess添加下面代码: <IfModule mod_headers.c> Header add Access-Control-Allow-Origin "*" ...

  10. MapReduce编程job概念原理

    在Hadoop中,每个MapReduce任务都被初始化为一个job,每个job又可分为两个阶段:map阶段和reduce阶段.这两个阶段分别用两个函数来表示.Map函数接收一个<key,valu ...