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也留给大家自己去实践~
相关推荐
Selenium IDE 是一款基于录制和回放操作的 web 自动化测试工具,是火狐浏览器的插件。通过本文档,读者可以学习如何安装和启动 Selenium IDE,如何使用 Selenium IDE 创建和运行测试用例,如何使用 Selenese 脚本...
使用Selenium IDE进行Web测试,你可以通过录制功能创建测试脚本。只需在浏览器中打开目标网站,启动IDE的录制模式,执行你需要测试的操作,IDE会自动记录下这些操作。录制完成后,你可以查看并编辑生成的脚本,添加...
Selenium IDE录制和回放 Selenium IDE是安装在火狐上的插件,安装详见另外的文档。Selenium IDE提供了录制和回放的功能,可以自动化浏览器操作,提高测试效率。 一、基本设置 Selenium IDE的基本设置包括点击...
要在 Firefox 上使用 Selenium IDE,首先需要通过浏览器的扩展商店或者直接下载插件进行安装。安装完成后,可以通过菜单栏的 "开发者" -> "Selenium IDE"(在较早版本的 Firefox 中,可能在 "工具" 菜单中)找到它。...
在 Chrome 浏览器上使用的 Selenium IDE 插件,为软件测试人员提供了极大的便利,减少了手动测试的工作量。 **一、Selenium IDE 插件的下载与安装** 1. 首先,访问官方渠道或可靠的下载站点获取 Chrome 浏览器的 ...
本文将详细介绍 Selenium IDE 的基本使用,包括安装、配置、录制脚本、验证和回放等内容。 一、Selenium IDE 的安装 Selenium IDE 是 Selenium 在 Firefox 下的一个脚本录制插件,使用 Firefox 下载安装。首先,...
1. **录制与回放**:Selenium IDE能够自动记录用户的浏览器操作,并将其转化为可执行的测试脚本。这种功能极大地简化了测试脚本的编写,尤其是对于新手而言。 2. **支持多种语言**:Selenium IDE可以导出测试脚本到...
- 使用Selenium IDE录制的脚本通常较为基础,对于复杂的动态网页元素可能无法正确识别,此时需要手动调整脚本。 通过以上步骤,用户可以轻松地在Firefox浏览器上安装并使用Selenium IDE进行基本的自动化测试工作。...
Selenium IDE是Firefox浏览器的一个插件,可以录制、编辑和回放脚本,特别适合编程基础薄弱的人员使用,尽管它的脚本语言比较简单,但对于复杂的场景功能不如Selenium RC强大,并且只支持Firefox浏览器。Selenium RC...
使用SeleniumIDE录制UI自动化测试脚本 SeleniumIDE是一款功能强大且广泛应用的UI自动化测试工具,它可以快速地录制和重播UI自动化测试脚本。在本文中,我们将详细介绍如何使用SeleniumIDE录制UI自动化测试脚本,并...
通过录制用户在浏览器上的操作,Selenium IDE可以自动生成Selenium命令,这些命令可以被导出为多种编程语言,如Java、Python或C#,以便在更复杂的测试环境中使用。 2. **安装与配置** 要安装Selenium IDE,首先...
Selenium IDE 2.9.1是适用于较旧Firefox版本的一个版本,对于需要在新版本Firefox上使用Selenium IDE的用户,可能需要寻找替代方案,例如: 1. **Selenium IDE的替代品**: 如"SideeX",这是一个类似Selenium IDE的...
- **录制**:用户可以启动录制模式,执行浏览器上的操作,Selenium IDE会自动记录这些操作,生成可重复执行的Selenese脚本(Selenium的命令语言)。 - **编辑**:用户可以查看并编辑生成的脚本,包括选择不同的命令...
2. `使用更新说明.txt`:这份文本文件提供了关于如何使用Selenium IDE的详细信息,包括如何录制、编辑和运行测试脚本,以及如何导出脚本到其他语言(如Java、Python等),以便在更大的测试框架中使用。 3. `...
- **多种语言支持**:虽然默认使用的是Selenium的内置语法Selenese,但Selenium IDE还支持导出测试脚本到其他编程语言,如Java、C#、Python、Ruby等,方便在更大的项目中进行集成。 - **丰富的命令集**:IDE提供了...
使用Selenium IDE,用户可以快速创建测试用例,通过录制浏览器操作,IDE会自动生成相应的Selenium命令。测试脚本可以保存为HTML格式,便于共享和编辑。同时,它还支持多种断言和验证,确保测试的准确性和完整性。 ...
3. **使用替代方案**:考虑使用Selenium WebDriver代替IDE。WebDriver是Selenium的现代版本,通过直接与浏览器的驱动程序通信,提供更稳定、跨平台的自动化测试。 4. **社区支持**:利用开源社区的资源,如Stack ...
Selenium IDE是firefox的一个插件,可以帮助刚入门的自动化测试供测试,在脚本语言不太熟练的情况下,可以通过Selenium IDE实现脚本的录制、开发、回放。 众所周知,「Selenium IDE」是一种记录和回放工具。现在它将...
这个过程涉及到对浏览器操作的模拟、动态数据处理以及时间间隔的控制,对于学习自动化测试和Selenium IDE的使用有很好的实践意义。 首先,你需要确保使用的是Firefox浏览器,因为Selenium IDE是专为Firefox设计的。...