51Testing软件测试论坛

标题: 问几个项目里碰到的问题 [打印本页]

作者: shuishixingyu    时间: 2009-3-9 20:18
标题: 问几个项目里碰到的问题
1. For i=1 to Datatable.GetSheet("Action1").GetRowCount
   
   Next
   [attach]49868[/attach]
   请问能否按照各列中不能的行数进行循环,比如:projectNo循环两次,projectName循环三次
   目前都是循环三次
2. 在项目编号中只能输入数字和英文字母,数字用isNumeric来判断,那么字母应该怎么判断呢?用正则吗?
3. 时间控件中,选择比如:“2009-03-12 14:40”,有个开始时间,一个结束时间,时间控件只能选择,不能手工写入,开始时间和结束时间至少差48小时,请问如何对选择值做判断是否可行?
作者: shiyi1022    时间: 2009-3-10 12:05
1、getrowcount只能获取指定表中最长列的长度。
    想要实现你的要求,可以自己写逻辑。
2、正则表达式最好
3、如果你仅仅是想确定2个日志的差值,可以在提交后判断。只要你能获取对象就行。比较函数可以用DateDiff()。

[ 本帖最后由 shiyi1022 于 2009-3-10 12:12 编辑 ]
作者: shuishixingyu    时间: 2009-3-10 12:19
1.请问逻辑应该怎么写,能不能举个例子呢?
2.用正则的话,由于输入位数是不确定的,不是很清楚怎么写
3.我用了datediff,但是它只能对2009-03-12这样的格式进行判断,加上分秒后好像判断不了
作者: shiyi1022    时间: 2009-3-10 14:07
1、其实也不是什么复杂的逻辑。只要你清楚QTP的处理方式就可以了。
gettrowcount取得是最长列的值,其他列如果不填,默认为空。所以只要把取出的datatable().value判断是否为空即可。如果实际运行过程中需要用到""的情况,可以用其他代替。也只是做个判断。可以解决你的情况。
2、vbs的正则表达式,可以这样表示:”[a-z]+“
上边的表示26个小写字母,匹配一个或多个字母具体的用法可以参考vbs的帮助。
3、DateDiff("s",CDate(time1),CDate(time2)),其中的第一个参数就是设置你的比较方式的参数。具体可以参考vbs帮助。s就是返回的秒数。
作者: shuishixingyu    时间: 2009-3-12 10:26
谢谢shiyi1022的回答




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