• 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添加。

 

posted on 2016-10-16 18:41  小狮子zzy  阅读(434)  评论(5编辑  收藏  举报