QTP脚本规范

合集下载

QTP脚本编程指导教程

QTP脚本编程指导教程
脚本编程环境
在QTP软件中,用户可以创建脚本项目,设置脚本语 言和运行环境等参数。
QTP脚本编程语言基础
VBScript语言
QTP脚本编程使用VBScript语言,这是一种简单 易学的脚本语言,用于编写自动化测试脚本。
关键字和数据池
QTP提供关键字和数据池功能,用于定义测试数 据和参数化测试用例。关键字可以用于编写条件 判断、循环控制等逻辑语句。
问题3
如何处理异常和错误?
问题4
如何提高脚本的稳定性和可维护性?
QTP脚本编程解决方案
01
解决方案1
使用对象识别器识别动态变化的界 面元素
解决方案3
使用异常处理机制处理异常和错误
03
02
解决方案2
使用条件语句和循环结构实现多步 骤操作的自动化
解决方案4
遵循良好的编程规范,提高脚本的 稳定性和可维护性
01
设计清晰的目录结构,规范测试脚本命名规则,便于测试框架
的管理和维护。
实现测试用例管理
02
使用测试用例库,统一管理测试用例,方便测试用例的复用和
更新。
集成持续集成工具
03
将自动化测试框架与持续集成工具集成,实现自动化构建、部
署和测试。
QTP脚本编程与其他工具集成
与Bug跟踪工具集成
将测试结果与Bug跟踪工具集成,实现Bug 的跟踪和管理。
动态对象识别
对于动态变化的界面元素,QTP支持使用正则表 达式进行对象识别。
QTP脚本编程数据驱动测试
数据驱动测试的概念
数据驱动测试是一种测试策略,通过将 测试数据与测试逻辑分离,提高测试的
复用性和可维护性。
数据参数化
在QTP中,可以使用参数化功能将测 试数据传递给测试脚本,实现动态测

QTP

QTP

由于一直以来事情都比较多,最近上课还有其它的事情,所以本来答应一个朋友把脚本帮他写一些,但是耽误了3-4天了,实在不好意思。

这里把脚本简单说一下,我们分析一下。

当时问题是这样的,―我的错误的用户名就没办法登陆‖,其实含义就是脚本最好能处理成功的用户名错误的用户名,那么这里涉及到脚本的设计。

目标如下:1. 脚本需要处理成功和失败的用户的登陆2. 数据驱动设计开发脚本如下:第一步录制脚本如下Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统4.0").WebEdit("txtLoginName").Set "吕巍"Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登录").set ""Browser("智能变电巡检仪系统 4.0").Page("Page").SynBrowser("智能变电巡检仪系统 4.0").Close以上为录制的正确的用户名,下边录制错误的用户名Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统4.0").WebEdit("txtLoginName").Set "xx"Browser("智能变电巡检仪系统 4.0").Page("智能变电巡检仪系统 4.0").WebButton("登录").set ""出现错误提示―该用户不存在‖第二步增强脚本现在需要设计的是一套脚本驱动所有的测试数据,这样可以驱动所有的用例数据,qtp中提供了datatable。

QTP基础教程学习

QTP基础教程学习

QTP基础教程学习QTP(QuickTest Professional)是一款功能强大的自动化测试工具,用于测试桌面、客户端和Web应用程序。

本教程将详细介绍QTP的基础知识和其主要功能。

接下来就让我们开始学习吧!第一部分:QTP基础知识1.QTP简介:介绍QTP的概念、特点和功能。

2.QTP安装与配置:详细介绍QTP的安装步骤和配置方法。

3.QTP界面与工具栏:介绍QTP的界面和各个工具栏的功能。

4.QTP操作对象:说明QTP如何识别和操作不同类型的对象。

第二部分:QTP脚本编写与调试1.QTP脚本基础:介绍QTP脚本的基本语法和规则。

2.对象识别与对象库:详细介绍对象识别的原理和方法,并介绍对象库的使用。

3.数据驱动与关键字驱动:介绍如何使用数据驱动和关键字驱动的方法来提高脚本的复用性和可维护性。

4.脚本调试与错误处理:讲解如何调试脚本并处理可能出现的错误。

第三部分:QTP测试流程与框架1.测试计划与测试用例:介绍测试计划的编写和测试用例的设计。

2.重用测试对象和脚本:讲解如何重用已有的测试对象和脚本。

3.参数化与数据驱动:详细介绍如何使用参数化和数据驱动的方法进行测试。

4.错误处理与结果分析:讲解如何处理测试过程中可能出现的错误,并分析测试结果。

第四部分:QTP高级功能与扩展1.自定义操作和函数库:介绍如何自定义操作和函数库以满足特定的测试需求。

2.自动化测试报告与生成:详细讲解如何生成自动化测试报告。

3.QTP与版本控制工具的集成:介绍如何将QTP与版本控制工具集成来管理测试脚本的版本。

4.高级脚本编写技巧:讲解一些高级的脚本编写技巧和最佳实践。

5.QTP与其他测试工具的集成:介绍如何将QTP与其他测试工具进行集成,提高测试效率。

在学习QTP的过程中,你还可以通过一些案例实践来巩固所学的知识。

例如,在一个网页登陆的测试中,你可以使用QTP记录下登陆操作的脚本,并进行调试和错误处理。

然后根据需要,你可以对脚本进行参数化和数据驱动,以覆盖不同的测试场景。

第三讲(QTP基本使用方法(编辑脚本))(2)

第三讲(QTP基本使用方法(编辑脚本))(2)


维护测试脚本 分解Action 运行脚本 结果分析
本节课内容
QuickTest录制与编辑脚本 管理测试
创建新的测试脚本 保存测试脚本 打开测试脚本副本 压缩与解压测试脚本

