• 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. Linux-记录一次被当肉鸡行为

    转自:http://huoding.com/2016/03/07/495 话说从前些天开始,我的某台服务器不时会出现外网访问响应速度变慢的情况,不过内网访问倒是一直正常.因为并不是核心服务器,所以一开 ...

  2. 入口点函数的19种消息,AcRxArxApp只处理16种。

    AcRx::AppMsgCode一共有19种消息. 但由IMPLEMENT_ARX_ENTRYPOINT宏实现的App类,只处理了16种消息. 缺: kSuspendMsg = 16,    kIni ...

  3. bzoj3822: 文学

    Description 巨酱和主席是一对好朋友.他们都很喜欢读书,经常一起阅读相关领域书籍,进行系统的学习.一天主席列出了一份列表,里面共 p 本书,其中不乏<约翰克里斯多夫>,<名 ...

  4. 使用air16sdk打包ipa报错

    报错如下图: google下 https://forums.adobe.com/thread/1659726 说明了一切 首先:air sdk中打包ipa 需要使用ios sdk的路径但是这个路径最后 ...

  5. [家里蹲大学数学杂志]第237期Euler公式的美

    1 Euler 公式 $e^{i\pi}+1=0$ (1) 它把 a.  $e:$ 自然对数的底 $\approx 2. 718281828459$ (数分) b.  $i$: 虚数单位 $=\sqr ...

  6. CSS组件架构的设计思想

    不管是设计思想,还是架构,都可以总结为一个词:AO模式.A表示Append,即“附加”的意思,O表示Overwrite,即“重写”的意思.所有的CSS组件都是沿用这种思想来设计的.这也是CSS的特性, ...

  7. jQuery MiniUI开发系列之:HTML标签配置

    全部使用Javascript写一个界面,是一件很困难的事. 1)要求有较高的Javascript编程能力. 2)会造成“代码树”问题.一级又一级子"children",需要&quo ...

  8. SSH框架流程

    流程图 具体步骤 一.实体类 //Serializable在网络的环境下做类传输public class Category implements Serializable { private Inte ...

  9. 用 Navicat 写mysql的游标

    千言万语也比不上一个简单直接明了的小例子: CREATE PROCEDURE pro_users() begin DECLARE myid int; DECLARE no int; ); ); ); ...

  10. Jmeter组件2. Timer 定时器

    关于定时器,首先明确几个概念 定时器在每个Sampler执行之前执行 定时器有作用域,同一个作用域内的定时器会在域内Sampler执行之前都执行掉 如果要让某定时器只作用于一个Sampler,将定时器 ...