专注于自动化测试,性能测试.......

WatiN系列之七 WatiN与Gaillo有个约会(原创)

上一篇 / 下一篇  2011-11-16 12:12:11 / 天气: 晴朗 / 心情: 平静 / 个人分类:WatiN

sl:W5tLt E8N |0WatiN与Gaillo有个约会

9L\IQ/|"K[(e uZ051Testing软件测试网ihY2ya:E8I

本文为作者原创,如需转载请声明作者及出处。51Testing软件测试网+E ^)?T(AO

 又有大半年的时间没有来更新51Testing的博客了,开博已经4年多了时间了,博客的文章也就50多篇,实在是少的可怜。其实心中有很多的内容想写,想分享,可一贯的惰性使然,也就成了现在这样了。这大半年的时间,工作生活一如既往的平淡,动车脱轨了,日本地震了,物价上涨了,而作为IT人依然平淡的活着,为加薪高兴,为房子发愁,为孩子操心…..生活就是如此吧。好了,发了一通的感慨,言归正传,之前我写了一个关于WatiN的系列文章,介绍了WatiN一些使用的基本知识和应用。我在一些项目中也会应用WatiN,感觉这个工具还是不错的,但是要灵活,方便的使用它越是也要花些心思。之前说过,它结合NunitVSTS单元测试工具一起使用,可以增加它的易用性,但总是觉得力有未逮,直到我遇到了Gallio,一切问题都迎刃而解。51Testing软件测试网n'dA nQ%ZY

 有人要问Gallio是什么?官方的说法是“Gallio自动化测试平台是一个开放、可扩展的中间平台,为.NET提供一个通用的测试用的对象模型、运行时服务和工具”。好的,我们注意到了,它是一个自动化测试平台,确切的来说它是一个开放式的单元测试平台,它支持众多的.NET单元测试工具,比如Nunit,CsunitMbunit等等。现在Gallio已经整合了自家的单元测试工具Mbnuit,这同样是一款非常优秀的单元测试工具,具有很多NUnit,MSunit不具备的超强功能,以后我会提到。为什么要选择GallioMbunit呢?这是有原因滴。

xrG,m1tG0

 VSTS的单元测试必须依赖Visual Studio这个IDE,运行起来太麻烦,日志功能也薄弱51Testing软件测试网U@ MVy:W.N%g

 Nunit运行起来方便,但是同样的,日志输出不给力,过于简陋,工具功能也太简单。51Testing软件测试网?9j n&C%C

 Gallio就不一样了,它具有一个非常优秀的Icarus GUI Test Runner工具,也具有一个命令行的工具(有了它,可以进行无人值守的计划任务测试)。而与它配套的Mbunit同样是一款优秀的单元测试工具,除了一般单元测试功能外,它还提供了多种数据源的数据驱动测试功能,日志输出功能,截图和视频功能等等。

2KF zk1_]D0

 51Testing软件测试网)gp!NL?5N ~h O

下面我们就跟根据一个实例来讲解一下Gallio+WatiN的使用。

kd8B+pv0

1)首先安装Gallio,可以到Gallio的官方网站下载:http://www.gallio.org/Downloads.aspx51Testing软件测试网.FkI6R,pJS1@OUk{

2)在Visual Studio建立一个类库项目,这里命名“WatiNAndGallio”,然后添加一个类,这里命名“SearchBaidu,添加对于WatiN,Gallio的引用,Gallio直接在添加引用的弹出框中的.NET中找即可。如图

D5Z5R;a2LA!o0

51Testing软件测试网!igfi/[Ha&j

9An g+U'?4Z(DW(r0

3)再添加一个类,命名为“BrowserHelper”,这个类里定义了方法,用于截图。51Testing软件测试网,^~,k-y!kZGt

4)在“SearchBaidu”中编写测试代码,代码如下:

H'^|M$Z'P"v0

usingSystem;

;q:oa4^qe0

usingSystem.Collections.Generic;

y5x8mw6Adv4b0

usingSystem.Text;51Testing软件测试网a `Gb4FCA-`

usingMbUnit.Framework;51Testing软件测试网 px;JC{zX

usingMbUnit;

s-u(M-pw-m MC'|0

usingGallio.Framework;

+Q$_$? bEt/c0

usingGallio.Framework.Data;

];oSf$cDi W*oH0

usingWatiN.Core;51Testing软件测试网Mt;}sQ

namespaceWatiNAndGallio51Testing软件测试网$K K|@VFEZ

