51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3120|回复: 7
打印 上一主题 下一主题

[原创] 环境变量

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-23 17:14:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先给大家看看下边这张图,
看完后,你初始一瞄,发现,哇,不可能,怎么P=22,Environment.Value ("menu_now")=21  但为什么p>=Environment.Value ("menu_now")为 false呢?

大家看仔细点,在Environment.Value ("menu_now")的返回值中,是有多了个双引号!这个其实一个字符串来的,所以永远无论怎么变,p>=Environment.Value ("menu_now")永远为false。

这个小小的问题,埋藏了3个月之久,脚本运行过程出现的种种奇怪现象的祸根竟然是一个如此小的误会。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-9-23 17:35:21 | 只看该作者
"21"是string型
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-9-23 17:40:37 | 只看该作者
所以说,安检还是很重要滴
if isnumeric(...) then
    ...
end if
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-23 19:01:52 | 只看该作者
原帖由 rcpp 于 2008-9-23 17:40 发表
所以说,安检还是很重要滴
if isnumeric(...) then
    ...
end if


这种情况下用isnumeric没啥用处。。。VBS会很智能的在这里做类型转换的
If isnumeric("21") Then
msgbox "is numeric"
else
msgbox "is not numeric"
End If
你觉得结果应该是啥呢~~

此外,VBS还会把Currency类型的值也认为是numeric,比如(在默认的美式Currency系统中)
If isnumeric("21,100") Then
msgbox "is numeric"
else
msgbox "is not numeric"
End If
执行下看看结果咯~
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-9-24 09:41:39 | 只看该作者
oh god,看来我对vbs的了解还是不够多啊
vbs能够强制类型转换吧?转换了再判断吧

还好以后不必陪测试人员写脚本了,不然写错了vbs还要被抱怨~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-9-24 15:28:20 | 只看该作者
因为VBS把所有默认的变量类型都是Variable,不是我们常说的Integer,String,Double……,所以当你要比较的不同类型的变量时候,一定要保证变量的类型一直。下面的结果就是正确的:
Dim q

q=22
Msgbox Environment.Value("Test_Value") 'Test_Value=21

If q>CInt(Environment.Value("Test_Value")) Then
        Msgbox "True"
        Else
        Msgbox "False"
End If

所以说VBS是一种弱语言,没有VB这么好用了。这个估计要QTP的不断升级才能检测得到。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-9-24 15:51:01 | 只看该作者
知道VBS的这个弱类型特性了,要改进的就是编程习惯了~
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-9-24 15:55:52 | 只看该作者
这个也是忽列这点,昨天才发现的问题,看来温故可以找到新BUG
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-28 08:26 , Processed in 0.076206 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表