`
langgufu
  • 浏览: 2291922 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Selenium IDE实践(使用Selenium录制)

阅读更多

Selenium是一个很好用的Web自动化测试工具。Aaron很久以前使用过Selenium,不过仅仅用了其提供的API来写测试代码,也在blog上发过一个简单的代码示例。近来有好几个博友加我MSN问我有关Selenium录制的问题,可惜以前没有使用过,爱莫能助。鉴于此,昨天晚上磨叽了一阵子终于让脚本给跑起来了。Aaron希望对于那些博友及其他人会有帮助。

Selenium IDE简介和安装

Selenium录制功能是由Selenium IDE实现的。根据官方网站当前的介绍:

Selenium IDE is a Firefox add-on that records clicks, typing, and other actions to make a test, which you can play back in the browser.

上面已经写的很清楚了,Selenium IDE可以帮助我们记录下点击,输入等行为并可以支持在浏览器中回放。

当然还有一点想必读者已经看出来了,Selenium IDE是一个Firefox插件,所以Selenium当前的版本(2009-1-18)是不支持IE的录制的,当然这对于脚本的使用影响并不是很大——除非你是想录制之后直接使用,那你就会失望了,selenium当前的版本并没有达到那种强悍的程度。

Selenium IDE的安装很简单,如果使用Firefox 2.0,可以直接将官网上下载的文件(例如selenium-ide-1.0-beta-2.xpi)置于Firefox安装路径下的extensions文件夹(默认安装路径C:\Program Files\Mozilla Firefox\extensions,而Firefox1.5的默认路径在C:\Program Files\Firefox Plus\App\firefox\extensions)下,然后关闭当前打开的Firefox窗口,重新打开即可执行自动安装。Aaron在使用过程中并未出现过安装失败的情况。

如果你使用的是Firefox 3.0,恭喜你中奖了:你会失败,原因也很简单,selenium IDE目前支持的最高版本还没有达到我们3.0的高度。(更正:感谢一楼提醒,Aaron已验证1.0 beta 2版本的Selenium IDE可以在Firefox3中安装成功,给大家造成的误导Aaron表示诚挚的歉意)

另外,需要提醒的是:使用最新版本的Selenium IDE录制可能会导致录制失败(selenium-ide-1.0-beta-1.xpi,selenium-ide-1.0-beta-2.xpi版本在Aaron使用过程中均会出现错误,提示:table view is not available in this format),这个bug已经被人提交到Selenium论坛上面去了,提交者使用的是Win XP,而Aaron使用的是Win 2003,因此为了避免大家浪费时间——尽管只是一种可能性的浪费,Aaron推荐暂时使用我试验中使用的0.8.7版本。

声明:因为随着版本的变化,本文中的部分内容与最新版本的使用可能会不一致,因此Aaron介绍的内容适用于于2009-1-18之前的selenium版本:

Project

Release Date

Version

Selenium Core

Jan 12, 2009

1.0 beta 2

Selenium IDE

June 3

2008 1.0 beta 2

Selenium RC

Jan 12, 2009

1.0 beta 2

Selenium Grid

Nov 30, 2008

1.0.3

Selenium IDE脚本录制

好了,安装完成了,接下来我们就直接使用IDE来录制吧。启动Firefox浏览器,在Firefox菜单栏中单击“工具”菜单,我们会看到Selenium IDE是其子菜单:

单击Selenium IDE项我们可以看到弹出Selenium IDE窗口:

然后我们就可以使用Selenium IDE进行录制了。至于录制的详细过程我就不详细介绍了,不过还是提醒大家一下,我们可以使用Selenium IDE的菜单栏“Options”菜单中的“Format”子菜单将脚本转化为各自所需的语言类型。

Aaron在文章接下来的部分使用C#作为示例语言。

编辑Selenium IDE脚本

Aaron录制的脚本工作流程是:打开Firefox浏览器->打开Google首页->在google搜索框中输入“google”->左键单击“google 搜索”按钮->在新页面选中“图片、新闻搜索”以验证:

最后得到的C#脚本如下:

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;

namespace SeleniumTests
{
    [TestFixture]
    
public class NewTest
    {
        
private ISelenium selenium;
        
private StringBuilder verificationErrors;

        [SetUp]
        
public void SetupTest()
        {
            selenium = 
new DefaultSelenium("localhost"4444"*firefox""http://www.google.com");
            selenium.Start();
            verificationErrors = 
new StringBuilder();
        }

        [TearDown]
        
public void TeardownTest()
        {
            
try

            {
                selenium.Stop();
            }
            
catch (Exception)
            {
                
// Ignore errors if unable to close the browser
            }
            Assert.AreEqual(
"", verificationErrors.ToString());
        }

        [Test]
        
public void TheNewTest()
        {
            selenium.Open(
"http://www.google.cn/");
            Assert.AreEqual(
"Google", selenium.GetTitle());
            selenium.Type(
"q""google");
            selenium.Click(
"btnG");
            selenium.WaitForPageToLoad(
"30000");
            Assert.AreEqual(
"google - Google 搜索", selenium.GetTitle());
            
try
            {
                Assert.IsTrue(selenium.IsTextPresent(
"图片、新闻搜索"));
            }
            
catch (AssertionException e)
            {
                verificationErrors.Append(e.Message);
            }
        }
    }
}

一般情况下,这些录制的脚本在Selenium IDE中会重新运行成功,但如果我们将脚本直接拿出来在我们自己的IDE下会怎么样呢?

为了更方便编辑我们录制的脚本,将这段代码拷贝到VS中:新建一个类库项目TestSeleniumSimple,并将类库项目下的class1.cs文件中的内容用录制的脚本覆盖。编译我们的类库项目TestSeleniumSimple,很遗憾我们看到了

不用惊讶,因为我们仔细看一看代码就知道了,原来录制的脚本中引用了一些内容:

using NUnit.Framework;

using Selenium;

对于第一个我们需要安装NunitFramework,这个可以到Nunit官网上下载,如果你同时下载了Selenium-RC,你可以在\Selenium-RC\selenium-remote-control-1.0-beta-2-dist\selenium-remote-control-1.0-beta-2\selenium-dotnet-client-driver-1.0-beta-2文件夹下找到它,同时也可以找到我们“using Selenium”所需要的ThoughtWorks.Selenium.Core.dll,添加对这两个dll的引用,然后再编译。这个时候就可以生成成功了。

在测试框架中回放脚本

好事总是多磨,我们编译成功的脚本很可惜,不能运行。在编译完脚本后出现Nunit不能使用的问题,不知道是偶然还是有必然因素。还好Aaron的脚本是在虚拟机中录制的,所以Aaron将编译成功的脚本直接拿到了物理机上运行。打开Nunit(Aaron使用的是NUnit-2.4.3-net-2.0版本),然后导入TestSeleniumSimple.dll(TestSeleniumSimple类库的产品),点击运行,又出错了:

原来是服务器,还记得我们刚才引用了Selenium-RC中的两个DLL吗?Selenium RC中RC是Remote Client的意思,既然有Client那么一定是有Server了,实际上还真有这样一个Selenium-server,一个用来启动web浏览器的家伙。我们找到Selenium-RC的目录下的Server子目录A:

\Selenium-RC\selenium-remote-control-1.0-beta-2-dist\selenium-remote-control-1.0-beta-2\selenium-server-1.0-beta-2

里面由一个selenium-server.jar文件,我们需要在命令行下启动这个server。

在命令行下定位到子目录A处,接着输入:

Java –jar selenium-server.jar

这个时候我们可以看到我们顺利启动了Selenium Server了,试着运行一下刚才失败的测试脚本,终于绿了:

我们还可以注意到命令行工具中也有运行的信息:

比如我们在上图的倒数第四条信息中看到了:

13:04:57.406 INFO - Command request: isTextPresent[图片、新闻搜索, ] on session

f68a3d7d0d7b4de8bfdb95ae1c553e6b

等很详细的内容。

总结

其实我们也可以不使用NUnit,而直接使用VSTS中Test Edition组件来运行我们的测试脚本,为了使脚本更稳定或者运行更快,我们也可以编辑脚本对时间做一些处理。我们也可以编辑脚本已增加更多的断言以确保待测页面显示了我们想要的内容或者没有显示我们不想要的内容等等。

对于Selenium IDE录制脚本,Aaron稍微总结一下:

1, 使用Firefox

2, 编译之前添加对于NUnit.Framework.dll和ThoughtWorks.Selenium.Core.dll的引用

3, 记得启动Selenium Server

4, 为提高脚本质量以满足测试稳定性等需求,应该对录制的脚本进行编辑

当然,在使用Selenium的过程中,我们还会碰到其他各种奇怪的问题而导致脚本出现问题。限于篇幅和时间问题,Aaron就不继续讨论了。另外,我们也可以写一些程序来帮助我们更好的使用Selenium(比如自动启动selenium-server,自动运行脚本等等),这些内容Aaron也留给大家自己去实践~

分享到:
评论

相关推荐

    pythonseleniumide使用-SeleniumIDE基础使用教程.pdf

    pythonseleniumide使⽤_SeleniumIDE基础使⽤教程 Selenium IDE 基础使⽤教程 简介及安装 Selenium IDE 是⼀个易于使⽤的Firefox插件。它提供了⼀个图形⽤户界⾯,可进⾏脚本录制及导出。其记录的脚本可以被转换成...

    SeleniumIDE实践(使用Selenium录制)

    Selenium是一个很好用的Web自动化测试工具。...SeleniumIDE简介和安装Selenium录制功能是由SeleniumIDE实现的。根据官方网站当前的介绍:SeleniumIDEisaFirefoxadd-onthatrecordsclicks,typing,andotheracti

    Selenium ide的具体操作录制和回放

    Selenium ide的具体操作录制和回放

    selenium_ide_button-1.2.0

    录制工具selenium_ide_button-1.2.0-fx.xpi

    seleniumIDE2.9.1-xpi下载

    现在的firefox都不支持老版本的下载了,要使用firefox的seleniumIDE导出脚本就靠他了

    谷歌浏览器selenium-ide插件,录制脚本可以转换各种形式代码,如python,java等

    谷歌浏览器selenium-ide插件,录制脚本可以转换各种形式代码,如python,java等 使用方法:直接将此谷歌浏览器插件拖到谷歌浏览器里安装(拖拽到扩展程序页面),然后就可以跟火狐浏览器ide工具一样录制脚本,运行...

    selenium安装文件(jdk+seleniumIDE RC+安装使用文档)

    1. 打开firefox,打开seleniumIDE进行脚本录制和回放,调试的时候可能需要firebug插件查看页面中的对象; 2. 生成junit4的java代码后,导入eclipse的java工程中,启动seleniumRC,然后直接运行回放脚本。 需要...

    selenium IDE 2.9.1.1

    火狐插件支持火狐版本46以下 ,用selenium IDE录制的代码可导出Junit

    使用SeleniumIDE录制UI自动化测试脚本UI自动化录制.docx

    使用SeleniumIDE录制UI自动化测试脚本UI自动化录制.docx

    selenium安装文件(seleniumIDE RC+安装使用文档)

    1. 打开firefox,打开seleniumIDE进行脚本录制和回放,调试的时候可能需要firebug插件查看页面中的对象; 2. 生成junit4的java代码后,导入eclipse的java工程中,启动seleniumRC,然后直接运行回放脚本。 需要...

    selenium-ide-1.9.0

    Selenium IDE是Firefox的一个插件,是可以进行脚本录制以及案例转换,所以Selenium IDE+Firebug会成为你日后写测试案例的两大助手(IE下可以使用Selenium Core+IEDevelperToolBar)。

    Selenium-IDE 插件

    Selenium IDE 是一个浏览器插件,可...Selenium IDE 插件使得创建简单的自动化测试脚本变得非常容易,但对于更复杂的测试场景,可能需要使用 Selenium WebDriver 或其他 Selenium 工具进行更灵活、稳健的测试自动化。

    selenium_ide-2.9.1

    selenium ide火狐插件,可以录制web自动化导出java/python脚本,适合初级阶段学习

    selenium_IDE_chrome.crx

    官方selenium_IDE_chrome方便在Chrome中录制视频脚本,做web端自动化,有利于selenium基础学习做好入门基础。

    Selenium IDE是firefox的一个插件,可以帮助刚入门的自动化测试供测试,可实现脚本的录制、开发、回放

    Selenium IDE是firefox的一个插件,可以帮助刚入门的自动化测试供测试,在脚本语言不太熟练的情况下,可以通过Selenium IDE实现脚本的录制、开发、回放。 众所周知,「Selenium IDE」是一种记录和回放工具。现在它将...

    selenium_ide-3.8.1-fx.xpi

    火狐浏览器自动化测试插件,Selenium IDE 是工具套件中最简单的,通过录制并重播功能,可以快速创建测试用例。这个跟QTP中的对应部分类似。不用怎么费劲就能学会。因为它很简单,IDE只能用来分析元素的原型,而不是...

    selenium-ide-1.9.0.xpi

    Selenium IDE是Firefox的一个插件,是可以进行脚本录制以及案例转换,所以Selenium IDE+Firebug会成为你日后写测试案例的两大助手(IE下可以使用Selenium Core+IEDevelperToolBar)。

    Selenium IDE 3.1.1 crx.zip

    Selenium IDE是web自动化工具,可以录制和回放,通过工具的录制来创建测试用例,整个测试用例的执行过程

    selenium ide1.91

    2017最新的selenium ide1.91 的版本 它支持火狐54的版本,Selenium 不同于一般的测试工具。一般的脚本测试工具录制脚本,实际上都是通过拦截 浏览器收发的http 请求来实现的。事实上并没有办法录制用户对html 页面的...

Global site tag (gtag.js) - Google Analytics