维护测试脚本 分解Action 运行脚本 结果分析
创建新的测试脚本
单击”文件工具栏”中的”新建 ” 按钮 选择【File】—【New】—【Test】
维护测试步骤
对录制的脚本进行维护 添加新的测试步骤
维护测试步骤
添加新的测试步骤
分解Action
选中”OK”所在行,点击菜单栏【Edit】—【Action】—【Split Action】 选中”OK”所在行,在右击菜单中选择”Action”—“Split„..”
运行脚本
【Start】—【Programs】—【QuickTest Professional】— 【Tools】—【Test Batch Runner】
测试工具—QuickTest
——黑盒测试技术
第三讲
主讲人:xxx
2010-2011第二学
1
内容回顾
QTP功能介绍
QTP的基本配置
QTP帮助文档 QTP视频教程 QTP自带样例 创建测试项目
QTP窗口介绍 QTP 关键字视图 KeyWord View可以做什么?
KeyWord View各功能点介绍?
保存测试脚本
单击“保存” 按钮 选择【File】—【Save】
打开测试脚本副本
单击“打开”按钮 选择【File】—【Open】—【Test】
压缩与解压测试脚本
选择【File】—【Export Test to Zip File„】

03C-3-QTP运行和调试脚本使用

03C-3-QTP运行和调试脚本使用

1.QTP运行和调试脚本编辑好测试脚本后,在运行之前,可以利用QTP的语法检查功能和脚本调试功能对测试脚本的逻辑进行检查。

2.语法检查路径:tool\Check Syntax3.运行整个测试在测试脚本语法无误后,可以进行脚本的运行。

在运行测试之前,可以对运行进行必要的设置。

路径:Tools\options\runFAST:以尽快的速度运行脚本的每一个步骤Normal:设置每一个步骤的停顿时间Wait 2 等待2秒4.运行部分测试如果有多个Action,可以运行需要的Action路径:Automation\run current Action注意:要求新的action 是after the end of action方法一:修改record and run setting 的路径1、record and run test on any open windows-based application2、或者选择record and run only on,然后在application details删除路径方法二:添加Login对话框对象,选中所有type1.dialog(“Login”).Close2.或者点击取消按钮,Dialog("Login").WinButton("Cancel").Click5.分析测试结果结果页面显示,测试是否通过,测试脚本是否正确的完成了测试。

6.利用Action Screen 来编辑测试脚本利用关键字和专家视图进行测试脚本的编辑是主要的。

而作为QTP的一个独有的功能,Action Screen。

可以辅助编辑和维护脚本。

Action Screen 是测试步骤的截图。

用于直观的描述测试步骤。

也是一个测试对象的信息库,存储了测试步骤中测试对象的信息路径:tools\options\active screenComplete 捕获和存储所有的信息,包括窗口对话框界面Partal 窗口以及窗口下属信息None 没有6.1作用1:在Active Screen中选择并添加对象到对象库QTP在录制的过程中,仅将步骤所涉及的对象添加到对象库。

第十二章 自动测试工具QTP的使用

第十二章 自动测试工具QTP的使用

QTP的安装和配置 12.1 QTP的安装和配置
这时,如果在其他应用程序的界面上做任何的操作,QTP并 不会将其录制下来,而是仅录制与Flight程序相关的界面操作。 按F4键停止录制后,将得到如图12-5所示的录制结果。在关 键字视图中,可看到录制的测试操作步骤,每个测试步骤涉及的 界面操作都会在Active Screen界面显示出来。
(1)单击Quick Test Professional 安装程序,程序引导安装。 (2)出现许可协议安装界面,选择“我接受该许可证协议中的条款”,点击“是”。 (3)在弹出的许可证类型中选择“单机版”,点击“下一步”。 (4)填写注册信息,点击“下一步”。维护号是随着你的Quick Test Professional包装提 供的。 (5)在弹出的启用Quick Test Professional远程执行界面中选择“自动设置这些选项”, 点击“下一步”。 (6)在设置Internet Explorer高级选项中选择“我将手动选择这些选项”,点击“下一 步”。 (7)在选择安装类型界面中,选择“完全”,点击“下一步”。 (8)自定义安装的目标文件夹。(QTP及其插件的安装仅支持英文路径,也就是说不能 在包含中文命名的文件夹目录中安装QTP或QTP的插件。) (9)等待安装,安装完成后弹出客户注册界面(不用点击“立即注册”),点击“下一 步”。 (10)完成后,在之后弹出的界面中选择“重启电脑”,点击“完成”。 (11)重启完成后,在界面中单击“完成”,出现图12-1所示界面。点击“取消”。
QTP的安装和配置 12.1 QTP的安装和配置
(6)使用QTP编写第一个自动化测试脚本图12-4 Flight程 序界面 设置成仅录制Flight程序后, 选择菜单 “Automation | Record”, 或按快捷键F3,QTP将自动启动 指定目录下的Flight程序,出现如 图12-4所示的界面,并且开始录 制所有基于Flight程序的界面操作。

03C-2-QTP编辑测试脚本使用

03C-2-QTP编辑测试脚本使用

1.QTP编辑测试脚本在掌握了QTP的关键字和专家试图的基本使用方法后,就可以利用对象库object repository、函数库等辅助手段来编辑测试脚本。

2 识别对象GUI的自动化测试主要是围绕着界面的控制元素来进行的。

QTP针对不同语言开发的控件,采取不同的对象识别技术。

路径:Tools \ Object Identification (控制QTP根据对象的什么属性进行识别)3 Object spy的使用QTP提供的object spy工具可用于观察测试对象的属性和方法。

路径:Tools \ Object spyProperties 和operations4 对象库object repository的使用另外一种观察和了解测试程序的界面控制控件和元素,以及他们的层次关系的方法是通过对象库object repository。

路径打开测试脚本\Resources’\Object Repository会把操作所涉及的对象自动添加到对象库中,没有被鼠标或键盘涉及的对象不会被自动添加4.1 手动添加测试对象到对象库中路径:Object Repository \objects\add object to local例如:添加Flight登录界面的cancel 按钮到对象库中,并在关键字视图或专家视图中替换ok按钮。

5 Action的使用在QTP中,“Action”相当于测试脚本文件。

可以使用action来划分和组织测试流程。

例如,把一些公用的操作放在一个Action中,以便重用。

5.1 添加新的Action在某个测试步骤以后添加新的Action路径定位测试步骤\insert\Call to New Action例如:Flight程序在输入用户名和密码之前,新建一个Action步骤:找到login,右键选择action,选中Call to New Action在新窗口看到两个选中框,前一个表示和action1并列后一个表示从属于action5.2 关联Action的对象库新添加的Action不能直接的使用前一个Action中的测试对象。

QTP自动化测试脚本

QTP自动化测试脚本

