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

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

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

51Testing软件测试网G!YzK"JY(e n7bx

上一节  从头阅读

@;]]d(h3jy051Testing软件测试网 jPc$J'| G9AJ

非常抱歉,到现在才更新^_^

\3e s ~*Js0

t p.d&A(T'K-K^0一个测试套件的例子:

t3w'm5[kC9W051Testing软件测试网2r iG N)Y'Y1j7p

=begin
N Q(o+X0O-`6e0E0Author: Nick Wang51Testing软件测试网olg A~!w
Filename: TestXXXSuite.rb51Testing软件测试网I Ge9I)}"th\q
Descrīption: xxxxxxxx51Testing软件测试网1ohj^U(w R/gB3kl
CreateDate: xxxx-xx-xx51Testing软件测试网 z[;u@7t/uA
ModDate: xxxx-xx-xx
/Qio*qh-D!{'Cm0=end51Testing软件测试网vHCZ7\I"?5z

9c/WOtAX;v0#实现同时支持绝对路径和相对路径51Testing软件测试网)Aq4v }1Dt^1^4s
$domain=$*[0]51Testing软件测试网GU1MP_'l
if $*[1] != nil51Testing软件测试网T1F MD-}dC
  $pre=$*[1]51Testing软件测试网;A2U3DoM6[l
else
H;].Q/d9yX0  $pre=''
JMaQn7Sy#brz1@0end51Testing软件测试网,Ig [R[n

51Testing软件测试网cO/[0`#E5^-B

require $pre+用例相对路径51Testing软件测试网^{/` | } [
....
(h8PKh.wb {E0require $pre+lib相对路径
3bt&c6S3n*g&a F0include ...

{6Fg.vY.LkMB051Testing软件测试网(CPs%{^)}

#创建一个管理用例执行的类,也就是测试套件.51Testing软件测试网[uiq+Y w
class TestXxxSuite
!VH D+d}j0  def initialize(url='http://www.yahoo.cn',resUrl=nil)
t2Ebh.` _?+o0    @url=url
$L&t? ~la0    @resUrl=resUrl
,V M:RfCEo(k`0    @logPath=$pre+log相对路径
Cto"a z^0    #创建日志文件,全局变量51Testing软件测试网5~4{~u\}'d Q`'h
    $logFile=File.new(@logPath,"w")51Testing软件测试网 @kOF%D,H!Kh d
    #创建一全局变量存放所有用例执行的结果,是一个二维数组51Testing软件测试网%i$R6^Bp;}5R,r
    $results=[]51Testing软件测试网e\(]zt$s@q#w,T5d ~D
  end51Testing软件测试网5l8K&pb3nFo-r(k
 51Testing软件测试网3nd/UEP+d.Fm
  def main
%Jm1qZ Et0    begin
yW/b#vA^7xkd K0      #获取测试任务开始执行的时间
PE]!m7f/V!K7w0      sTime=TK.formatTime     51Testing软件测试网E(}3^ gjC"b_
      $logFile.puts '----------Test XXXXXXX---'+formatTime()+'---------'51Testing软件测试网M {.o&qQ wp2m
     51Testing软件测试网C\m T[&n^
      #执行第一个用例51Testing软件测试网0HQzVZQ9H {$~
      case1=TestBlogSortType.new()
X/ngd"P7?!h0      case1.main
3q7Dj;kL_ H0      .......51Testing软件测试网v'o"~)_Fs9My'?)e h
      sleep(2)51Testing软件测试网 tNK/f8{!im
      #执行第n个用例
j;Rt?WiD#Y0      casen=TestBlogAllArticle.new()51Testing软件测试网A*P7J4|AI7F Qs
      casen.main     51Testing软件测试网c%j2Ui$bj$O
     
fiK\&w0      #获取测试任务结束执行的时间51Testing软件测试网 w"i)Hg(OR L
      eTime=TK.formatTime     
:pg9pEe4j*`0A0      $logFile.puts '----------end test XXXXXXX---'+formatTime()+'---------'
/Z|VM2eu0    #捕捉异常,将异常信息写入log文件
X^3iJ$?C0    rescue => detail
7nf0mN w*vw0      $logFile.puts detail.message
k^@ OR9w3T0      $logFile.puts detail.backtrace.join("\n")
1M u&@%{)R-[&J Qk0      raise51Testing软件测试网)d1D!JC7[ Qikm
    ensure
"DK2w#A kd(}pr:R0      $logFile.close
Z+}g$l)AD*_"lq0      #将所有用例的测试结果$result传给generateResult做处理,generateResult会将测试结果处理成两个xml文件
uL1u/z8J8u.}w\0      #生成新的xml文件的同时会生成其备份文件
A x;E w5G/V/fv&d0      #这两个xml文件可以由之前提到的qaweb中的特定的controller做解析,以网页形式展现
R2M3R:x(I7F.Yo0      res=GenerateResult.new51Testing软件测试网f:t8Y6a5n g$M
      res.generateResult(sTime,eTime,$results)     
OtLb9p`2{0    end
E2|5V G)w M#`3^#U)h0  end
%w#pi Xx0end51Testing软件测试网R]0xqIM

IseA r_6f}+v/z0t=TestXxxSuite.new('http://www.yahoo.cn')
MCn`b*J.p0t.main51Testing软件测试网6Y,h [\q

51Testing软件测试网;|daj6Spw a:W `t

   使用类来定义测试套件(测试计划),主要是为了方便继承,我们都知道,产品在长时间的开始过程中可能会有一些分支,这些分支表现在产品上的差别可能并不大,因此,对测试套件来说,我们只需要继承类似测试套件类,再做适当的修改即可。

l#n:{[#yx'W0

下一节

;{ Q%ra? E5c+t5pS0

51Testing软件测试网 ht(\p6{Dt%k


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