首页 自动化测试-组件开发规范

自动化测试-组件开发规范

举报
开通vip

自动化测试-组件开发规范自动化测试-组件开发规范 自动化测试 组件 BB 开发规范 CCB 版本: 1.0 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 文档修订历史 版本 日期 作者 评审人 说明 第2页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 目录 1. 概述 ..............................................................................................................

自动化测试-组件开发规范
自动化测试-组件开发 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 自动化测试 组件 BB 开发规范 CCB 版本: 1.0 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 文档修订历史 版本 日期 作者 评审人 说明 第2页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 目录 1. 概述 ......................................................................................................................................................... 4 1.1. 组件 ............................................................................................................................................... 4 1.2. 开发过程 ........................................................................................................................................ 4 1.3. 角色和职责 ..................................................................................................................................... 5 1.4. 开发步骤 ........................................................................................................................................ 6 2. 开发准备 .................................................................................................................................................. 7 2.1. 开发环境 ........................................................................................................................................ 7 2.2. 设计文档 ........................................................................................................................................ 8 2.3. 业务 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 ...................................................................................................................................... 10 3. 创建脚本 ................................................................................................................................................ 10 3.1. 向QC提交代码 ............................................................................................................................ 11 3.2. 从QC查看代码 ............................................................................................................................ 11 4. 脚本编写 ................................................................................................................................................ 11 4.1. 脚本结构 ...................................................................................................................................... 11 4.2. 设置参数 ...................................................................................................................................... 12 4.3. 变量声明 ...................................................................................................................................... 13 4.4. 环境初始化 ................................................................................................................................... 14 4.5. 编写脚本正文 ............................................................................................................................... 15 4.6. 自定义函数 ................................................................................................................................... 20 4.7. 脚本清理 ...................................................................................................................................... 21 4.8. 脚本运行及调试 ............................................................................................................................ 21 4.9. 交叉评审 ...................................................................................................................................... 23 5. 脚本评审 ................................................................................................................................................ 23 5.1. 正式评审 ...................................................................................................................................... 23 5.2. 评审检查单 ................................................................................................................................... 23 6. 高级技巧 ................................................................................................................................................ 24 6.1. 描述性编程 ................................................................................................................................... 24 6.2. 调用外部函数 ............................................................................................................................... 24 第3页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 1. 概述 本文档(自动化测试开发规范)定义了组件(Building Block,简称 BB )的开发过程,包括角色划分、职责分配以及关键活动等。同时,本文档还对各项活动提出了具体要求和建议,如开发环境设置、代码编写规范等。自动化测试项目组和开发人员应该遵循本规范完成组件开发工作。 1.1. 组件 组件(BB)是构成自动化测试用例(集合)的基本单位,是按照被测试对象或者系统的功能、界面特点以及可复用性划分的。交易代码、网站的登入登出等都可以划分成组件。 在开发过程中,组件的具体 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现形式是设计文档(Excel文件)和测试代码(QTP脚本)。开发人员应该围绕设计文档和测试代码开展工作。 Excel文件,包含与组件设计相关的多个WorkSheet。包括组件的输入输出参数、设计文档 设计要点以及基本流程等。 测试代码 QTP 脚本,包含 QTP 代码(Action)以及对象库等。 1.2. 开发过程 尽管开发单个组件时间很短,组件开发人员仍应该遵循一定次序完成开发任务。规范的开发过程能够强化组件设计和测试代码实现之间联系,避免返工。 相关角色。图中下图从整体上面说明了组件开发,包括从开发准备、创建脚本、脚本编写和评审等活动和左侧的是组件设计过程,由组件设计人员负责。该过程的主要结果是组件设计文档,它是组件开发的前提条件。本文档对组件设计不做详细说明。 图中右侧描述是本文档的重点内容,即组件开发过程。组件开发人员将从准备开发做起,经历脚本创建、脚本编写,直到最后脚本评审通过。 第4页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 1.3. 角色和职责 虽然 1.2 图示中可以看到,组件开发过程是由组件开发人员负责完成的。这个过程还离不开设计人员和测 试/开发组长的参与。下表是组件开发过程中相关角色和职责。 角色 职责 , 与设计人员和开发人员协调,分配任务并制定进度 , 跟踪开发进度 测试/开发组长 , 协调评审活动 , 为数据和环境的准备与其他部门沟通 , 与开发人员交流并及时更新设计文档 组件设计人员 , 组件开发完成后,按照设计文档和开发规范评审测试代码 , 阅读并检查设计文档,及时与设计人员交流 , 熟悉组件涉及的流程,特别是以手工方式了解流程 组件开发人员 , 按照设计文档和代码编写规范完成组件开发 , 不同开发人员交叉评审 第5页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB , 尽量避免开发人员特别是刚刚加入的成员承担设计工作 , 测试/开发组长可以根据开发人员对组件开发过程和设计工作的熟悉程度,将设分工 计工作交给开发人员。这是开发人员的角色实际已经变为设计人员 , 避免同一个人同时设计和开发同一个组件 , 在设计文档和脚本开发方面存在的问题,开发人员和设计人员应该及时沟通 交流 , 交叉评审和正式评审的结果应该及时沟通 1.4. 开发步骤 组件的开发步骤基本分为以下4个步骤: , 开发准备 , 脚本创建 , 脚本编写 , 脚本评审 开发人员应该严格按照4个步骤完成组件的开发工作。下表说明了每个步骤的主要活动,并且对解释每项 具体活动的章节作了索引。在本文档的第2章到第5章将详细说明这些步骤和活动。 开发步骤说明 步骤 主要活动 章节索引(链接) 2.1 准备开发环境,使开发工具的环境配置符合开发要求 2.2 开发准备 理解设计文档,掌握设计文档的各项要求 2.3 熟悉业务流程,了解被测对象和组件相关的部分 3.1 从 QTP 中创建(修改)测试脚本并提交到脚本管理工具脚本创建 (MQC) 4.1 确定脚本的基本结构,添加基本的脚本信息 4.2 设置脚本参数和 Action 参数 4.3 声明脚本的变量并作相应的初始化 4.4 初始化脚本运行时的环境 4.5 脚本编写 编写测试脚本正文 4.6 编写自定义函数 4.7 在脚本运行结束部分清理临时对象变量 4.8 运行和调试脚本 4.9 开发人员相互作交叉评审 5 从脚本实现是否符合设计、是否符合代码编写规范以及是脚本评审 否运行正常等方面检查脚本是否合格 第6页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 2. 开发准备 在编写脚本以前,组件开发人员应该做好充分的准备。准备工作包括配置开发环境、理解设计文档和熟悉业 务流程等。 2.1. 开发环境 组件开发工作主要是在测试工具 QTP 9.0中完成的,因此开发人员要首先检查并配置好测试工具。 开发环境管理 开发组应该根据被测系统的技术特点以及项目实际需要统一配置 QTP 开发环境 在开始测试以前,确定被测应用/系统的类型是很重要的。系统类型主要分为: C/S 结构,即 Windows 客户端 + 服务器结构。仿真终端 + 3270,以及仿真终端 + VT100均属于 C/S 结构; 系统类型 B/S 结构,即 浏览器 + Web 服务器结构; 不同的系统需要设置不同的外部引用函数库、对象识别方式等。 测试B/S结构的应用程序/系统时开发组应选择Web add-in 选项作为 QTP 的加载 项; QTP 加载项 测试 C/S 结构的应用程序/系统时,则要根据实际情况选择。看被测试系统/系统的add-in 开发技术是否包含了 ActiveX 或者 由 Visual Basic开发,分别选择相应的加载项; 开发人员需要注意 QTP的当前测试设置(Test Settings)中的资源(Resources)资源 选项。它关系到脚本的外部函数库引用。 开发人员需要注意 QTP的当前测试设置(Test Settings)中的环境变量环境变量 (Environment)选项。它关系到脚本的自定义环境变量设置。 当被测试系统为 B/S 结构时,Web 对象识别选项( Option -> Page/Frame Options 对话框)设置如下,以保证 Web 类型的对象识别时没有过多重复对象。 对象识别 开发组应该指定专人开发并管理 vbs 自动配置脚本,避免开发人员随意更改; 自动配置 QTP 的部分配置不能实现自动化,比如参数设置。开发人员需要根据开发组的统一 要求进行设置 第7页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 组件开发人员可以用手工方式完成开发环境的配置,或者用下面的 vbs 脚本完成 QTP 环境的自动配置。使用前应该根据当前项目要求将文件内的相应参数设置正确,并将文件名改为 *.vbs 形式。按照被测试应用/系统的类型,QTP 自动配置脚本分成了如下几种情况。 QTP 自动配置脚本 适用于仿真终端+3270 C/S 类型 适用于仿真终端+VT100 B/S 类型 2.2. 设计文档 正确配置开发环境仅仅是开发工作的第一步,接下来应该详细阅读并理解组件的设计文档。组件设计文档包括开发工作需要的大部分信息,在脚本编写之前组件开发人员应该与设计人员一一确认不清楚的地方。 一份详细的设计文档包括: , 组件基本信息(名称、功能说明、开始结束界面) , 参数说明(输入、输出参数) , 开发指导(开发要点和步骤伪代码说明) , 截图(业务流程中的关键界面) 组件设计文档统一存放在部门 VSS 服务器上,地址:128.32.96.244; 开发人员应该统一参考所在项目的组件设计文档,设计文档在VSS上的存放路径 格式为:\业务测试部项目\<项目名称>\测试阶段\自动化测试; 设计文档 存放位置 例如,国际卡项目的组件测试文档存放目录如下: 业务测试部项目\国际卡\测试阶段\自动化测试 设计文档并不一定全部正确,开发人员在仔细阅读理解的同时也应该检查设计文设计错误 档。遇到设计错误时,应该要求设计人员修改设计文档 设计人员可能采用步骤描述或者伪代码的形式指导开发人员的脚本编写,开发人员步骤与伪代码 应该按照其中的思路了解被测对象和相关流程,最后实现测试脚本 对设计文档的理解不能停留在文档水平上,组件开发人员还应该动手熟悉相关的业业务流程 务流程 第8页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 下面的示例代码对比了伪代码和伪代码实现后的真实脚本。开发人员可以作为参考。 示例代码 ReturnStr=0 伪代码 If 初始化窗口成功 then 输入 apap 并提交 Else 报告初始化失败 exittest End if 等待查询窗口出现 If 等待超时 then 报告缺陷 Exittest End if 输入合法机构号,卡类,申请号并提交 等待查询结果窗口出现 If 等待超时 then 报告缺陷 Exittest End if If 在界面上找到 CZNR 表示的字符串 then 按 f7 ReturnStr=1 报告查询成功 Else 报告查询失败 End if parameter("ReturnStr")="0" 伪代码实现 ' 初始化窗口 If InitWindow("菜单") Then ' 进入apap PEInput "apap"+"[ctrl]" Else Reporter.ReportEvent micFail ,"失败","异常错误","系统初始化错误。" exittest End if If PEWaitText(“机构”,5)=false then Reporter.ReportEvent micFail ,"失败","异常错误","查询窗口没有出现。" existtest 第9页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB End if '输入查询条件:机构号,卡类,申请编号 '输入机构号 PEFieldInput parameter("organID"),5,18 '输入卡类 PEFieldInput parameter("type"),5,33 '输入申请编号 PEFieldInput parameter("applicationID"),5,53 PEInput "[Ctrl]" If PEWaitText(“机构”,5)=false then Reporter.ReportEvent micFail ,"失败","异常错误","查询结果窗口没有出现。" existtest End if ' 反向案例,无论是否找到都按F7 If PECheckpage(parameter("CZNR")) Then PEInput "[F7]" parameter("ReturnStr")="1" Reporter.ReportEvent micPass ,"查找成功","需要查找的内容: 【"¶meter("CZNR")&"】已经找到" Else Reporter.ReportEvent micFail ,"查找失败","需要查找的内容: 【"¶meter("CZNR")&"】没有找到" End if 2.3. 业务流程 开发人员在理解设计文档的同时,就应该熟悉被测应用程序/系统的相关业务,特别是手工方式。 设计文档 仔细阅读,理解和审查设计文档 按照设计文档中的功能和步骤熟悉业务流程,应该以手工方式执行各步骤。建议至手工执行 少执行两次并且尽量保证两次所执行的操作一致。如果两次执行的操作不一致,可 以记录下来,作为异常处理点 总结在执行步骤的过程中的重复操作,为脚本内的自定义封装函数做准备 自定义函数 如果总结过程中发现所需函数通用性很强,开发人员应该查找公共函数库和函数库全局函数 说明,避免在脚本编写过程中的重复开发。如果公共函数库没有提供该函数,应该 向测试/开发组长或者公共函数库开发人员提出公共函数开发请求 3. 创建脚本 脚本编写前的准备工作完成后,组件的开发人员可以开始创建并编写脚本了。目前 MQC 是组件的脚本的保 存管理工具,因此本章主要介绍开发人员如何完成这项工作。 第10页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 3.1. 向QC提交代码 运行 QTP 后创建新的测试脚本(Test),连接 MQC 并将测试脚本保存到开发组指定的位置。详细的操 作步骤请参考 QTP 使用说明中关于 MQC 连接的说明。 开发组应该统一设计和规定 MQC 的保存路径,开发人员应该按照指定路径保存测保存路径 试脚本 脚本名称 脚本名称应该与设计文档中规定的组件名称一致 Action 名称 脚本包含的 Action 名称应该与脚本名称一致 首次提交代码时,开发人员应该在脚本头部注释中声明名字和日期; 脚本注释 修订代码时,开发人员应该在脚本头部注释中添加修订信息; 3.2. 从QC查看代码 开发过程中,开发人员主要通过测试工具 QTP 向 MQC 提交和修改代码。当需要阅读其他脚本代码(评 审)时,可以从 QC 查看测试脚本代码。详细的操作步骤情参考 MQC 使用说明。 4. 脚本编写 完成了开发准备并创建了脚本,组件开发人员可以开始编写测试脚本了。基本步骤包括: , 确定脚本结构 , 设置参数 , 声明变量 , 初始化环境 , 编写正文 , 清理环境 , 声明定义函数 , 调试运行 , 交叉评审 在本章的4.1到4.9各节中分别描述了这些步骤和活动要点。 4.1. 脚本结构 为了使脚本更加条理清楚,开发人员应该大体将脚本文档划分成以下几个组成部分,其中每部分的前面用 注释行和说明分隔。建议的脚本结构如下: , 脚本文件头,包括 Option Explicit 语句,以及作者,日期和修订历史 , 全局变量声明和初始化部分 , 环境初始化部分 , 脚本正文(实现业务逻辑部分) , 环境清理 , 自定义函数 开发人员可以参考下面的附件来确定脚本结构: 第11页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 另外,还可以把上述结构作为 Action 模板自动加载到 QTP 当中。具体做法是把下面的文件复制到 /dat/ 目录下面即可。自动加载Action 模板后的 QTP 效果可以参考后面的插图。 4.2. 设置参数 按照设计文档的要求设置输入输出参数。测试脚本的参数包括 Test 参数和 Action 参数。Action 的输入和输出参数必须与 Test 的输入输出参数一一对应,并且名称保持严格一致。 完成了 Test 和 Action 的参数设置之后,应该在 Action 的调用属性(Call Property)对话框中设置两组参数之间的传递关系,如下图: 第12页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 每个测试脚本以及相应 Action 都必须有一个名为 ReturnStr 的输出参数,该参数表 示组件的执行结果。 ReturnStr 参数 脚本执行完毕后,如果该参数为 0,表示脚本执行结果为失败;如果该参数为 1, 表示脚本执行成功。 设计文档明确说明了组件各参数的名称、是否必填以及默认值。开发人员应该保证参数属性 实际设置的参数与设计文档的要求完全一致 4.3. 变量声明 变量声明包括在脚本的变量部分声明全局变量并初始化。 第13页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 示例代码 '************************************************************************************************** ' 以下代码设置在本脚本中要用到的全局变量 '************************************************************************************************** ' 开始时间,结束时间 变量声明 Dim StartTime, EndTime ' 页面 Dim PageObj 变量初始化 ' 初始化变量 StartTime=Timer (对象类型使 Set PageObj=Browser("中国建设银行网上银行").Page("中国建设银行网上银行") 用 Set 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ) 变量声明 所有变量都必须显式声明 变量名称包含的每个单词首字母应大写,且变量名称应尽量表达业务内容。单词可 以是英文或者拼音,但应该完整易读。 如: 变量名称 PolicyCode、CaseNo 或 CeshiDaima 常量名称应保证所有字母全大写,且各个单词之间用“_”隔开。例如: 常量名称 OFFICE_HOME 变量声明部分一定要包含以下初始化 ResturnStr 参数的语句: ReturnStr初始化 Parameter(“ReturnStr”)=”0” 4.4. 环境初始化 这里所说的环境并不是指 QTP 开发环境,而是指 QTP 脚本运行时被测试应用/系统的环境。 示例代码 '************************************************************************************************** ' 以下代码初始化环境,将初始页面设置为...(其它初始化操作) '************************************************************************************************** ' 初始化窗口 If InitWindow("菜单") Then 环境初始化 '进入apap PEInput "apap"+"[ctrl]" Else Reporter.ReportEvent micFail ,"失败","异常错误","系统初始化错误。" exittest End if 第14页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 初始页面 初始页面是否与设计文档描述一致。如果不一致,则需要将页面初始化为所需页面 多余窗口 是否有多余的应用程序或窗口,这些程序/窗口有可能影响到脚本的运行 是否清理了垃圾数据(即在手工执行了两遍操作步骤后,是否在系统中留下了垃圾垃圾数据 数据,影响到脚本的重复执行) 4.5. 编写脚本正文 在编写完初始化代码后,就可以开始编写脚本正文了。开发人员应该按照如下要求编写脚本正文。 确定哪些地方可以封装成函数; 自定义函数 遇到需要用到自定义函数的时候,开始在自定义函数部分开发函数,然后调试; 按照设计文档提供的伪代码或者步骤描述开始编写脚本,同一层次的代码和注释应 该对齐; 缩进 循环或分支语句中(Do / Loop,For / Next,While / Wend 以及IF / End IF)的各 个语句要按照所在层次进行缩进对齐(需要将自动缩进打开); 建议手写脚本并用 Spy 来获取页面上的对象的属性和名称,特别是当被测应用/系对象属性和名称 统是 B/S 结构的时候 尽量使用在变量声明部分声明的全局变量,以简化工作量 例如: Browser(A).Page(B).WebEdit(C).Set “1” 可以在变量声明部分先初始化 变量 Set PageObj= Browser(A).Page(B) 可简化为: PageObj.WebEdit(C).Set “1” 当脚本代码中有大量相似语句时,可以用这样的方法简化代码 脚本中只要有任何一处出现失败,则认为整个 BB 执行失败,此时要保证 ReturnStr ReturnStr 为 0,并退出测试。在脚本所有语句执行成功后,则要确保将其设置为 1。 如果在设计文档或者步骤/伪代码中注明需要退出脚本运行的地方,应该统一使用退出 exittest语句实现退出 其中编写脚本正文时需要特别注意的是异常处理,同步点,检查点和注释等,以下分别详细说明。 4.5.1. 异常处理 在开发时,可以尝试一些非法操作以便编写异常处理代码。 开发人员必须考虑以下5种场景的异常处理。 第15页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 在操作对象(控件,窗体或文件)之前,应该检查该对象是否存在或显示。如果存场景1 在并且显示,则进行下一语句,否则报告异常或执行相应操作。 如果函数的输入参数可能存在非法值(数值范围或者字符串类型限制等),则要进场景2 行异常处理。 在创建或实例化一个对象后(CreateObject 方法),需要判断该对象是否创建或实场景3 例化成功。 场景4 在可能弹出异常窗口或者对话框的地方,要进行异常处理。 场景1 - 示例代码 Function clickLinkInTopMenu(ByVal innertext, ByVal index, ByRef errMsg) Set parentObj = Browser("eCC").Page("CFrame") Set desc = Description.Create desc("micclass").value = "Link" desc("innertext").value = innertext 判断了网页是否包含 Link If parentObj.ChildObjects(desc).Count() > 0 Then 对象,然后再做相应处理 … else … End If Set desc = Nothing End Function 场景2 - 示例代码 Function xls_create_new_workbook(In_Str_Save_Path) Dim NewWorkbook Set Obj_ExcelApp= CreateObject("Excel.Application") If ( TypeName(In_Str_Save_Path)<> "String" ) then 判断输入参数是否为 …. String 类型,然后执行相Else 应操作 …. End If End Function Function xls_destroy(In_Obj_Workbook) Dim Int_Close_Success On Error Resume Next If not In_Obj_Workbook Is Nothing Then 判断输入参数是否为空,…. 然后执行相应操作 Else …. End If End Function 第16页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 场景3 - 示例代码 Dim App 'As Application on error resume next Set App = CreateObject("Excel.Application") 判断是否成功创建 QTP 对If Err.Number <> 0 then 象,然后执行相应操作 msgbox "创建 Excel 对象失败" WScript.Quit end if 场景4 - 示例代码 If Window(“找不到文件”).Exist(1) then 判断是否出现“找不到文… Else 件”窗口,然后执行相应 … 操作 End If 4.5.2. 同步点 添加必要的同步点,但是避免直接使用 Wait 方法。使用同步点的场景有以下几种: 场景1 Web 页面发生变化时,先要用 Sync 方法对页面进行同步。这种方法适用于被测试应用/系统是 B/S 结构的情况。 Browser("中国建设银行 个人网上银行").Page("中国建设银行 个人网上银行当前风格 ").WebElement("投资理财").Click Browser("中国建设银行 个人网上银行").Page("中国建设银行 个人网上银行 ").Sync Browser("中国建设银行 个人网上银行").Page("中国建设银行 个人网上银行改进建议 ").WebElement("投资理财").Click 上述脚本等待“中国建设银行 个人网上银行”页面完全在浏览器中显示后再单击 “投资理财”。 场景2 如果页面没有发生变化,但是某一对象的属性发生变化,可以根据该属性变化进行同步。即使用对象的 WaitProperty 方法进行同步。 Browser("中国建设银行 个人网上银行").WinStatusBar("状态栏 ").WaitProperty("text","完成",10000) 改进建议 上述脚本等待页面加载完毕后再执行后面的语句。 场景3 如果无法根据任何控件的任何属性进行同步,则可以通过检查界面是否包含特定字符,然后循环等待来进行同步。(此方法最适合只有终端窗口的程序) 第17页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB '输入交易代码 PEInput "gccc" PEInput"[Ctrl]" Wait 1 当前风格 '输入客户号,卡号或者帐号机构代码 PEInput parameter("organID") '输入交易代码 PEInput "gccc" PEInput"[Ctrl]" PEWaitText(“机构”,5) 改进建议 '输入客户号,卡号或者帐号机构代码 PEInput parameter("organID") 场景4 如果前三种方法不适用,则可考虑判断对象是否存在,然后循环等待来进行同步。 Function objSync(obj, maxtime) Dim t t=0 objSync = True While (obj.Exist(1)=false) wait(1) t = t+1 改进建议 If t = maxtime Then objSync = False Exit Function End If Wend End Function 页面变更,例如翻页,提交表单,页面跳转等。考虑方法 1,3 必须增加同步点的出现进度条,考虑方法 2 情况 等待弹出窗口或窗口消失,考虑方法 4 开发组应该根据被测应用/系统的情况统一设置同步点超时时间; 开发组应该将超时时间作成全局变量或者将超时时间包含在公共函数内,方便开发同步点超时设置 人员使用; 开发人员不能随意设定超时时间; 如果添加同步点时前面列举的4 种场景都不适用,可考虑使用 Wait 语句。但是必Wait 语句 须添加注释,解释使用 Wait 语句的原因。 第18页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 4.5.3. 检查点 按照设计文档要求或者步骤描述/伪代码指明的检查点处,正确添加检查点。 检查点统一格式为: If 检查条件为真 Then 检查点格式 报告相应结果 Else 报告相应结果 End If 开发人员不能随意使用 QTP 自带的任何 CheckPoint 方法; QTP 检查点 遇到必须使用(例如,图象检查点)的情况,需要经审测试/开发组长批准后才可使(CheckPoint) 用。 4.5.4. 注释 开发人员应该在脚本中添加必要的注释。 示例代码 If PEWaitText("输入",1)Then'如果反例处理标志找到,则不进行反例处理 当前风格 '如果反例处理标志找到,则不进行反例处理 改进建议 If PEWaitText("输入",1)Then 所有注释都必须写在相关代码行的前面,如果注释长度超出屏幕的宽度,则需要换行,并且新行必须与 上一行对齐。 所有注释必须与相关代码行对齐。 遇到以下情况时,必须在相应代码行前面加注释: , 逻辑判断,即 IF/Else 语句 , 循环结构,即 For/Next 、Do/Loop 、 While/WEnd 语句 , 检查点,即判断实际结果是否符合预期的语句 , 同步点,特别是用 Wait 语句同步的地方 , 异常处理 , 复杂的计算式或表达式 , 调用自定义函数 第19页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 4.6. 自定义函数 所有自定义函数都必须在其前面添加注释,注释格式如下: '******************************************************************************** ' 函数名称: ' 功能说明: 注释 ' 输入参数: 一行只写一个参数,然后写说明,下一个参数与上一个参数对齐 ' 输出参数: 同上 ' 返回值: '******************************************************************************** 函数名称的每个单词首字母应大写,且函数名称应尽量能表达业务内容,如:PolicyCode、CaseNo等。如果是操作类的函数,应该以动词开头,如: 函数名称 ReadFile,ExecuteQuery。自定义函数名称包含的单词可以用英文或者拼音,但应该保证每个词完整,避免出现缩写形式特别是拼音首字母组合。 自定义函数应该按照 4.5.1 节的要求加入异常处理。 异常处理 自定义函数应该按照 4.5.2 节的要求加入同步点。 同步点 如果函数太多,可考虑放到一个 .vbs 文件中,做成函数库文件,此时需要在该文件头部加入以下注释: '******************************************************************************** 函数库文件 ' 函数库名称/版本: ' 函数库说明: ' 函数列表: 直接写函数名和相应的说明即可 '******************************************************************************** 示例代码 '**************************************************************************************** '函数名称:PEWaitText '功能:提示信息的对话框,一定时间后自动关闭。 '输入参数: Str:等待屏幕出现的提示信息 TimeOut:超时时间 自定义函数注释 '输出参数:无 '返回值:如果为 True,表示在指定时间内出现特定字符,否则为 False '**************************************************************************************** Public Function PEWaitText(byval Str,byval TimeOut) …. End Function 正确写法:PolicyCode、CaseNo 函数名称 - 英文 错误写法:PCode、CNo 正确写法:CeshiDaima 函数名称 - 拼音 错误写法:CSDM 第20页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 4.7. 脚本清理 编写脚本时,开发人员应该牢记脚本运行结束之前必须在此部分中清除内存中的所有对象变量。 示例代码 Dim objFSO, objRead 当前风格 …. Dim objFSO, objRead … 改进建议 Set objFSO=Nothing Set objRead=Nothing 如果测试脚本执行结果为成功,则必须在此部分加入以下语句: ReturnStr Parameter(“ReturnStr”)=”1” 4.8. 脚本运行及调试 调试通过之后能够正常运行的脚本中不包含大段废弃并注释掉的代码 注释 调试通过之后不保留用于调试的影响正常运行的语句,特别是 MsgBox 语句 调试信息 保证脚本正常运行至少两遍以上,保证脚本运行不受运行前后测试环境变化影响 运行次数 调试运行的时候,不仅使用输入和输出的默认值。还需要根据实际情况准备多组测测试数据 试数据,特别是有正反案例存在的情况下 下面的表中列举了脚本调试中必备的命令/操作,在调试和运行过程中应该反复使用。 代码调试 在 QTP 编辑环境的 Expert View 中,将光标停留在一个语句/关键字上并按下 F1 在线帮助 键,将弹出 QTP 在线帮助窗口并定位到相关解释 MsgBox 命令可以帮助开发人员观察所需要的变量值等,但是该命令直接停止代码 执行是明显的缺点。如果调试完成后不及时清除,将直接影响代码正常运行; MsgBox 和 Print Print 命令也可以帮助观察需要的值等,该命令不会影响代码正常运行。应该优先 使用 QTP 允许代码以调试方式运行,包括断点设置与清除和单步执行等。将光标定位 到需要设置断点的位置并按下 F9 ,在编辑界面的左侧对应位置将出现实心圆点的断点和调试 断点标记。 BreakPoint Debugging 第21页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 结合其他的几个调试命令(运行 F5 ,单步执行 F10 ,转入 F11),可以灵活控 制代码的运行状态 按下 QTP 工具栏上 Debugger View 按钮,QTP 窗口下方将显示调试窗口。 调式窗口 Debugger Viewer 调试窗口需要配合断点使用,分别包含 Watch , Variables 和 Command 等窗 口。当代码运行至断点处或者处于单步调试状态时: Watch窗口显示当前添加到该窗口中需要监视的变量和值; Variables 窗口显示当前所有变量和值; Command 窗口可以手工输入 QTP 命令用于调试; 第22页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 4.9. 交叉评审 交叉评审活动是开发人员相互之间评审脚本的活动,有助于在正式评审之前发现问题并解决。在开发过程中,开发人员应该按照测试脚本开发 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 中安排的或者自发的开展交叉评审。关于评审的具体要求将在第5章详细说明。 5. 脚本评审 完成了测试脚本开发和交叉评审后,开发人员就可以把脚本提交给测试/开发组长作正式的脚本评审了。本章节说明脚本评审的要点,其中脚本评审的检查单也可以用于开发人员之间的交叉评审。 5.1. 正式评审 正式评审脚本时应该尽量保证以下几个方面,这样评审之后的脚本质量才有保证。 检查脚本是否符合设计文档 符合性 检查脚本是否符合编码规范 规范性 检查脚本的测试用数据,并检验脚本是否可以正常运行 运行 5.2. 评审检查单 如果评审检查单用于正式评审,负责评审的人员应该详细记录评审结果并跟踪正式评审 开发人员修改情况 第23页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 自动化测试-开发评审检查单.xls 6. 高级技巧 6.1. 描述性编程 把对象的属性及属性值直接搬到代码中去,不需要在对象库中存储对象的信息,就是描述性编程。描述性编程只要遵循一个原则:在代码中告诉QTP足够他识别该对象的属性。 描述性编程语法1 , TestObject(“PropertyName1:=PropertyValue”,…, “PropertyNameX:=PropertyValueX”) , TestObject - 测试对象的类 , PropertyName:=PropertyValue - 测试对象的属性名及其值。各个property:=value 对之间应用 逗号和引号分开 示例1 Browser(“name:=个人网上银行”).Page(“title:= 个人网上银行”).Link(“text:=转帐”).Click 描述性编程语法2 使用 Description 对象可以返回包含一组 Property 对象的 Properties 集合对象。Property 对象由属性名和值组成。然后,可以在语句中指定用返回的 Properties 集合代替对象名。 , Set MyDescription = Description.Create() 示例2 Set bs_Title= Description.Create() Set page_Title= Description.Create() Set link_Text= Description.Create() bs_Title("title").value="个人网上银行" page_Title("title").value="个人网上银行" link_Text("text").value="转帐" Browser(bs_Title).Page(page_Title).Link(link_Text).Click 6.2. 调用外部函数 在某些场合下,QTP 内部提供的功能可能无法满足脚本开发需求。此时需要引用外部函数来实现目标,以下是两种调用外部函数的方法。 6.2.1. 调用 dll 文件中的函数 方法: 先通过 extern 对象的 Declare 方法来声明 DLL 中的函数,然后通过 extern 对象来调用该函数。 示例: 'Declare FindWindow method Extern.Declare micHwnd, "FindWindow", "user32.dll", "FindWindowA", micString, micString 'Get HWND of the Notepad window hwnd = Extern.FindWindow("Notepad", vbNullString) 第24页 共25页 自动化测试 组件 BB 开发规范 版本: 1.0 CCB 6.2.2. 调用外部 .vbs 文件中的函数 方法: 先用 Excutefile 语句包含 .vbs 函数库文件,然后调用该文件中的函数。此方法不适合调用 QC 上的函数库。 示例: Excutefile(“vbs 文件的完整路径”) 第25页 共25页
本文档为【自动化测试-组件开发规范】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_447713
暂无简介~
格式:doc
大小:205KB
软件:Word
页数:0
分类:生产制造
上传时间:2017-09-26
浏览量:31