QTP自动化测试脚本'************************************************************ ' S.A.F.F.R.O.N. Prototype 1.1'' Simple Automation Framework For Remarkably Obvious Notes ' Copyright ? 2006 Mercury Interactive Corporation '' Notes:'' Requires QuickTest Professional 9.1'' Author : Adam Gensler' Created : July 12, 2006' Last Updated : September 11, 2006'' This prototype framework is provided AS IS, and is meant ' to be used for instructional purposes.'' This framework is a prototype, and is not supported ' by Mercury Interactive.''************************************************************ initialized = falsethirdlevel = ""level = ""desc = ""object = ""objectDescription = ""levelsubdescriptiondelimiter = ","leveldescdelimiter = "|"objectdelimiter = "|"leveldelimiter = "|"objectsDescriptiondelimiter = "|"webLevels = "Browser|Page|Frame"webLevelsDesc = "micclass:=Browser|micclass:=Page|micclass:=Frame|" ' 扩展对Image,WebRadioGroup对象的支持objects ="Link|WebButton|WebList|WebEdit|Image|WebElement|WebCheckBox|WebRadi oGroup|"objectsDescription ="micclass:=Link|micclass:=WebButton|micclass:=WebList|micclass:=WebE dit|micclass:=Image|micclass:=WebElement|micclass:=WebCheckBox|micclass:=WebRadi oGroup|"' Generates a generic description based up on the "level" viarable ' levelstr - will be one of the values that is in the level array ' returns - string representative of the object hierarchy Public Function GenerateDescription (levelstr)l = IndexOf(level, levelstr)If l >=0 Thenfdesc = level(0) & "(" & Quote(desc(0)) & ")."If l >= 1 Thenfdesc = fdesc + level(1) & "(" & Quote(desc(1)) & ")."If 2 >= l ThenIf thirdlevel <> "" Thenfdesc = fdesc + level(2) & "(" & Quote(desc(2)) & "," &Quote("name:=" & thirdlevel) & ")."End IfEnd IfEnd IfEnd IfGenerateDescription = fdescEnd Function' Generates an object description based upon the object, and objectDescription arrays' obj - name of the object in the object array ' prop - additional property to help uniquely identify the object ' returns - a string representative of the object description Public Function GenerateObjectDescription (obj, prop)i = IndexOf(object, obj)ndesc = ""If i <> -1 Thenndesc = obj & "(" & Quote(objectDescription(i)) & "," & Quote(prop)& ")."End IfGenerateobjectDescription = ndescEnd Function' given an array, returns the index of the value to search for ' ary- an array' str - value to search for in an array' returns - index in arrayPublic Function IndexOf (ary, str)val = -1For i = 0 to UBound(ary)If ary(i) = str Thenval = iEnd IfNextIndexOf = valEnd Function' configures framework to work within the context of a specificframe ' val - the Name of the frame to work within -- use Object Spy if you don't ' already know the frame namePublic Function WorkInFrame (val)Report micPass, "Enter Frame", "Entered scope of frame " & Quote(val) thirdlevel = valEnd Function' configures the framework to work outside the context of a specific frame Public Function StopWorkingInFrameReport micPass, "Exit Frame", "Exited scope of frame " &Quote(thirdlevel)thirdlevel = ""End Function' generates a string with embedded/surrounding quotesPublic Function Quote (txt)Quote = chr(34) & txt & chr(34)End Function' navigate to a site if the browser is already opened, otherwise run initialization打开指定URLPublic Function BrowseTo (url)thirdlevel = ""Report micPass, "Navigate to URL", "Navigating to URL: " & Quote(url) If initialized ThenExecute GenerateDescription("Browser") & "Navigate " & Quote(url)ElseLaunch "website", urlEnd IfReporter.Filter = rfDisableAllEnd Function' waits for the web page to finish loading等待WEB页面打开完全后再继续执行程序Public Function AutoSyncExecute GenerateDescription("Browser") & "Sync"End Function' close all opened browsers关闭页面Public Function CloseBrowsersIf Browser("micclass:=Browser").Exist (0) ThenBrowser("micclass:=Browser").CloseEnd IfWhile Browser("micclass:=Browser", "index:=1").Exist (0)Browser("index:=1").CloseWendIf Browser("micclass:=Browser").Exist (0) ThenBrowser("micclass:=Browser").CloseEnd IfEnd Function' prepares the framework for usage, and configures all internal framework' variables and structures' apptype - used to launch different types of applications based ' upon different technologies -- currently there is only web ' val - string that represents what to launch ' returns - always returns true Public Function Launch (apptype, val)If "website" = apptype Thenthirdlevel = ""Report micPass, "Initialize", "Initializing Framework"level = split(webLevels, leveldelimiter, -1, 1)desc = split(webLevelsDesc, leveldescdelimiter, -1, 1)object = split(objects, objectdelimiter, -1, 1)objectDescription = split(objectsDescription, objectsDescriptiondelimiter,-1, 1)CloseBrowsersSet IE = CreateObject("InternetExplorer.Application")IE.visible = trueIE.Navigate valWhile IE.Busywait 1WendEnd Ifinitialized = trueLaunch = trueEnd Function' Verify the Existence of an object' objtype - values should be limited to values in the object array ' text - multi-purpose argument that indicates what to verify ' - for a link, or button, it's the text of the control ' - for a list, it's thename of the control ' - for a frame, it's the name of the frame Public Function Verify (objtype, text)rval = falselocalDesc = ""estr = ""If thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()Select Case objtypeCase "Page"Execute "rval = " & GenerateDescription(level(1)) & "Exist (0)"If rval ThenExecute "title = " & GenerateDescription(level(1)) & "GetROProperty(" & Quote("title") & ")"If title = text Thenrval = trueElserval = falseEnd IfEnd IfCase "CurrentFrame"If thirdlevel <> "" Thenestr = "rval = " & localDescEnd IfCase "Link"estr = "rval = " & localDesc & GenerateObjectDescription("Link", "innertext:=" & text)Case "WebButton"estr = "rval = " & localDesc & GenerateObjectDescription("WebButton", "value:=" & text)Case "WebList"estr = "rval = " & localDesc & GenerateObjectDescription("WebList", "name:=" & text)Case "WebEdit"estr = "rval = " & localDesc & GenerateObjectDescription("WebEdit", "name:=" & text)End SelectIf estr <> "" ThenExecute estr + "Exist (0)"End IfIf rval ThenReport micPass, objtype & " Verification", "The " & objtype & " " & Quote(text)& " was verified to exist"ElseReport micFail, objtype & " Verification", "The " & objtype & " " & Quote(text) & " was not found"End IfIf "True" = rval Thenrval = TrueElserval = FalseEnd IfVerify = rvalEnd Function' Activates an object based upon its object type' objtype - the type of object should be limited to values in the object array ' text - identifying text for the control - for a link,it's the text of the link Public Function Activate (objtype, text) localDesc = ""If thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()Select Case objtypeCase "Link"Execute localDesc & GenerateObjectDescription("Link","innertext:=" & text) & "Click"Report micPass, "Link Activation", "The Link " & Quote(text) & " was clicked."Case "WebButton"Execute localDesc & GenerateObjectDescription("WebButton", "value:=" & text) & "Click"Report micPass, "WebButton Activation", "The WebButton " &Quote(text) & " was clicked."' 扩展对Image类型的按钮的支持Case "Image"Execute localDesc & GenerateObjectDescription("Image", "name:=" & text) & "Click"Report micPass, "ImageButton Activation", "The ImageButton" &Quote(text) & " was clicked."'扩展对WebCheckBOX选中或撤销选中支持Case "WebCheckBox"Execute "texts = " & localDesc &GenerateObjectDescription("WebCheckBox","name:=" & text) & "GetROProperty (" &Quote("checked") & ")"If texts=0 ThenExecute localDesc & GenerateObjectDescription("WebCheckBox","name:=" &text) & "Set"&Quote("ON")ElseExecute localDesc & GenerateObjectDescription("WebCheckBox","name:=" &text) & "Set"&Quote("OFF")End IfReport micPass, "WebCheckBox Activation", "The WebCheckBox " & Quote(text)& " was clicked."End SelectEnd Function'判断WebCheckBox当前状态,如果是0则位选中,1为选中Public Function isWebchecked(text)localDesc = ""If thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()Execute "texts = " & localDesc &GenerateObjectDescription("WebCheckBox","name:=" & text) & "GetROProperty (" &Quote("checked") & ")"isWebchecked=textsEnd Function'根据Index:=N的值进行Click,目前只实现了WebCheckBoxPublic Function ActivateForIndex(objtype,i)localDesc = ""If thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()Execute "texts = " & localDesc &GenerateObjectDescription("WebCheckBox","index:=" & i) & "GetROProperty (" & Quote("checked") & ")"If texts=0 ThenExecute localDesc &GenerateObjectDescription("WebCheckBox","index:=" & i) &"Set"&Quote("ON")ElseExecute localDesc &GenerateObjectDescription("WebCheckBox","index:=" & i) &"Set"&Quote("OFF")End IfReport micPass, "WebCheckBox Activation", "The WebCheckBox " & Quote(i) & " was clicked."End Function'点击WebRadioGroup'value 为WebRadioGroup Value'index 为单选框索引,从0开始Public Function ActivateWebRadioGroup(value,i)localDesc = ""If thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()Execute localDesc &GenerateObjectDescription("WebRadioGroup","Value:=" & value) & "Select (" & Quote("#"&i) & ")"Report micPass, "WebRadioGroup Activation", "The WebCheckBox "&Quote(value)&"的"& Quote(i) & " was clicked."End Function' Selects a specific value from a listbox, or combobox' objname - name of the control -- use Object Spy if you don't know the name property ' text - the item in the combobox to select Public Function SelectFromList (objname, text)localDesc = ""rv = ""rval = falseIf thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()localDesc = localdesc & GenerateObjectDescription("WebList", "name:=" &objname)Execute "cnt = " & localDesc & "GetROProperty(" & Quote("items count") & ")"For i = 1 to cntExecute "rv = " & localDesc & "GetItem (" & i & ")"If rv = text Thenrval = trueEnd IfNextIf rval ThenExecute localDesc & "Select " & Quote(text)End IfIf rval ThenReport micPass, "WebList Selection", "The WebList item " &Quote(text) & "was selected."ElseReport micFail, "WebList Selection", "The WebList item " &Quote(text) & "was NOT found."End IfSelectFromList = rvalEnd Function' Enters text into an edit field' objname - name of the control -- use Object Spy if you don't know what it is' text - the text to enter into the control Public Function EnterTextIn (objname, text)localDesc = ""rval = trueIf thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()localDesc = localdesc & GenerateObjectDescription("WebEdit", "name:=" &objname)Execute localDesc & "Set (" & Quote(text) & ")"Report micPass, "Enter Text", "Text: " & Quote(text) & " was entered into " &Quote(objname)EnterTextIn = rvalEnd Function'根据index给指定WebEdit赋值Public Function EnterTextInI (text,i)localDesc = ""rval = trueIf thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()localDesc = localdesc&"WebEdit("&Quote("micclass:=WebEdit")&","&Quote("index:="&i)&")."Execute localDesc & "Set (" & Quote(text) & ")"Report micPass, "Enter Text", "Text: " & Quote(text) & " was entered into " &Quote(objname)EnterTextIn = rvalEnd Function' Obtains text from a control' objtype - is the type of control the get the text from ' objname - is the name of the control -- use Object Spy if you don't know the name ' returns - the text of the controlPublic Function GetTextFrom (objtype, objname)text = ""localDesc = ""If thirdlevel <> "" ThenlocalDesc = GenerateDescription(level(2))ElselocalDesc = GenerateDescription(level(1))End IfAutoSync()Select Case objtypeCase "WebEdit"Execute "text = " & localDesc & GenerateObjectDescription("WebEdit", "name:=" & objname) & "GetROProperty (" & Quote("value") & ")"Case "WebList"Execute "text = " & localDesc & GenerateObjectDescription("WebList", "name:=" & objname) & "GetROProperty (" & Quote("value") & ")"End SelectReport micPass, "Capture Text", "Text: " & Quote(text) & " was captured from thecontrol " & Quote(objname)GetTextFrom = textEnd Function'获取DIV中WebElement的值'classNames,DIV 的Class值。

