2023年11月27日发(作者:)

TC测试脚本规范

1 命名统一规范:所有命名必须使用英文

2 TC的参数设置

2.1 Tools->Option的设置

2.1.1 Engines->General

Debug and Display properties

Images:保存图像设置为PNG

Display an error message

2.1.2 Engines->Name Mapping

设置为不自动设置ObjectsNameMapping

2.1.3 Source Control

2.2 Project->PropertiresProject的属性设置

2.3 Project->Play BackProject的回放等属性设置

3 NameMapping

3.1 不自动增加NameMapping

3.2 NameMapping增加流程

3.2.1 手工操作程序

3.2.2 在需要把程序对象加入到NameMapping时,在ObjectBrower中找到相关对

象(可以使用对象探测器查找定位),然后加入到NameMapping

3.2.3 除服务器管理工具外,每个ProjcetNameMapping,前2层必须是

_

3.2.4 Objects加入到NameMappings时,如果有Caption这类属性时,尽量使用通

配符。比如导航台的Caption,就修改可以为“*中联*

3.2.5 文本框(txtedit)的识别属性使用wndclassname2个属性。

3.2.6 Namemapping,Aliases中第一级分为

BaseData:导航台、部门管理这些模块对象在它下级

Material:物资目录、物资外购入库等在它下级

3.2.7

4 Project Suite组成

4.1 一个被测试业务系统是一个Project Suite,系统名称+AutoTest组成。比如

MaterialAutoTest

4.2 一个业务系统中,一般根据模块或者是业务来划分Project。比如物资系统中,外

购入库中模块就划分为一个Project

4.3 每个业务系统包括一个初始化的过程,比如Materia_lInit

完成测试前需要准备好的基础数据设置

创建测试执行集的数据连接

填写或者是增加测试执行集。

4.4 每个业务系统包括一个执行完成的过程,比如Material_Finsh

完成测试前需要准备好的基础数据设置

创建测试执行集的数据连接

填写或者是增加测试执行集

4.5 ZLBASE为基础函数Project,必须加入到每一个Project Suite中。

4.6 ToolsProject为服务器管理工具的测试Project必须加入到每一个Project Suite中。

4.7 ZLBASEToolsProject修改维护时,必须单独进行,不在业务系统的Project Suite

中直接编辑。

4.8 ZLBASEToolsProject中只包括NameMappingScriptTestApps

4.9 业务系统

4.10 Project Suite的变量

4.10.1 Persisten Variables

ORAConnOracle数据库的连接串

InitOver:数据初始化是否完成了

CaseID=0,CurTCaseInfo列表变量中的列号

CaseName=1

CaseType=2

CaseUserName=3

CaseStandTime=4

CaseBeforeID=5

4.10.2 Temporary Variables

cmdHIS:HIS数据库的ADOCMD连接,Object类型

CmdRunResult:测试执行集的数据连接,Object

TestRunID:当前执行的测试集ID,一个测试集相当于一次完整的测试,从

数据初始开始

所有用例都要执行一次。

有些用例在测试集中,只执行一次,比如基础数据初始用例。

有些用例可能要多次执行(出现错误后,回归测试)

一次产品发布时,可能执行多次测试集。

在测试开始执行事件中,获取这个执行集ID

执行过程中,更新这个执行集的信息。

执行集的管理在BH中构建功能完成。

UserNamePassWordDataBase:产品登录的项目

PrjLogFolder:ProjectLog目录ID

TCaseLogFolder:脚本的Log目录ID

CurTCaseID:当前执行的用例ID

CurTCaseInfo:table类型,包括下列列

CaseID:用例ID

CaseName:用例名称

CaseType:用例类型

CaseUserName:用例执行用户名

CaseStandTime:用例标准时间

CaseBeforeID:前置用例ID

Project组成 5

5.1 只包括下列Item

5.1.1 NameMapping

5.1.2 Events

5.1.3 Script

5.1.4 Stores

DBTables

Files

Objects

Regions

Tables

5.2 Scritp目录

5.2.1 基础脚本:该系统测试的基础性脚本,系统名_Base命名,比如Material_Base

5.2.2 BaseScript:目录,加入引用的ZLBASE的脚本

Login

ComLib

5.2.3 业务目录:根据测试脚本情况划分的目录,比如PurchaseCard就是外购入库

单项目目录

5.2.4 测试用例脚本:完成一个或者是多个测试用例执行的脚本。使用动词(副词)

_名词来命名。比如AddNew_InputCard,录入物资外购入库单据的测试用例

5.3 Project 的变量

5.3.1 Persisten Variables

PrjName:Project的名字,系统_Project名称,比如:Material_Purchase

5.3.2 Temporary Variables

6 Project的事件设置

6.1 Project中必须包括Events项目

6.2 Events中,目前只需要缺省的GeneralEvents就可以了

6.3 OnLogError:设置为指向ComLib脚本

GeneralEvents_OnLogError事件中,对出现的错误进行统一的处理。包括

屏幕截图

在测试用例执行表中记录失败

如果是基础数据测试用例

发送邮件给自动测试组

这些用例错误对后续执行影响很大,停止整个测试执行。

非基础数据测试用例:停止当前测试执行, CurrentTestOnly

终止当前测试后续语句的执行

OnStartTest:设置为指向业务系统的基础脚本 6.4

