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

WatiN系列之五 Watin与Nunit结合进行测试

上一篇 / 下一篇  2010-09-12 10:12:37 / 天气: 阴雨 / 心情: 平静 / 个人分类:WatiN

概述51Testing软件测试网|hH-e7?(r+Y2dT?/l

 上篇文章中介绍了在VSTS中如何使用watin。本篇文章介绍如何在NUnit中使用Watin

JX"gy!a Y[0

Nunit作为一款老牌的单元测试工具,在开发人员中得到广泛的应用。51Testing软件测试网"z%h@m2AW

 51Testing软件测试网"HS2^R#]mw

准备工作51Testing软件测试网iB(nyS/d)g3JWk c

 在开始介绍如何在Nunit中使用Watin之前,需要做一些准备工作。51Testing软件测试网WtKcT"d^

l 下载及安装NUnit51Testing软件测试网.w'`\1P ~qk*SC ?

l 创建演示Web程序

kK2].{%_ Xgw0

l 创建及配置测试程序51Testing软件测试网%RT} ?e ]-C

  下载及安装Nunit51Testing软件测试网@:b4c)[.}R6U

   NUnit官方站点下载Window Installer51Testing软件测试网3Z Y [W3V9j6}

  创建演示Web程序51Testing软件测试网#y)M3[w `7m!z

我们将创建一个ASP.NET网站,接下来的测试代码将是针对这个简单Web站点的。先创建一个新项目。