QTP脚本录制参数化

QTP脚本录制参数化

QTP脚本录制参数化
目的:实现登陆关闭飞机订票系统一次,但是要定制多张飞机票
1,首先录制飞机订票系统的登录、订票、关闭三个模块,分成三个action(注意:可以在录制时直接录为三个action,也可以录在一个action中,然后手工分为三个action,具体操作方法是鼠标右击要分成另一个action的地方,选择action——split..如下图)
2,然后右键单击需要参数化的系数后面的<#>,会出现一个窗口,如下图,选择图中选项,并命名,单击确定,最后再datatable视图中添加相关参数。

3,然后右键单击需要参数化的那个action ,选择action call properties...。

选择第二个或者是第三个选项。

QTP描述性编程脚本分析

QTP描述性编程脚本分析

的有 效性 使用 . 使脚 本 具有 广泛 性及 代 表性 . 就需 要 述性 编 程思想 注重控 件 的类 型及控 件 的特征 在脚本 中 这
我们 对脚 本进 行描 述性 编 程 .使 脚 本脱 离 或减 少对 对 的描 述 . 通过通 俗易懂 的脚 本 表述 . 构建 被测 软件所 需 象库 文件 的依赖 的对 象元 素 .以编程 的方 式实 现 自动化 测试脚 本并 进 二 、 P脚本 执行 分 析 QT 行测试 。 下面 以 WE B页面 中 go| 图的链 接有效 性 oge地 Q P通 过 选项 设 置 可 以直 接使 用 已有 的对象 库 文 测试 对 Q P描述性 编程 进行 分析 : T T 件 .也可 以在进 行脚 本 录 制时 自动 生成对 象 库描 述 文 通 过 gol og e页面 中 “ 图” 地 文字链 接 的 打开及 整 个 件并 随脚本 一起 保存 .下面 以 Q P对 w n o s自带 的 页 面的关 闭得到 以下脚 本 : T id W 计 算 器 进 行 简 单 的 功 能 测 试 对 Q P的 脚 本 执行 过 程 T 进 行分 析 : 我们 通 过 wn o s 用 程 序 录制 方 式 录 制 1 2 ? id w 应 + : 加法运 算功 能 . 当我 们 停止 录制 时 . 在关键 词 视 图 中会
的 有效 性使 用 , 脚 本 具有 广 泛性 及代 表性 , 就 需要 我们 对脚 本 进行 描 述性 编程 , 脚 本脱 离或减 少对 使 这 使
对 象库 文件 的依 赖。
【 关键词 】 T 脚本 :Q P