GeneralEvents_OnStartTest事件中,进行一基础处理

获取当前需要执行的测试集ID,当前只有一个测试集在执行。

创建HIS的数据库连接

注:如果是通过Organize组织多个用例执行时,有多次Start

过程函数规范 7

7.1 基础规范参考“编码规范2005

7.2 脚本引用规范

在脚本前几行加入引用脚本名称,下列为必须加入

USEUNIT LOGIN

USEUNIT ComLib

USEUNIT ToolsLogin

7.3 命名规范

如果是执行测试用例的过程,必须命名为:TC_用例名称,用例名称动词(

)+名称

其它过程/函数使用“动词(副词)+名词”进行命名组合,动词和名词通常

采用含义明确的英文单词缩写(缩写尽量符合常规,避免使用含义混淆的词

)

7.4

测试用例过程注释规范

'------------------------------------------------

测试功能点:列出该函数或者是过程的测试功能点

'主要测试思路:描述完成测试用例的主要测试思路

执行用户:该用例需要什么用户执行

标准时间:该用例的标准执行时间

初始环境说明:该用例需要的初始环境特别说明

'------------------------------------------------

7.5

非测试用例函数注释规范

'------------------------------------------------

' '参数:调用该函数的参数以及含义

'返回:函数返回值的多少,以及各值的含义

'上级函数或过程:有必要的时候列出调用该函数的主要函数或过程

'下级函数或过程:有必要的时候列出被本程序调用的主要函数或过程

'------------------------------------------------

7.6 脚本内容注释

8 测试用例过程标准结构

按脚本逻辑,适当增加说明注释

说明注释

正式启用后,如果有修改,增加修改注释

修改注释

修改原因,修改者,修改时间

配合注释,适当使用OutlLining,增加脚本的可读性

8.1

On error resume next,第一行屏蔽错误

8.2

设置Log的目录

ogFolder=folder(TCaseName,,,,PrjLogFolder)

8.3 获取用例信息GetTCaseInfo

8.4 检查是否有前置用例,以及前置用例是否执行成功。

8.5 用例初始环境检查和准备段

从用例表中获取用例的信息,填充到CurTCaseInfo列表类型变量中。

9

8.5.1 如果是权限用例,先完成权限设置。

8.5.2 需要重新登录(不管前面用例是否登录)

登录产品

打用户执行需要的模块。

8.5.3 不需要重新登录(同一模块,或者是同一功能点的连续测试)

检查导航台是否成功启动,未启动就重新启动

检查初始模块是否成功打开,未成功打开就重新打开

8.5.4 如果是涉及系统参数,必须退出模块后,重新打开。

8.5.5 如果是涉及权限的测试,必须退出后重新进入。

8.6 功能点的测试

8.7 检查Err是否有错误,有就调用方法

8.8 完成测试用例,填写执行信息

8.9 恢复log目录为顶级.

Log.PopLogFolder

测试项目规范

9.1 每个Project至少设置一个项目,ZLBASE这类没有直接执行项目的,设置一个

OnlyForRun的空过程。

9.2

测试项目是指在Organize Tests中定义的测试执行项目

9.3

一个测试项目就是一个测试用例,也就是脚本的中一个过程。

9.4

测试项目的执行顺序

9.4.1

业务系统数据初始化用例

9.4.2

其他用例根据测试思路和业务逻辑

一个业务系统的执行项目树 9.5

9.5.1 Material_InitGrup:业务系统的数据初始

9.5.1.1 Material_Init_1

9.5.1.2 Material_Init_2

9.5.1.3 .

9.5.2 Material_Test_PurchaseGroup:外购入库功能点测试目录

9.5.2.1 Purchase_AddNew_1

9.5.2.2 Purchase_AddNew_2

9.5.2.3

9.5.3 Material_Finish

10 脚本中错误处理的规范

10.1 函数中的错误处理

10.1.1 函数中全部加上On Error Resume Next

10.1.2 函数出口处,判断是否出现Err错误,如果出现,就通过g抛出一

个警告。

10.2 测试用例过程中错误处理

10.2.1 全部加上On Error Resume Next

10.2.2 功能点验证中,出现错误,,就通过抛出一个错误。

10.2.3 过程出口处,判断是否出现Err错误,如果出现,就通过抛出一个

错误。

10.3 OnLogError事件中处理错误

True

10.4 通过Organize组织选择的测试用例中Stop on erro设置规则

10.4.1 单独执行的用例项目,设置“none

10.4.2 有上下级的用例项目,上级项目为“Test Item,上级项目执行有错误后,下

级项目就不会被执行了。

10.4.3

10.5 g参数

Log.Error(Str, StrEx, Priority, Attr, Picture, FolderID)

10.5.1 Str:错误名称,通过名称,能够清楚是什么类型的错误

功能点错误,比如“功能错误:供应商无法输入简码”

+

aqConvert.VarToStr

(

10.5.2 StrEx:错误详细信息

功能点错误,描述具体的错误信息,比如“预计合计金额为1000,实际合计

金额为1000.01

其它错误,ption的内容

10.5.3 Priority:优先级

功能点错误为:400

其他错误为:500

10.5.4 Picture:错误的图像,当前桌面的图像 e

10.5.5 FolderID:一般不填写,产生在当前目录下