诚招英才(长期):高级测试开发工程师、测试架构师,C++,java,ops; 联系方式:linhan@taobao.com msn: niuxvampire@hotmail.com

(原创)基于WATIR+RAILS+STAF的自动化测试--测试套件脚本

上一篇 / 下一篇  2008-03-25 10:46:45 / 个人分类:自动化测试技术

"q?-E al0上一节  从头阅读

^K2m!T Wr(~&@+sQ0

{3R6Y? p!B"KD)A)S0非常抱歉,到现在才更新^_^51Testing软件测试网 Hm0QQB6^/I'U l

51Testing软件测试网}/cz$D k9g8g

一个测试套件的例子:51Testing软件测试网XOq.{1vb.B!I EB

51Testing软件测试网CAd#yh ~O

=begin
R9\2p+F7DG}0Author: Nick Wang
\{fg q0E-A8d0Filename: TestXXXSuite.rb
aI {*n6R} v-@9E7o0Descrīption: xxxxxxxx
$u Fi&|#hlS0CreateDate: xxxx-xx-xx
XM(F7N*V5u0ModDate: xxxx-xx-xx51Testing软件测试网w/f)hq+R1w*h,MyQ
=end

4V/@l4x;nt w4P6cKm051Testing软件测试网VP0qcz

#实现同时支持绝对路径和相对路径51Testing软件测试网A2}5OIE4Ql\ m&J
$domain=$*[0]51Testing软件测试网kgcyO&m0WD
if $*[1] != nil51Testing软件测试网V7Y-XrQOv
  $pre=$*[1]51Testing软件测试网$d0Sz0G:R/D
else
Nm [;]"jh(Vj0  $pre=''
-X6NR5y(r(r:m\0end

.S7DpU4_0G"j"M051Testing软件测试网ti2yssW

require $pre+用例相对路径
+xgW H%B VO0....
H5Q%r-agy*IT0require $pre+lib相对路径51Testing软件测试网?|7[J}C2G9LDqJ
include ...51Testing软件测试网3E ae?C}u

51Testing软件测试网3O.`(nV e

#创建一个管理用例执行的类,也就是测试套件.51Testing软件测试网?0G|-Xqo#` @4h0T
class TestXxxSuite51Testing软件测试网&Kgn'Q r a_*K^*|Y
  def initialize(url='http://www.yahoo.cn',resUrl=nil)
S|BL2x7\"V5X8T0    @url=url51Testing软件测试网] FI\D X
    @resUrl=resUrl51Testing软件测试网5iFn#m pX6}
    @logPath=$pre+log相对路径
/a4mDKX)y0    #创建日志文件,全局变量
G.v5_` WzC8o|0    $logFile=File.new(@logPath,"w")51Testing软件测试网N v*PI0L8mji
    #创建一全局变量存放所有用例执行的结果,是一个二维数组
)~ H(K o2}&w9~+^ t0    $results=[]51Testing软件测试网s_-]Fj%epU
  end
R/Sd)h?h m0 51Testing软件测试网a&vi%s f}
  def main51Testing软件测试网-U_Q!TZJO
    begin51Testing软件测试网d`Q vtP+^m
      #获取测试任务开始执行的时间51Testing软件测试网 r T1gi Z N5u1~9Ed#K
      sTime=TK.formatTime     51Testing软件测试网2`z1_ G4MReA
      $logFile.puts '----------Test XXXXXXX---'+formatTime()+'---------'51Testing软件测试网 SWj-@_!pL
     
1Y%A6S+{8{0      #执行第一个用例51Testing软件测试网 s|C vChM.a(?
      case1=TestBlogSortType.new()
6ql*XyNp0      case1.main51Testing软件测试网3O9F)n0q5K0mUYHua
      .......51Testing软件测试网@ b-A7n*Q
      sleep(2)51Testing软件测试网|-j9E"\4`?\+I
      #执行第n个用例51Testing软件测试网qX2QK9L's%p5M
      casen=TestBlogAllArticle.new()51Testing软件测试网$mw8xK)Z0f|
      casen.main     51Testing软件测试网;b3]uY~ ?
     
*B F K]S0} AT0      #获取测试任务结束执行的时间51Testing软件测试网H,X*Pf\w
      eTime=TK.formatTime     
6u5Gk e?S6DJ$fk6B0      $logFile.puts '----------end test XXXXXXX---'+formatTime()+'---------'51Testing软件测试网3iP.[8y1? V%L W
    #捕捉异常,将异常信息写入log文件
g/QY`V l"^9B0    rescue => detail
g GpQ(O G0      $logFile.puts detail.message51Testing软件测试网Q#]8H pl x)z G
      $logFile.puts detail.backtrace.join("\n")
-T:i`w0J)[J0      raise51Testing软件测试网xvSMU!y0_]
    ensure
wC'|d|0      $logFile.close51Testing软件测试网9Id&]zlb
      #将所有用例的测试结果$result传给generateResult做处理,generateResult会将测试结果处理成两个xml文件51Testing软件测试网S _9G2HIC jnQ
      #生成新的xml文件的同时会生成其备份文件
V'[zor0      #这两个xml文件可以由之前提到的qaweb中的特定的controller做解析,以网页形式展现
nO`l}*T n0      res=GenerateResult.new51Testing软件测试网g|Z"|Y \
      res.generateResult(sTime,eTime,$results)     51Testing软件测试网OU[5GfN
    end
M1d3V$Sya,o0Y3N0  end
;A EEB&C7DV9eSD0end51Testing软件测试网x``:de:f

51Testing软件测试网+va xD(v}g*Zw

t=TestXxxSuite.new('http://www.yahoo.cn')51Testing软件测试网7j:Y%i)Ks:~
t.main51Testing软件测试网}/[ dw']$A"A&L

HV+j8\ U%dT0c$o.b(Ca0   使用类来定义测试套件(测试计划),主要是为了方便继承,我们都知道,产品在长时间的开始过程中可能会有一些分支,这些分支表现在产品上的差别可能并不大,因此,对测试套件来说,我们只需要继承类似测试套件类,再做适当的修改即可。51Testing软件测试网!N+?B&c-D,p(r i/O

下一节51Testing软件测试网 K7K1@ d"]TRZr

/YJ9oIJu `R0

TAG: 自动化测试技术

随风而动的个人空间 引用 删除 随风而动   /   2012-08-29 15:43:57
求其中
require $pre+用例相对路径
....
require $pre+lib相对路径
这2句详解   lib相对路径是什么
../Ruby187/lib/ruby/gems/1.8/gems/watir-2.0.4/lib/
随风而动的个人空间 引用 删除 随风而动   /   2012-08-29 15:34:15
5
 

评分:0

我来说两句

Open Toolbar