wiki_mysql

来源:互联网 发布:大图智能图像拼接软件 编辑:程序博客网 时间:2024/06/06 13:20
同发51testing

前言  

   使用watir做自动化测试已经很长很长时间了,确实是简洁实用的一个框架,尤其对于有一定coding经验的测试人员来说,可以说是如虎添翼。但是在使用过程中,也渐渐的感受到了仅仅一个watir是很难满足自动化测试的方方面面,比如说,自动化测试的多环境统一管理执行。

   我们都知道作为通用产品,必须要测试它在不同的操作系统和浏览器下的表现,而单机本地执行的自动化测试脚本要实现这样的目的,不得不需要一些手工操作做衔接;这样一来,每一次测试都将重复的投入人力成本,尤其是对于测试成本紧缺的部门来说,这无疑是很郁闷的一件事情。

    那么,如何才能改变这种状况呢?同时又可以将之前单机执行的测试脚本利用起来呢?这就是我的框架所解决的问题。

第一节 简介

下面就对这个框架作一个基本的介绍:

名称:Automatic Test Management

结构:B/S/C;

实现:Watir、Rails、Staf;

开发周期:2个月;

author:Nick Wang

整体设计简介:
;x)dO;C$I9^/tf0    此项目分为两个字项目,其一是提供web访问执行测试服务的QAWeb,使用ROR实现; 其二是将原有的自动化测试框架改造后的AutoTestscrīpt测试脚本框架,主要通过Ruby+Watir实现. 测试的具体执行由AutoTestscrīpt部分完成, 而QAWeb主要是提供对测试任务管理,及结果展现的功能;此外,通过staf实现任务下发及结果收集。

整体框架层次图
K2W7`jr�Bl0
http://www.51testing.com/attachments/2008/01/84753_200801311520381.thumb.jpg软件测试专业网站:51Testing软件测试网-Vi5Nw0Gw e/t9v

功能模块图
zY JcI/TE0
http://www.51testing.com/attachments/2008/01/84753_200801311548051.thumb.jpg软件测试专业网站:51Testing软件测试网d$I a:SSVpeyuU

总流程图
+`+sD*z+oh0
http://www.51testing.com/attachments/2008/01/84753_200801311528511.thumb.jpg
*I:q6J^Y[,U1Z0

第二节 QAWEB

这里对QAWeb作一个简要的介绍,QAWeb为测试人员提供一个管理自动化测试的gui界面,同时实现对Staf的调用,以完成测试任务的下发和结果的收集;

具体而言,它主要解决了以下几个问题:
np.y7q5rn9I ch01、统一的自动化测试执行管理平台,实现远程管理测试执行;
}9ykz*}?K6W/N"i02、根据不同测试任务,生成不同的任务配置文件(stax标准的xml);软件测试专业网站:51Testing软件测试网%O*_4HX+w+aqo z)}/
3、将测试任务下发至指定的测试机(测试环境);
L I9agK8r,c"Q*a04、收集由staf返回的测试结果;
w7au"}c:E|(x05、心跳功能,保证服务器与测试机的通讯以及测试环境正常;软件测试专业网站:51Testing软件测试网Y/b!Ie1FiS
6、更新测试机上的测试脚本(从配置管理服务器);

   具体测试机上的执行过程,是由staf读取任务配置文件中的信息一步一步完成的,首先会启动测试,测试结束后将测试结果及日志上传到服务器(qaweb)的指定文件夹,最后将测试机上的测试结果及日志备份。

   要想实现如上所述的功能,则服务器与客户端(测试机)都需要安装staf,同时要配置它们之间的信任级别。具体的staf使用,大家可以参见崔俊涛的《利用 STAF 实现程序更新包的自动部署测试》:
_|J/.W-T Fp0
http://www.ibm.com/developerworks/cn/opensource/os-cn-staf/index.html?ca=drs-cn

 

第三节

下面介绍最核心的部分--测试脚本(AutoTestscrīpt):
"K(](Id3@!b*t)w0开发语言:Ruby;软件测试专业网站:51Testing软件测试网)N�JS$]S t9u5o`2wC
开发包: Watir;软件测试专业网站:51Testing软件测试网9xM9T@,z
集成开发工具: eclipse
k{F7yH0软件测试专业网站:51Testing软件测试网f*u2?0q:V Rr
在这里,是以工程的概念来管理脚本的,工程目录结构如下:
)L7O7amt/e }0-AutoTestscrīpt_XXX
J8U0I3Q(L^6J:g W0 -TestSuites  存放测试套件
/ti"|3f V0  -TestXxxSuite.rb 组织执行测试用例软件测试专业网站:51Testing软件测试网4^_'F#^,F!av
 -TestCases  存放测试用例软件测试专业网站:51Testing软件测试网)gn{Q nR_
  -TestXxxCase.rb 用例脚本软件测试专业网站:51Testing软件测试网jL$Q;w5h [3F
 +TestResults  存放测试结果数据软件测试专业网站:51Testing软件测试网#qmMfa_9]/
 +Data   存放测试数据软件测试专业网站:51Testing软件测试网J#w]^'L:/Nj
 +Log   存放测试执行日志
m'QQ b�o0 +Lib   
自定义类库

每个产品对应一个工程(AutoTestscrīpt_XXX),每个项目对应一个suite文件,即测试套件;软件测试专业网站:51Testing软件测试网Xn9k {;S
测 试套件(suite)在执行过程中接收由qaweb传递来的参数(测试地址url),调用存放在TestCases中的测试脚本执行测试,同时,定义了一 个全局变量,用来收集各个用例执行的结果信息.当所有用例都执行完成后,将结果信息(用例名称|通过/未通过|未通过原因|执行时间)保存到xml文件. 在qaweb中会解析此xml文件,以展现测试结果.

具体的脚本调用关系见下面的链接软件测试专业网站:51Testing软件测试网7LO.Hn,uF|
http://www.51testing.com/attachments/2008/01/84753_200801311659511.thumb.jpg


                                                                                                                                                                           未完待续

原创粉丝点击