在计算机程序中,断言(ASSERT)表示为一些布尔表达式,被预计为在程序的某个条件下,该表达式值一直为真。如果断言在运行中值为假,则断言会抛出失败错误的结果,程序会崩溃而终止,或者抛出一个异常提示。
这篇短文描述了断言方法在 UFT*中是如何运行的:
1.执行一个预定义的恢复过程或者在某函数的返回值为特定值时退出
2.支持数据驱动错误处理
3.让代码更加简洁从而增强可读性,编写更简单。
*这里描述的方法基本上来说是通用的,虽然细节上会有所不同,也可在其他工具里被使用到。
步骤一:定义触发器-存储过程对
第一步是定义存储过程,根据函数返回的各种值来调用。简单来说,以下面在UFT的XML文档里定义的环境变量为例:
------------------------------------------------------------------------------------------------------- <environment> <variable> <name>TRIGGER_0</name> <value>< ![CDATA[]]></value> </variable> <variable> <name>TRIGGER_1</name> <value>< ![CDATA[ExitTestEx]]></value> </variable> <variable> <name>TRIGGER_2</name> <value>< ![CDATA[]]></value> </variable> <variable> <name>TRIGGER_3</name> <value>< ![CDATA[]]></value> </variable> <variable> <name>TRIGGER_4</name> <value>< ![CDATA[]]></value> </variable> </environment> ------------------------------------------------------------------------------------------------------- |
该例子里面包含了以TRIGGER_.为前缀的变量。比如:TRIGGER_1定义了当函数返回一个失败结果(micFail = 1)的时候做的事情。通常micPass (=0), micDone (=2), 或者 micInfo (=4)返回的值,不需要做任何事,所以不用定义。如下所示,断言方法就需要保证在不返回失败的这些情况下不需要做任何事情。然而为了完整性,上面的xml文档里包含了他们。
步骤二:写UFTStopTest.vbs脚本(外部脚本)并添加该脚本的路径到环境变量文档里
编写下面的代码保存为UFTStopTest.vbs,保存路径到C:/Automation/Scripts/.
------------------------------------------------------------------------------------------------------- Dim qtApp Set qtApp = CreateObject("Quicktest.Application") qtApp.Test.Stop Set qtApp = Nothing ------------------------------------------------------------------------------------------------------- |
在UFT_STOP_SCRIPT环境变量中定义上面名为UFTStopTest的脚本的路径
------------------------------------------------------------------------------------------------------- <environment> <!--continued--> <variable> <name>UFT_STOP_SCRIPT</name> <value>< ![CDATA[C:/Automation/Scripts/UFTStopTest.vbs]]></value> </variable> </environment> ------------------------------------------------------------------------------------------------------- |
步骤三:定义断言(ASSERT)方法
ASSERT方法有一个入参(通常是0到4之间的整数,就像上面第一个UFT报告代码里定义的那样),不同的整数入参决定了调用Environment里面哪个触发器下的代码来执行。如果没有找到对应的触发器,则返回一个空字符串给ASSERT。如果ASSERT返回是空,则无执行。
... ...
查看全文内容,请点击下载:http://www.51testing.com/html/15/n-3715215.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。