第二章 测试环境搭建(上)
------Web自动化测试之Webdriver(python)--从零到熟练(系列)
经过上面的讨论,我们已经窥探到自动化测试的端倪,但是要想写出一个可以运行的自动化测试用例,我们还需要更深入的学习。以下的内容,我们将一步步的来探讨自动化测试的秘密。
“工欲善其事,必先利其器。”当然自动化测试也不例外,我们用到的工具及语言如下:
(1)Selenium IDE:作为火狐的一个插件,是我们Web自动化测试中必不可少的。
(2)FireBug:火狐的一个插件,帮助我们定位页面元素。
(3)Eclipse:强大的代码编辑工具,相信大家并不陌生。
(4)PyDev:Eclipse的插件,用于编辑Python代码。
(5)Python:我们测试用例的编码语言,请自行学习,本系统教程是不再讲究Python编程的内容。
(6)WebDriver:selenium2.0,Web自动化测试主要框架。
2.1 Selenium IDE
2.1.1 Selenium IDE简介
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:
Ø 测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
Ø 测试系统功能——创建衰退测试检验软件功能和用户需求。支持自动录制动作和自动生成。
Ø 支持python、Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。
Selenium IDE
Selenium IDE是基于FIREFOX浏览器的一个插件,提供GUI界面来运行Selenium测试。Selenium IDE提供脚本录制功能,可以将用户在浏览器中执行的操作记录下来,生成各种形式的脚本,可以将这些脚本保存供以后使用。
2.1.2 Selenium安装
方法一,安装Selenium IDE的步骤如下:
Ø 从www.openqa.org/selenium-ide/download.action下载Selenium IDE(一个XPI后缀的文件)。
Ø 启动FIREFOX浏览器,打开刚才下载的文件。
Ø 重启FIREFOX浏览器,在工具菜条下应该就可以看到Selenium IDE菜单项。
方法二,从Firefox浏览添加
Ø 打开浏览器,打开菜单“工具”à“附加组件”,在打开的页面搜索Selenium。
Ø 安装Selenium IDE Button,安装完成的重启浏览器。
Ø 定制工具栏,将Selenium IDE Button拖到工具栏上,然后单击这个Button,按提示安装Selenium IDE,这个时候选择最新的版本即可。
注:Selenium IDE安装完成后,默认打开了所有支持语言的格式,如图2.1.2所示,我们可以禁用到不用的语言项。
2.1.3 Selenium IDE的使用
下面我们将逐步讲Selenium IDE的使用方法:
Ø 安装Selenium IDE。
Ø 启动Selenium IDE:打开“工具”—>“Selenium IDE”,IDE启动后,弹出如图2.1.3.1对话框:
上图标明了一些Selenium IDE的主要功能。其中,由Command,Target,Value组成的表格就是脚本,每个脚本都是由一条一条的Action(行为)组成,而每个Action又由(Command,Target,Value)三者组成。Command就是《API参考手册》提到的内容,Target指的是Web中的某个对象,比如:文字,输入框等等,如果选取对象呢?呵呵,这里就用到了XPath,不熟悉可以参考《XPath的使用》,后面的课程我们也将会讲到相关内容;而Value就是这个对象的值。
Ø 脚本的录制及运行
当弹出上面的IDE窗口后,我们就可以开始Selenium的脚本录制了,右上角有个红色的圆点,当它下按时(如上图)就表示IDE正在进行脚本录制。OK,开始录制,录制的时候,直接操作Firefox浏览器窗口就可以了,IDE会自动记录你的操作的,下面我演示一个例子:
(1)打开IDE,在Base URL框内输入你要录制的网站,如:http://www.baidu.com。
(2)在地址栏输入:http://www.baidu.com/,登录到百度首页。
(3)IDE打开的时候就是录制状态,如果录制按钮没有按钮,按下该按钮然后刷新页面,在查询框输入“hyddd”。
(4)按“百度一下”按钮,查询结果。
(5)进入搜索结果页面后,右键单击第一条记录(即:hyddd - 博客园),在右键弹出菜单中,单击“Verify TestPersent hyddd - 博客园”。
(6)单击第一条记录(即:进入hyddd - 博客园)
(7)Firefox弹出一个新Tab页面,并进入了我的博客。
OK,现在看看我们的Selenium
IDE录制的结果吧!如图2.1.3.2所示:
图2.1.3.2 脚本录制结果
上图中,中间的表格就是录制的结果,你可以按“运行脚本”重新回放脚本看看,值得注意的是,在运行时,Firefox可能会认为脚本中最后一个操作(即:步骤7)为非法弹出框,浏览器会自动阻止其弹出,这个需要设置一下Firefox,具体位置是:Firefox->Menubar->Tools->options->content->Block pop-up Window,你可以把钩去掉或者在Exceptions里面添加相应的网址。
到此为止,脚本录制圆满完成!在运行脚本后,你会发现IDE表格的颜色发生了变化,运行前,脚本表格为白色,成功运行完毕后,表格为青色,其中还分为深青色和浅青色两种,浅青色表示:动作成功,如:打开网页成功,点击按钮成功等等,而深青色表示:判断正确,如:“hyddd - 博客园”这段文字在页面中存在等等。
那如果运行失败会是什么样子呢?现在我们看看出错时的情况吧。如图2.1.3.3所示:
出错时,表格可能会出现两种颜色,一种是浅粉红色,一种是深粉红色。浅粉红色表示判断结果为false,这种情况用例还是会继续执行下去,判断的失败不会影响案例的运行,深粉红色表示动作失败,如:没有找到按钮等(如上图),这种情况下案例会停止运行。
2.1.4 Selenium IDE其他的重要功能
Ø 脚本转化保存
Selenium IDE录制完成脚本后,经过我们回放验证,发现可以达到我们的要求,此时我们最想做的事情就是把脚本转化成我们期望的形式保存来了。
不要担心,Selenium IDE有这个功能,如图2.1.4.1所示:
打开“文件”-->“Export Test Case As…”,打开的二级菜单中就是可以转化成的格式。在我们安装Selenium IDE的时候,我们只保存了python和java格式的,而在此只有这两个格式。此时我们需要第一种格式“python2/unittest/WebDriver”,然后在打开的对话框中输入文件名,扩展名输入“.py”,保存即可!
Ø 验证定位方式是否正确
Selenium IDE虽然可以录制脚本,可是在我们使用过程中,如果测试用例是采用模块化编码时,不需要反复录制的。此时,IDE就可以帮我们验证我们的定位方法是否正确。
如图2.1.4.2所示:具体验证方法,我们将在定位页面元素章节讲解。
图2.1.4.2 Selenium IDE验证元素定位
2.2 FireBug
2.2.1 FireBug简介
Firebug是网页浏览器 Mozilla Firefox下的一款开发类插件,现属于Firefox的五星级强力推荐插件之一。它集HTML查看和编辑、JavaScript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。
2.2.2 FireBug的使用
FireBug的安装和使用,可以参考这个文档:http://jingyan.baidu.com/article/fd8044fa97e08c5030137a6c.html,此文档把FireBug的基本使用方法都介绍了一下,还是比较详细的,在此就不一一介绍了!
下面我就把我们自动化测试中对Firebug的应用,以一个实例来简单介绍一下:
Ø 页面元素定位
(1)打开微博,登录一个账号,以本人的账号为例。
(2)查看我的微博昵称“潜龙0318”,在页面HTML编码中的节点,按图2.2.2.1中的步骤所示:
步骤讲解:
(a) 单击浏览器工具栏上Firebug启动按钮,图中1处,启动Firebug。
(b)单击firebug元素查看按钮,图中2处,然后将鼠标移到要定位的元素上,如图中标3处,当昵称“潜龙0318”被框中后,单击鼠标。
(c) 此是Firebug HTML标签下显示的内容被选中的内容,就是昵称对应的元素在HTML中的位置,找到这个位置后,我们就可以编写元素定位的方法了。
Ø 定位方法唯一性查找
当我们用Firebug查到一个元素的某个属性值为“feed_list”,欲用xpath定位,但是如果这个元素的这个属性在页面中不唯一,而且这个元素不是第一个符合条件的元素时,则会定位失败。所以定位前我们需要查看一下唯一性!
如图2.2.2.2所示:
在Firebug的查找框输入“feed_list”,然后单击回车查找。此时就会发现有很多条件条件的元素,证明这个属性值不唯一,所以不能用这个属性值定位。