51Testing软件测试论坛

标题: 某公司的RFT测试脚本解析(初篇) [打印本页]

作者: 153994730    时间: 2008-2-19 15:47
标题: 某公司的RFT测试脚本解析(初篇)
前言:
本文主要针对某公司的某个脚本的解析(类似单元测试), 希望通过解析来帮助朋友们理清脚本设计的思路; 也请高手们多多指点,哪写错,或写的不好的,提些宝贵建议;
注: 以下提到的Worklist, TemplateInitDescriptor, VariableSet, Variable均是其公司自行开发的类;

用例存放方式:XML文件形式;//由于被测方法会直接去XML文件中读取参数,所以这样设计比较符合实际(只是个人理解);
测试工具:RFT;//JAVA脚本,没JAVA基础的朋友,补下基础再看哈,否则要以为自己再云里雾里呢...-.-~~!
被测对象: Worklist(接口)下的一个方法->InitateProcess(参数1,参数2....);//该方法作用:初始化一个流程,返回一个随机流程号,并将该流程相关信息插入到后台数据库表process,template中;
涉及到的数据库,Oracle, 表名process,template;
被测方法的传入参数有4个如下:
1.TemplateInitDescriptor tmplInitDesc;//模板描述对象->tmplInitDesc, 定义一个模板又需要许多信息,如包编号,模板编号,版本号,子版本号,发起流程的员工号,员工所属单位号等....
  这些信息,可以通过创建模板描述对象(用TemplateInitDescriptor类),来进行初始化;
2.VariableSet initParams;//初始化流程变量集->initParams,发起一个流程,有时候需要用到一个或多个变量,如报销审批流程,具体的发票号,发票金额,发票数,发票类型等,可被当作
流程变量来定义,我们称流程中用到的变量为流程变量;VariableSet类:用来添加流程变量,可以想象成一个数组,就是往一个已定义了的存储空间中放被创建的流程变量;
Variable类,用来创建流程变量,该类需要3个参数:变量名字符串,变量类型,变量名;
3.java.lang.String bizAdapterName;//字符串类->业务适配器名->bizAdapterName,业务适配器是处理具体业务逻辑的核心(也是一个或多个类的组合包);
4.VariableSet bizAdapterParams;//业务适配器参数集;

了解了被测对象后, 下面来分析整个测试脚本运行过程时需要解决的问题, 先来看下测试脚本的运行流程:

创建一个被测对象;//要测该类方法,需要创建一个该类对象; -> 定义所需要的变量(包括用来存储被测对象所需要参数的变量,脚本本身的变量->用来保存用例中的各个参数值, 存放预期输出及实际输出的变量)
-> 从相关文件或数据池中读取用例;//每个测试脚本都需要有的基本步骤 -> 调用被测对象,传入相关参数; -> 预期与实际的判断(每个测试脚本不同,本测试脚本中,有3个地方需要判断: 判断返回值,判断数据库表process,template);


1.创建被测对象需要解决的问题: a. Worklist接口是基于EJB开发的,所以需要通过EJB特殊的方式去进行调用;
2.定义变量时需要解决的问题: a. 搞清楚变量所需要的类型;
3.读取用例所需要解决的问题: a. 读取方式; b.用例存放方式及格式;//这里b不用考虑了(已给出方式及格式),只用考虑a;
4.预期与实际比较需要解决的问题: a.数据库连接方式; b. 数据类型转换(如预期是日期,实际却是字符串);c. 保存方式(用RFT自带方式来保存);

根据上面的分析进行脚本设计: 大致需要以下几个脚本:
1.DbOperation.script;//关注与数据库的连接;
2.EngineOperation.script;//关注EJB的连接, 由于被测对象是基于EJB服务的,所以创建被测对象前,需要与EJB服务进行连接;只有连接后,才可使用EJB提供的服务;(个人感觉,被测对象实际是对EJB的扩展);
3.InConfig.script;//处理存放用例的文件的操作(读取);用例以XML文件格式进行存放的;
4.TestInitateProcess.script;//具体的测试逻辑实现(变量定义,读取用例,调用被测对象,结果比较, 写入日志);
5.TestMain.script;//主调函数脚本,用来调用不同的测试脚本,需要测多个方法时,就需要多个测试脚本, 所以需要一个主调函数来分别调用测试脚本,方便脚本的运行;
6.Util.script;//用来判断结果,若预期输出与实际输出类型不一致,需要转换, 所以类型转换也在此实现; 写入日志的实现;

此文只是一个大钢,为各位看后续脚本作下铺垫,打个基础, 上述所提脚本会在以后陆续公布;

To be continue...




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2