{

T']aS.st5ARi&MDQ*J0

   [TestFixture]51Testing软件测试网/NN#M#nL w/F

   publicclassSearchBaidu51Testing软件测试网+Jl3b1~,}

   {51Testing软件测试网+m+sY8C?e

       BrowserHelperbh =newBrowserHelper();51Testing软件测试网8|5Bh+DY5meVig D_

       //使用CsvData数据驱动,Gallio中还包含其他类型的数据驱动,详细参考Gallio的帮助文档51Testing软件测试网*caG[1VJU+T4^ ad z9w

       //Test:不用说了吧,用于标识测试的属性

sCoX)m&hIkM)?0

       //Order:可选,用户表示执行测试的顺序51Testing软件测试网0K9^W0t]j

       //FilePath:文件路径51Testing软件测试网 v(L!D/yN{}

       //HasHeader:是否有列名行

;V n,Tf&Q0

       [Test(Order = 1),CsvData(FilePath =@"D:\\OpenSource\\WatiNAndGallio\\Data.csv", HasHeader =true)]

NiA{[Q KW%U0

       publicvoidSearchSomeThing(stringurl,stringsomeThing)

u5nc7LRq8a~a8k0

       {51Testing软件测试网 h*i!yL1R*c2Ar p

 //使用自定义的BrowserHelperConfigureWatiNSettings方法,WatiN的动作进行跟踪,在Log可以看到

(oHE9c6UA5_q p0

           bh.ConfigureWatiNSettings();

.i-`R@-Xr0

           IEie =newIE(url);51Testing软件测试网u;{IilZ

           ie.TextField(Find.ById("kw")).TypeText(someThing);

S\kp*[sD]+O0

           ie.Button(Find.ById("su")).Click();51Testing软件测试网F3zCCT9Zl

      //输出日志,TestLog类中有很多的方法用于输出不同类型的日志,详细可以参考Gallio的帮助文档

7Fi:?*dDJ0

           TestLog.WriteLine(string.Format("完成了\"{0}\"的搜索",someThing));51Testing软件测试网)c"Z:s'}a!y d

//使用自定义的BrowserHelperEmbedBrowserSnapshot方法,对浏览器内的内容进行截图,在Log可以看到51Testing软件测试网k p F{nfZ

           bh.EmbedBrowserSnapshot(someThing,ie);

4@-g G&|w+F0

       }51Testing软件测试网:p8W0R#@2{ D'M

   }

*r Q,]nnv Wu0

}51Testing软件测试网[^Rb"i

5)对这个类型进行编译后,打开GallioIcarus GUI Test Runner工具,加载编译的这个DLL,如图

L8V;j2Tu)_l0

51Testing软件测试网,^GW,Pf3q ]$e

 

%p#c"E+En!q o2S I0

它是按照在Visual Studio中的目录结构进行显示的,最底层的一级就是Test,你可以勾选以用来选择你希望运行的测试。51Testing软件测试网/K)lZZHOM

 

M$CPYn'_l_L0

6)这时,我们就可以点击Start,运行测试了,运行后会自动显示日志和测试结果,报告统计和写的很详细,更好的是这些报告可以导出多种格式,如图51Testing软件测试网Bt#h A4F)D[S,b P1~x

测试结果51Testing软件测试网*Am{'e^[ S1jU-Jg

51Testing软件测试网y'v5KTw(P

/F"BbKs*VSy1L0

测试执行日志51Testing软件测试网jI7iQ];~fR

51Testing软件测试网Ru_7L{{e0J

 51Testing软件测试网 lo-]:w4p.P2Ub

 51Testing软件测试网Z.Q{+G B4h R

就这样,一个测试就完成了,其实步骤和原理与NUnit,VSTS都是差不多了的,只不过Gallio提供了一些更为人性化的强大功能。

W]Dg;L0

 在本文的最后的附件里有这个事例的源代码,有兴趣的可以下载下来研究一下。由于大小的原因,引用的WatiN,Gallio类库都被删除了,需要自己重新引用。51Testing软件测试网!I{I8bxH }0i

NH9xJm051Testing软件测试网'd)JcE{.z(c

WatiNAndGallio.rar(16.9 KB)

a.Cz{y raE0

TAG: Gallio WatiN 自动化测试

aslandhu的新窝:http://www.wuchuanhu.cn/ 引用 删除 aslandhu   /   2011-11-17 09:07:06
不错
aslandhu的新窝:http://www.wuchuanhu.cn/ 引用 删除 aslandhu   /   2011-11-17 09:06:53
5
 

评分:0

我来说两句

wxf_xsfy

wxf_xsfy

自动化测试的拥簇者,善于自动化测试的框架和工具开发,TIB工作室核心成员

日历

« 2023-10-15  
1234567
891011121314
15161718192021
22232425262728
293031    

数据统计

  • 访问量: 378183
  • 日志数: 79
  • 图片数: 1
  • 文件数: 1
  • 书签数: 3
  • 建立时间: 2007-09-19
  • 更新时间: 2018-01-30

RSS订阅

Open Toolbar