51Testing软件测试论坛

标题: 帮忙看一下脚本,如何才能查询成功 [打印本页]

作者: linvsfen00    时间: 2007-5-8 18:33
标题: 帮忙看一下脚本,如何才能查询成功
脚本如下:
查询出记录数为:78条,

Browser("测试登录").Page("办公自动化系统").Frame("mainFrame").WebEdit("oaReceiveBumf.bumfName").Set "收文测试"
Browser("测试登录").Page("办公自动化系统").Frame("mainFrame").Image("btn_cx_on").FireEvent "onmouseover"
Browser("测试登录").Page("办公自动化系统").Frame("mainFrame").Image("btn_cx_on").Click
Browser("测试登录").Page("办公自动化系统").Frame("mainFrame").Output CheckPoint("78")
Dim mm
mm=DataTable.GlobalSheet.GetParameter("mainFrameOutput_Text_out").Value   //从datatable中取值是这么取的吗?

Dim res,cmd,sql
Set res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="DRIVER={Oracle in OraHome92};SERVER=HKORACLE;UID=USER_ZJLH;PWD=ZJLH;DBQ=HKORACLE;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=Me;CSR=F;FWC=F;FBS=60000;TLO=O;"
Cmd.CommandType = 1
sql="select count(*) from oa_receivebumf  where BUMFNAME like'%收文测试%'"    //直接在数据库中查询出来也是78条记录,sql语句正确的
Cmd.CommandText = sql
Set res = Cmd.Execute()


if  sql=mm Then
    Reporter.ReportEvent micPass, "test",   "查询成功"
         else
    Reporter.ReportEvent micfail, "test",   "查询失败"              //每次执行都是提示查询失败,不知道问题出现在哪
End If

Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing

[ 本帖最后由 linvsfen00 于 2007-5-9 10:42 编辑 ]
作者: yzem99    时间: 2007-5-8 19:24
你可以打出来看看取的值是不是对啊

mm=DataTable("mainFrameOutput_Text_out", dtGlobalSheet)
MsgBox mm
作者: dcyan    时间: 2007-5-8 21:01
sql=mm?
"select count(*) from oa_receivebumf  where BUMFNAME like'%收文测试%'" =78?
是不是应该写成 res(0)=mm?

[ 本帖最后由 dcyan 于 2007-5-8 21:05 编辑 ]
作者: linvsfen00    时间: 2007-5-9 09:28
标题: 谢谢楼上二位,我试试
非常感谢
作者: linvsfen00    时间: 2007-5-9 09:31
标题: 二楼,谢谢
mm=DataTable("mainFrameOutput_Text_out", dtGlobalSheet)
MsgBox mm
打印出来是78条记录

还有就是
mm=DataTable.GlobalSheet.GetParameter("mainFrameOutput_Text_out").Value
MsgBox mm   //打印出来也是78条记录

mm=DataTable("mainFrameOutput_Text_out", dtGlobalSheet)和mm=DataTable.GlobalSheet.GetParameter("mainFrameOutput_Text_out").Value取的值是一样的,谢谢

[ 本帖最后由 linvsfen00 于 2007-5-9 09:52 编辑 ]
作者: linvsfen00    时间: 2007-5-9 09:34
标题: 这么执行还是查询失败
谢谢三楼
"select count(*) from oa_receivebumf  where BUMFNAME like'%收文测试%'" =78?  是的,查询出是78条记录
res(0)=mm,修改成这语句还是查询失败

[ 本帖最后由 linvsfen00 于 2007-5-9 13:31 编辑 ]
作者: linvsfen00    时间: 2007-5-9 09:37
标题: 打印该语句是也是78条记录
MsgBox res(0),打印该语句是也是78条记录

是不是下面的if语句写得有问题?
MsgBox res(0)
if   res(0)=mm Then
     Reporter.ReportEvent micPass, "test",   "查询成功"    //如果执行   if res(0)=78 and mm=78  Then语句时就提示查询成功
     else
    Reporter.ReportEvent micfail, "test",   "查询失败"
End If


如果执行   if res(0)=78 and mm=78  Then语句时就提示查询成功,那为什么执行   if   res(0)=mm Then 时会提示失败???

如果需要两个值进行比较,相等的话就提示成功,不相等时提示失败,脚本如何编辑?谢谢

[ 本帖最后由 linvsfen00 于 2007-5-9 10:33 编辑 ]
作者: zoeHuang    时间: 2007-5-9 10:26
标题: 回复 #7 linvsfen00 的帖子
可能取出来的两个值不是同一个类型,所以用等号直接比较的时候有问题,可以试试 用Cstr 把两个值都转换成string然后比较看看
作者: linvsfen00    时间: 2007-5-9 10:39
标题: 回复 #8 zoeHuang 的帖子
谢谢zoeHuang的回答,转换成  
if   Cstr(res(0)) = Cstr(mm)Then
后,执行通过。问题解决。sdlkfj3




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