对象
编程 Leabharlann 脚 本 中 WiB tn… ’ n ut (1) o 中的 1 为 3 再 次运 行修 改后 改 . Q i T s rf s H lf T uc et oe i a Q P是 新一 代 自动 化 测试 的脚本 . k P s o 当脚本 运行 时会 提示错 误信 息 解 决方 案 .采用 专 家视 图及 关键 词视 图两 种模 式 供用 这说 明 Q P在 进行 脚本 运行 时 .对 窗 口及控 件 对 T

QTP使用手册完整版

QTP使用手册完整版

QTP使用手册完整版【QTP使用手册完整版】本文档旨在为用户提供全面的QTP(Quick Test Professional)使用手册。

QTP是一款功能强大的自动化测试工具,广泛应用于软件测试和质量保证领域。

通过本手册,用户将能够全面了解QTP的各项功能和操作方法,从而提高测试效率和质量。

本文档包含以下章节:1.简介1.1 QTP简介1.2 QTP的优势和适用场景1.3 QTP的安装和配置2.初次使用QTP2.1 QTP的界面介绍2.2 创建新测试2.3 添加测试对象2.4 插入和编辑测试步骤2.5 运行和调试测试2.6 查看测试结果3.对象识别和操作3.1 手动对象识别3.2 对象仓库管理3.3 对象属性和方法3.4 对象操作示例4.数据驱动测试4.1 数据表和数据驱动测试概述 4.2 导入和管理测试数据4.3 在测试中使用数据5.关键字驱动和模块化测试5.1 关键字驱动测试概述5.2 创建关键字驱动测试5.3 模块化测试概述5.4 创建模块化测试6.参数化和验证6.1 参数化测试数据6.2 使用数据表参数化6.3 验证测试结果7.数据库和文件操作7.1 数据库操作7.2 文件操作8.编写自定义函数和库文件8.1 创建自定义函数8.2 创建库文件8.3 调用自定义函数和库文件9.错误处理和异常处理9.1 异常处理概述9.2 利用异常处理机制处理错误10.脚本调试和性能优化10.1 脚本调试概述10.2 断点设置和调试技巧10.3 性能优化技巧11.执行测试套件和批量运行11.1 创建测试套件11.2 执行测试套件11.3 批量运行测试12.与测试管理工具集成12.1 ALM(Application Lifecycle Management)集成12.2 JIRA集成【附件】本文档附件包括以下内容:- 示例代码和脚本:包含QTP使用的示例代码和脚本,供读者参考和练习。

- 视频教程:提供QTP的视频教程,演示各种功能和操作方法。

QTP操作基本教程

QTP操作基本教程

QTP操作基本教程QTP(QuickTest Professional)是一种功能强大的自动化测试工具,可以用于Web、Windows和Java应用程序的功能自动化和回归测试。

它提供了一个可视化的IDE(集成开发环境),允许测试人员以关键字驱动的方式编写测试脚本,并提供了丰富的对象识别和操作功能。

本文将介绍QTP的基本操作,包括环境设置、对象识别、脚本录制、回放、断言和数据驱动等内容。

一、环境设置在开始使用QTP之前,我们需要进行一些环境设置,以确保工具可以正确地与应用程序进行交互。

2.启动QTP:安装完成后,在开始菜单中找到QTP的快捷方式,并双击启动工具。

二、对象识别在使用QTP进行自动化测试时,我们需要首先识别应用程序中的对象,以便正确地操作它们。

QTP提供了多种对象识别技术,包括基于属性(如名称、类型等)和基于层次结构(如父对象、子对象等)。

以下是一些常用的对象识别方法:1.对象层次结构:通过查看应用程序中的对象层次结构,可以获得对象的父对象、子对象、兄弟对象等信息,从而帮助我们识别对象。

2.快速识别:QTP提供了一个识别对象的工具栏,可以用于识别应用程序中的对象。