6Fn{.[k0

51Testing软件测试网4z8rVx oD`7B

接下来在解决方案中创建业务逻辑层的类库BusinessLayer,其中添加一个类Arithmetic,用于一些算术操作。51Testing软件测试网'J/o LYd.SD

创建及配置测试程序

0Xru|F7X0

然后在解决方案中创建一个新的类库WebAppUITesting,这个就是测试程序。51Testing软件测试网],iFn!liHj

在类库WebAppUITesting中添加应用配置文件App.config,内容如下:51Testing软件测试网-Ma0W Ia

<?xmlversion="1.0"encoding="utf-8"?>51Testing软件测试网u*n H\X-lf

<configuration>

Wo8gS5s&FMQ-k,l0

 <configSections>

"S%qigQR;t'\ XcN0

   <sectionGroupname="NUnit">

W#\n^A0

     <sectionname="TestRunner"type="System.Configuration.NameValueSectionHandler"/>

3[AvVD^4x\0

   </sectionGroup>

~r&z3j.{0

 </configSections>51Testing软件测试网gQ/t,OX }? s j

 <NUnit>

y0BTI4R,Mr0

   <TestRunner>51Testing软件测试网"E7C;K,u-G R

     <!--Valid values are STA,MTA. Others ignored.-->

r3T*M$t2hMz0

     <addkey="ApartmentState"value="STA"/>

5VU&t#D-bD+]7S0

   </TestRunner>

T|5q$s7_0

 </NUnit>51Testing软件测试网 x)t}aVw

</configuration>

b)s:|QU'`$c0

 备注:Watin只能在STA下运行,Nunit确是在MTA下运行的。所以直接在Nunit中运行watin代码会报错,所以为了解决这个问题,在测试程序中加入App.config配置文件可以解决这个问题。

$`Joe#@(OQ-@0

 

B_nD5N:Is0

在类库WebAppUITesting中添加引用

L*]4m%Q,tvv3l0

51Testing软件测试网],Y@ y1@ v

然后右键点击该类库,在右键菜单中选择“属性”,在属性->调试面板中,“启动外部程序”设置为Nunit.exe。这样在调试代码后会自动打开Nunit51Testing软件测试网*zWeJ7iyv?N.u

最后解决方案的目录结构如下:51Testing软件测试网3g4Y#@+W? H V]%b

/Rtt1NIqV0

编写测试程序,运行测试

q}*B/MCt0

 准备工作完成之后,把生成的被测试演示Web程序(WebApp)部署到IIS中,当然你也可以使用VS中自带的web服务器。Web页如下51Testing软件测试网Iy9cG4A4g

#tXu4NX)g@0

 这个站点的功能很简单,就是输入两个数字,然后提交后返回相加的结果。

\3ePM:Z/u;z3{0

然后我们就可以编写针对这个站点功能的测试代码了。我们主要编写测试用例。

,rx`DH4v"m0

 用例一输入两个数字,验证加法是否正确51Testing软件测试网4[p,j"l:o:S.}K7z\!ob5o

用例二输入非数字字符,验证异常处理是否正确

\Q a3X:{ w3N0

测试代码如下:

.e1Mro.cSJ0

usingSystem.Diagnostics;

,Qe;Si.O\0

usingWatiN.Core;

AmZ iXO m*zDZ}`0

usingNUnit.Framework;51Testing软件测试网T)cp z n

usingSystem;

#q-m8E!|'R#j3m.AYi(k0

usingBusinessLayer;

xti&}nx1M%mb0

namespaceWebAppUITesting51Testing软件测试网W[}V ZE

{51Testing软件测试网9w d/`1P"M$_ E

   [TestFixture]

Q!I3r0ODiM0

   publicclassUITesting

c7S4Uk VQ\~0

   {

&S@k K z(n@ n0

       IEie=null;51Testing软件测试网nu*T s8bj/`L

       [TestFixtureSetUp]

~[,u$V$v1z4aj!l0

       publicvoidInitTest()

$N)D"` b1I4`0

       {51Testing软件测试网a#effa

           ie =newIE("http://localhost/WebApp/Default.aspx");51Testing软件测试网.ab"e!ORAU.{

       }51Testing软件测试网1x.\0~*ZD/N.Y+J(B

       //测试加法51Testing软件测试网4MX t$UX"F?

       [Test]51Testing软件测试网 [+sM%E Ff

       publicvoidAdditionTest()

*Z(Bv0s?[C d8L\0

       {

;t3c,KZ3h*A0

               intnumber1 = 1;

7t r,v#K~)f,S[0

               intnumber2 = 2;51Testing软件测试网f[3h{.o*iX l*T

               //Watin测试代码

1F)r r%{(T~(rs-s0

               ie.ShowWindow(NativeMethods.WindowShowStyle.Maximize); 

.V8Dl(Gq+vK0

               ie.TextField(Find.ById("num1")).TypeText(number1.ToString());

OR3I R,lk0

               ie.TextField(Find.ById("num2")).TypeText(number2.ToString());

dE2YUg*By.NP0

               ie.Button(Find.ById("btnCheck")).Click();                              

VsB3]Vf H2U0

               //预期结果

o K y!d/_0

               Arithmeticac =newArithmetic();51Testing软件测试网qsA0b0B"S4n+uP

               stringexpected = ac.addition(number1,number2).ToString();

h2l-Z@{ k0

               //实际结果

5w_q/J$d[fl0

               stringactual = ie.Span(Find.ById("lblResult")).Text;51Testing软件测试网3D4LI4p xEd1i

               //断言测试结果是否正确51Testing软件测试网pOw%J%r'JH`[

               Assert.AreEqual(expected,actual);        51Testing软件测试网#ZRv]E m

       }51Testing软件测试网-C0R^Rm F"J1{a#m

       //测试异常处理51Testing软件测试网:wVQ@2n:d

       [Test]

_&?Eo2z7Sb9H0

       publicvoidExceptionTest()

DW j } x T+J0

       {

hJ h?CY0

           //Watin测试代码

9\!I?!kU3V"Ay[ {0

           ie.TextField(Find.ById("num1")).TypeText("A");

%{i,u7_,F8jx*O/Ok0

           ie.TextField(Find.ById("num2")).TypeText("1");

$ac!T)gPTH0

           ie.Button(Find.ById("btnCheck")).Click();51Testing软件测试网+S2Zy&P&Rn

           //预期结果

DI@.IZ%w0

           stringexpected ="输入字符格式不正确!";

pPk+{G0

           //实际结果51Testing软件测试网'c Z Q#kXDm;M

           stringactual = ie.Span(Find.ById("lblResult")).Text;51Testing软件测试网1zcJ.g3WD-O\A

           //断言测试结果是否正确

"b]$t7cKgx0

           Assert.AreEqual(expected, actual);

7`L(J/~z5Aou0

       }51Testing软件测试网C|k:V#m }

       [TestFixtureTearDown]

j.v/YA;T-J&wz]i0

       publicvoidClearTest()

oFXU8R5z5t&Ib;_0

       {51Testing软件测试网j:V i pHDz BB G_

           ie.Close();51Testing软件测试网#j,JJ9N y'OR

       }51Testing软件测试网t#XQ4kSP+w

   }

&S;YAr%q$D,Cz0

}51Testing软件测试网6\ ] {{zb{

 

&b5a_8w`#j\z'@0

测试结果如下:51Testing软件测试网S0EK/UU4q_!o9o

'[:tF!yVGO0

+T)`)n5Xu*|t2W&|0

结束语

B.S0o?2ec L0

 Nunit中使用Watin测试思路就是这样的。如果有兴趣的话可以自己动手试试看,这是学习的最佳途径。也可以下载附件中的代码进行学习。51Testing软件测试网%p J(g^@ {a w!]j,|%Y


TAG: WatiN Watin

tianlhj的个人空间 引用 删除 tianlhj   /   2012-04-12 14:51:15
tianlhj的个人空间 引用 删除 tianlhj   /   2012-04-12 14:50:59
-1
 

评分:0

我来说两句

wxf_xsfy

wxf_xsfy

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

日历

« 2024-02-25  
    123
45678910
11121314151617
18192021222324
2526272829  

数据统计

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

RSS订阅

Open Toolbar