51Testing软件测试论坛

标题: 判断输出值是否为空的语句怎样写? [打印本页]

作者: chbanney    时间: 2007-6-8 08:26
标题: 判断输出值是否为空的语句怎样写?
比如要判断数据库中某个数据是否为空,我首先把这个数据用输出值的方式输出到QTP左下方那个表格的某个字段中了。然后想判断这个值是否为空,如果为空则调用另一个测试的action,如果不为空则继续运行。我不知道判断为空的语句怎样写,我写成字段名=NULL或是isNull(字段名)都不行。请高手指教。
作者: 风过无息    时间: 2007-6-8 08:37
isnull为什么不行呢,楼主把脚本贴出来看看.
作者: chbanney    时间: 2007-6-8 08:46
标题: 脚本如下盼请帮忙
DbTable("DbTable_2").Output CheckPoint("DbTable_2")'取出数据库中的数值到ZZJGDM字段中

ZZJGDM=DataTable("ZZJGDM", dtGlobalSheet)

        If isNull(ZZJGDM) Then

        RunAction "Action1 [companyadd]", oneIteration
End If
....这里是另一段代码A

在实际的数据库中没有这个值的时候,应该是调用companyadd的,可是不管怎么样,都是只执行代码A。
作者: chbanney    时间: 2007-6-8 08:49
标题: 我的另一种写法也不成。语法没有报错。
If (DbTable("DbTable_2").OutputCheckPoint("DbTable_2")=null) Then。。。这是我另一种写法,语法没问题但是还是不行。就是不走companadd,我想是不是表示数据不存在的方法不是NULL呢?
作者: chbanney    时间: 2007-6-8 08:59
标题: 另外如何判断输出值或者检查点失败呢
如当输出值失败和成功时走不同的流程,我先插入输出值DbTable("DbTable_2").OutputCheckPoint("DbTable_2"),当失败时也就是没有任何值时我如何写语句进行判断呢?DbTable("DbTable_2").OutputCheckPoint("DbTable_2")=fail?显示是不对的,那该如何写呢
作者: sogoc    时间: 2007-6-8 09:00
那""这个呢???????????????????
作者: 风过无息    时间: 2007-6-8 09:13
楼主可以把DEBUG看一下ZZJGDM的值到底多少.

另外有个疑问,为什么要output到datatable,然后再取出来比较,直接取出来判断为空不是更合适?
作者: 南极    时间: 2007-6-8 09:24
支持楼上的 用最简单的办法可以节省很多的哦~~~~~~
作者: winfood    时间: 2007-6-8 10:02
原帖由 chbanney 于 2007-6-8 08:59 发表
如当输出值失败和成功时走不同的流程,我先插入输出值DbTable("DbTable_2").OutputCheckPoint("DbTable_2"),当失败时也就是没有任何值时我如何写语句进行判断呢?DbTable("DbTable_2").OutputCheckPoint("DbTa ...


按照你说的情况,判断这个输出值的时候应该选择适用于字符串的函数,比如字符串比较函数StrComp或者长度Len
可以写成:
If StrComp(MyStr, "", 1) = 0 Then ... End If,其中MyStr是待判断字符串变量,""表示空字符串。StrComp返回结果为0表示该变量为一个空字符串;
或者:
If Len(MyStr) <= 0 Then... End If,当字符串变量长度不大于0时表示该变量为空字符串。

你遇到的问题出在对IsNull方法的理解上面。IsNull是一个VBScript自带的方法,用于判断一个变量是否为Null。帮助原文对Null的解释是:
The Null value indicates that the variable contains no valid data. Null is not the same as Empty, which indicates that a variable has not yet been initialized. It is also not the same as a zero-length string (""), which is sometimes referred to as a null string.
常见的变量为Null的情况有变量等于Null或者返回对象不存在等等。
你脚本中的ZZJGDM=DataTable("ZZJGDM", dtGlobalSheet)无论返回什么值,ZZJGDM都将是一个字符串,因为这是DataTable.Value属性决定的。所以即使ZZJGDM是个空字符串,IsNull也是False。
作者: chbanney    时间: 2007-6-8 10:19
标题: 太感谢楼上的大哥了用你的方法解决了
sdlkfj2 谢谢,现在没问题可以过了。我还想知道如何判断一个检查点是否通过的语句。望赐教。
作者: winfood    时间: 2007-6-8 10:34
Object.Check方法在录制完脚本后生成的形式是:Object.Check CheckPoint(***)
其实Check方法是有返回值的,上述语句可以改写成
If Object.Check(CheckPoint(***)) Then ... End If
这样就可以在程序运行过程中判断CheckPoint是否通过了。
作者: chbanney    时间: 2007-6-8 11:35
标题: 非常感谢~
非常感谢~~
作者: kheng-ling    时间: 2007-6-8 16:03
受教了,谢谢




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