单击“对象识别”按钮,工具栏上的指针将变为手形,然后单击应用程序中的对象,QTP将会根据对象的属性进行识别。

3.对象库:QTP还提供了一个对象库,可以保存已识别对象的信息,以便在以后的测试中使用。

三、脚本录制和回放QTP允许我们通过录制和回放的方式创建测试脚本。

以下是一些录制和回放的基本操作:1.录制脚本:单击QTP工具栏上的“录制”按钮,选择要进行录制的应用程序,然后开始执行测试步骤。

在录制过程中,QTP会自动记录下我们的操作,包括鼠标点击、键盘输入等。

2.停止录制:录制完成后,单击QTP工具栏上的“停止”按钮,停止录制脚本。

3.回放脚本:在录制完成后,我们可以通过单击QTP工具栏上的“回放”按钮来运行已录制的脚本,QTP将自动按照我们录制时的操作顺序进行执行。

QTP 自启动脚本、无限使用脚本

QTP 自启动脚本、无限使用脚本

QTP 自启动脚本、无限使用解决办法俗话说的好:能让别人干的事,自己尽量少动手。

对于懒人来说,能用脚本做的事,就别扯别的了!长话短说,咱们脱鞋上炕。

一、QTP自启动1.QTP 启动脚本vbs‘定义变量dim qtAPP‘创建QTP实例Set qtAPP = createObject(“QuickTest.Application”)‘启动QTP实例unchqtAPP.visible = True‘打开相应的QTP脚本qtAPP.open”E:\QTP\MengLongQianDao”‘此目录是QTP要运行的脚本所在的目录Set objTestRecovery = qtAPP.Test.Settings.Recovery‘设置QTP存储报告Set qtResultsopt = createobject(“QuickTest.RunResultsOptions”)‘运行QTPSet qtTest = qtAPP.TestqtTest.Run qtResultsopt‘运行完毕退出脚本qtTest.close‘QTP脚本运行结束后退出QTP实例qtAPP.quitSet qtAPP = nothing2.将vbs脚本加入到任务计划中创建基本任务,将QTP自启动的VBS脚本加入到任务中即可,设置时间,每天就可以定时自动运行脚本了。

打开运行(快捷键Windows+R)control schedtasks创建基本任务流程:鼠标右击任务计划程序库---点击创建基本任务--填写任务名称(便于在任务表中识别)---选择任务周期(什么时候启动脚本)---操作(选择启动程序)---下一步---程序或脚本(将QTP启动的vbs脚本添加到此处)---完成二、无限使用方法这里的使用方法是根据网上的QTP的30天试用期的破解方法写的脚本1.删除safenet sentinel文件夹,运行instdemo.exe一般这个文件加在”c:\ProgramData”下,删这东西这么费劲,而且得每隔一段时间要删一次,还是用脚本来的实在。

QTP操作基本教程

QTP操作基本教程

QTP操作基本教程QTP(QuickTest Professional)是一款由惠普公司研发的自动化功能测试工具,用于测试Web、桌面和移动应用程序。

QTP具有强大的脚本录制和回放功能,使得测试人员可以快速创建和执行自动化测试脚本。

本文将介绍QTP的基本操作教程,包括工作环境设置、录制与回放脚本、调试和修改脚本等内容。

第一步:安装和设置QTP2.启动QTP,创建一个新的测试工程。

3.在“测试资源”面板中添加需要测试的应用程序。

4.设置对象识别设置,以便QTP能够识别应用程序中的各种对象。

第二步:录制和回放脚本1.点击“录制”按钮,选择录制模式(标准、关键字或混合模式)。

2.在录制过程中,操作应用程序以执行测试用例。

3.在录制结束后,停止录制并保存脚本。

4.回放脚本以验证应用程序的功能是否正常。

第三步:修改和优化脚本1.检查录制生成的脚本,确保所有操作都正确识别和执行。

2.如有必要,手动添加断言和验证点来验证应用程序的输出结果。

3.修改脚本以确保它可以适应不同的测试场景。

4.优化脚本以提高执行效率和准确性。

第四步:调试脚本1.使用调试工具来逐步执行脚本并查看每个操作的执行情况。

2.在调试过程中,观察应用程序和测试对象的状态,以确定问题出现的原因。

3.使用断点和监视点来暂停脚本的执行并检查变量和对象的值。

4.修复脚本中的错误和问题,并重新执行。

第五步:扩展脚本功能1.使用QTP提供的函数库来实现更复杂的测试逻辑和操作。

2.添加循环和条件语句来实现多次重复和分支执行。

3.封装重复使用的代码段为函数或动作,以提高脚本的可重用性。

4.使用数据驱动测试的技术,让脚本可以从外部数据源读取测试数据。

第六步:生成和分享测试报告1.设置测试运行参数,如执行时间、测试环境等。

2.执行测试脚本,并在执行过程中监测测试进度和结果。

3.生成测试报告,包括测试用例的执行情况、错误和警告等信息。

4.将测试报告分享给项目团队和相关利益相关者,以便他们了解测试进度和结果。

QTP使用手册范本

QTP使用手册范本

文件编号:SMSI-DEVC-WORKROUTE-2010304级别:□公司级■部门级□项目级□普通级采纳标准:CMMIQTP使用手册V1.0.0作者:伟Fujian Sinomyth System Integration CO.,LTD鑫信迈()系统集成所有1、QTP介绍了解一下QuickTest的主界面:在QTP界面包含标题栏、菜单栏、文件工具条等几个界面元素,下面简单解释各界面元素的功能:●标题栏,显示了当前打开的测试脚本的名称。

●菜单栏,包含了QuickTest的所有菜单命令项。

●文件工具条,在工具条上包含了以下几个按钮:●测试工具条,包含了在创建、管理测试脚本是要使用的按钮,如下图:●调试工具条,包含在调试测试脚本时要使用的工具条,如下图:●测试脚本管理窗口,提供了两个可切换的窗口,分别通过图形化方式和VBScript脚本方式来管理测试脚本。

●Data Table窗口,用于参数化你的测试。

●状态栏,显示测试过程中的状态。

2、录制/执行测试脚本录制运行设置(一)1. 录制前IE设置* 确保你的IE运行正常依次点击菜单查看——> 工具栏,一定要将上网助手等插件卸载掉,如一些拦截广告的软件* 修改浏览器的设定,不让浏览器帮你自动输入和密码,确保所有操作都会录制下来。

