WatiN是一个开源自动化测试框架,在一些中小型的项目中可以取代昂贵的商业工具,例如QTP。今天WatiN发布了第二个社区预览版(CTP)。这个版本的详细release note还没有出来,但是我已经发现了一个非常好的改进,就是抽象出了IBrowser接口,IE和Firefox这两个类都实现了IBrowser接口,真的可以实现写一次代码,在若干个不同的浏览器中运行自动化测试了。
写一个简单的方法,这个方法要做的就是浏览MySpace聚友网的主页,然后检查一下有没有“关于我们”这段文字(但是即使不存在也没事,这个例子只是意思意思)。
private void BrowseMySpaceSplash(IBrowser browser) { browser.GoTo("www.myspace.cn"); browser.ContainsText("关于我们"); }
枚举BrowserType里面所以的值(现在有IE和Firefox这两个),创建浏览器对象,然后作为参数传递给刚才的方法,这就是一个简单的一段自动化测试代码运行在IE和Firefox两种浏览器上的实现。
private void button1_Click(object sender, EventArgs e) { foreach (BrowserType bt in Enum.GetValues(typeof(BrowserType))) { IBrowser browser = BrowserFactory.Create(bt); BrowseMySpaceSplash(browser); browser.Dispose(); } }
注意:要让Firefox能正常运行自动化测试,需要在WatiN目录下的Mozilla目录中安装相应的Firefox插件。
其实WatiN已经比较好用,而且比较轻,完全有可能代替诸如QTP这样庞大而昂贵的商业工具。当然,大家还可以选择Selenium