取消[自动完成]的设定(1). 开启IE浏览器,点选[工具]-〉[Internet选项]-〉[容](2). 点选个人信息中的[自动完成],进入自动完成设置。

(3). 取消[表单上的用户名和密码]选项(4). 点选确定,关闭对话框如下图:●选择“Tutorial”将打开 QTP 的帮助文档●选择“Start Recording”进入测试录制功能●选择“Open Existing”将打开现有的测试项目文件●选择“Blank Test”将创建一个空的测试项目Ps:把“show this screen on startup”设置为不勾选,则下次启动 QTP 时不显示该界面,而是创建一个空的测试项目。

QTP入门基础教程

QTP入门基础教程

QTP入门基础教程QTP(Quick Test Professional)是由Mercury Interactive公司开发的一款自动化测试工具,主要用于Windows桌面、Web和移动应用程序的自动化测试。

它支持VBScript语言作为自动化脚本语言,并提供了简单易用的图形用户界面。

以下是QTP入门基础教程的详细内容:第一部分:QTP简介1.QTP是什么2.QTP的特点和优势3.QTP适用的应用场景4.QTP的安装和配置第二部分:QTP基础操作1.QTP的工作环境介绍2.QTP对象层次结构3.QTP的各种对象和操作-对象属性的获取和设置-对象方法的执行-对象事件的处理4.QTP的录制和回放功能5.QTP的数据驱动测试第三部分:QTP脚本开发1.QTP脚本的基本语法2. VBScript语言基础-变量和数据类型-运算符和表达式-条件语句和循环语句-函数和过程3.QTP脚本的调试和错误处理4.QTP脚本的编写和维护第四部分:QTP高级功能1.QTP的对象仓库管理2.QTP的关键字驱动框架3.QTP的数据表格和关键字驱动的数据驱动测试4.QTP的自定义对象和扩展第五部分:QTP的应用案例1.QTP的桌面应用测试2. QTP的Web应用测试3.QTP的移动应用测试第六部分:QTP实践技巧和优化1.QTP测试脚本的规范和命名规则2.QTP测试数据的管理和维护3.QTP测试用例的设计和执行4.QTP测试结果的分析和报告本教程为了方便初学者理解和掌握QTP的使用,采用了简单明了的语言和实例进行讲解,并提供了实践操作的步骤和实例。

通过学习本教程,读者可以对QTP的基本概念、操作和脚本语言有一个初步的了解,并能够独立地进行简单的自动化测试工作。

需要注意的是,由于QTP是一款商业软件,本教程中的示例代码和操作步骤可能与最新版本的QTP有所不同。

读者在实际操作时,请参考最新版本的QTP使用手册和官方文档。

希望本教程对初学者快速入门QTP有所帮助,同时也希望读者能够通过实践和深入学习,提高自己的QTP应用能力,并在软件测试工作中取得更好的成果。

QTP 执行规范(项目)模板

QTP 执行规范(项目)模板

QTP自动化测试[项目名称]版本历史目录1. 文档介绍 (4)2. QTP执行规范 (5)2.1QTP使用规范 (5)2.2QTP检查点设置 (5)2.3QTP参数化设置 (6)2.4QTP其他化设置 (6)3. 项目功能点 (7)3.1测试环境部署要求 (7)3.2测试范围与目的 (7)3.3项目功能点介绍 (8)3.4项目模块功能点统计...................................................................... 错误!未定义书签。

3.5QTP运行设计 ................................................................................. 错误!未定义书签。

4. QTP测试用例...................................................................................... 错误!未定义书签。

4.1QTP测试用例 ................................................................................. 错误!未定义书签。

4.2QTP执行进度 ............................................................................... 错误!未定义书签。

4.3QTP执行结果总结 ......................................................................... 错误!未定义书签。

附录:评审意见 (8)1. 文档介绍提示:请用户根据项目的实际测试状况,裁剪本测试用例模板。

1.1 文档目的1.2 文档范围1.3 读者对象1.4 参考文献提示:列出本文档的所有参考文献(可以是非正式出版物),格式如下:[标识符] 作者,文献名称,出版单位(或归属单位),日期例如:[AAA]作者,《立项建议书》,机构名称,日期[SPP-PROC-ST] SEPG,系统测试规范,机构名称,日期0.5 术语与缩写解释2. QTP执行规范2.1 QTP使用规范QTP通过Add-in支持多种集成开发环境,QTP内置了ActiveX、Visual Basic、Web三种Add in,其他的Add in需要单独购买使用时注意:–必须安装并加载Add-in,QTP才能够识别对应环境的对象–为提高性能和对象识别的稳定性,只加载需要的Add-in2.2 QTP检查点设置使用QTP的过程中,在录制完脚本后就要考虑加入检查点来测试程序,根据需要加入不同的检查点,QTP提借九种检查点.将特定属性的当前数据与期望数据进行比较的检查点,用于判定被测试程序功能是否正确, Check Point可以分两类:QTP内置验证点和自定义验证点项目中那些地方需要设置检查点。

5.3 QTP操作-脚本增强、检查点基础

5.3 QTP操作-脚本增强、检查点基础
《功能测试技术与实践》
---QTP操作(脚本增强、检查点基础)
第三部分 QTP操作(脚本增强、检查点基础)
• 1、完善注册测试---使用脚本生成用例数据 • 2、完善注册测试---检查点基础
1、完善注册测试---使用脚本生成用例数据
• (1)问题引入
– 在前面的例子中,没有对不正确的注册进行测 试 – 如何完整地对“注册测试用例”进行测试?
• 难以将正确注册和错误注册同时进行
– 因此,将注册业务流程分解为:
进入注册界面 输入注册数据
错误注册 YES YESຫໍສະໝຸດ 进入注册界面 输入注册数据
正确注册
注册错误提示?
YES
注册成功提示?
是否还有测试数据?
No
是否还有测试数据?
No
NO
NO
关闭系统 注册错误的业务流程
关闭系统 注册正确的业务流程
1、完善注册测试---使用脚本生成用例数据
2、完善注册测试---检查点基础
• (2)问题分析
– 手工解决上述问题的办法是
• 查看数据提交后是否出现了应该出现的页面 • 查看是否有错误提示信息 • 点击链接后,查看页面是否正常显示
– 使用QTP如何实现上述功能
• 检查点设置 • 使用脚本实现检查功能
2、完善注册测试---检查点基础
• (3)QTP检查点介绍
– QTP检查点类别
• • • • • • • 标准检查点 文本检查点 文本区域检查点 位图检查点 数据库检查点 可访问性检查点 XML检查点
– 检查点功能简介 – QTP检查点对应用系统的支持情况
2、完善注册测试---检查点基础
• (4)使用文本检查点
– 操作步骤

QTP编写测试脚本

QTP编写测试脚本

QTP编写测试脚本1.锁定键盘和⿏标systemUtil.blockinputsystemUtil.unblockinput2、向结果报告中输出信息reporter.ReportEvent micFail,"插⼊操作","失败了的具体信息"3、下拉列表和列表框的使⽤1)存储列表对象 set 对象名=列表对象名。

2)存储列表中的内容为⼀个字符串 对象名.getContent3)获取列表包含的项数 对象名.getItemsCount4 )获取选中项 对象名.getSelection5)获取列表中的项⽬6)选取某个值4、判断对象是否存在对象名.exist(超时时间)在规定时间内判断对象是否存在。

⽆返回值时不⽤括号。

5、使⽤环境变量1)查看内置环境变量2)⾃定义环境变量赋值environment("变量名")=值【例 1】将代理名称存⼊环境变量。

environment("AgentName")="haidian"6、使⽤脚本添加检查点例:检查机票数是否⼤于0Window("航班预订").WinEdit("机票数:").CheckProperty "text",micGreaterThan(0),27、使⽤正则表达式1)使⽤规则在多⾏⽂本中查找指定⼦串的⾏查找以“zh”开头的xm="zhsan" &vbcrlf & "lisi" &vbcrlf & "Zhw" &vbcrlf & "liuba" &vbcrlf & "zHqi" &vbcrlf &"songsi" &vbcrlf & "zhao6" Set guize=new regexprem匹配规则guize.pattern="zh.*"rem 忽略⼤⼩写guize.ignorecase=truerem 全局查找guize.global=trueSet jg=guize.execute(xm)For each x in jg print x Next2)使⽤正则表达式选择列表项如果有08:开头,选择;如果没有默认第⼀个3)检查点中使⽤正则表达式8、使⽤脚本处理数据表1)操作 sheet 表增加 sheet 表 DataTable.AddSheet "表名"获得/打开 Sheet 表(DataTable.GetSheet "表名"或表编号)编号从 1 开始表名区分⼤⼩写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.基本信息:
IE版本,QTP版本,项目名称,脚本编写人,脚本创建时间,脚本修改时间,修改说明,输入参数,输出参数,功能描述,调用库函数说明,调用共享对象库说明,调用场景恢复文件说明,调用存在的Action说明,更改默认Action 的名称,业务流程说明,其它说明.举例如下:
'######################################################################
'IE版本: 6.0
'QTP版本:10.0
'项目名称:NGBOSS 3.0 回归测试
'作者:徐从来
'创建时间:2012/01/11
'修改时间:无
'修改说明:无
'输入参数:用户信息
'输出参数:订单号,用户信息(开户)
'功能描述:业务受理- 客户名称、证件变更
'调用存在的Action:登录NGBOSS; 退出NGBOSS; ("通用"目录)
'调用库函数:getGlobalConfiguration.qfl; ("通用/库函数"目录)
'调用共享对象库:无
'调用场景恢复文件:无
'业务流程:暂无
'其它:无
'######################################################################
2.输入,输出参数
所有的输入参数需要定义在配置文件内(NGBOSS3_Config.xls)供脚本读取;读取方法见”自动化操作手册”.
所有的输出参数需要保存入配置文件内(NGBOSS3_Config.xls)供其它脚本视需要读取;保存方法见”自动化操作手册”.
3.脚本模块复用
尽量复用存在的模块及库函数,降低脚本行数,减少脚本的维护量.如在脚本开始可以调用"登录NGBOSS";结束时调用"退出NGBOSS";查询订单号时调用库函数"getOrderNo()";查询订单状态时调用库函数"getOrderStatus()"。

调用方法见”自动化操作手册”.
4.检验点
一般情况,脚本里应该需要加上必要的校验点.有订单产生的,需要在数据库里校验订单是否竣工.
5.常量命名规范
常量的命名应该全部用大写,使用"_"作为单词间的分隔符,单词尽量使用全名称. 如: Public Const MSG_EMPTY_ROW As String = "有空行存在"。

6.变量命名规范
变量命名大小写:尽量使用错落有致的大小写字母命名变量,错误的命名如STRNAME,正确的命名如strName.用标志性的前缀来指明一个变量的数据类型,如:strName, intQuantity, blnFound, dteNow, objCurrent
如果是一般的临时性变量定义,应该尽可能地简单(如for循环:for i=0 to 5).
7.参数命名规范
参数命名的原则是全部用小写,如果参数包括两个或两个以上的单词时,首单词字母小写,其他单词首字母大写,如stepName、stepDescription。

8.函数命名规范
动词+名词,动词必须小写,后面的名称首字母大写,如getMaterialCode; 当函数名称不足以表达其功能时,应使用在函数头部加上让调用者足够明白的注释,如下内容:''''*******************************************************
''''函数作者:徐从来
''''函数功能:打印系统剪贴板内容
''''输入参数:无
''''返回值:剪贴板内容
''''实例调用:printClip()
''''*******************************************************
9.空行
空行是区分代码块与块的间隔,在函数之间必须加上空行;而在函数内部,变量声明块和实现块要使用空行来间隔,实现块的内部,通过空行来标识一个功能段.
10.缩进
必须严格执行缩进,变量声明块不缩进,实现块必须保证全部缩进; 对于基本的控制结构来说,必须要有缩进,如IF、DO、WITH、FOR、WHILE块。

11.脚本名称及保存路径
完成的脚本存放于QC服务器(安徽移动NGBOSS3.0自动化回归测试脚本\[相应的模块目录])里;直接保存于相应的模块目录内即可,无需创建子目录.
脚本名称与”自动化测试用例列表汇总.xls”的”子测试任务名称”保持一致.。

相关文档
最新文档