51Testing软件测试论坛

标题: 对文本检查点进行参数化 [打印本页]

作者: hanqin    时间: 2006-12-19 16:31
标题: 对文本检查点进行参数化
对文本检查点进行参数化,当运行数据表中的第二行参数时,在运行报告的树中显示的检查点都是第一行设置的文本检查点的内容,而且其运行报告显示的是运行通过。sdlkfj8
作者: hiyizhiyu    时间: 2006-12-19 16:39

还是把代码贴出来吧
这样的描述别人也很难帮你找原因的
作者: hanqin    时间: 2006-12-19 17:26
标题:
Browser("").Page("").WebEdit("txtUserName").Set DataTable("用户", dtGlobalSheet)
Browser("").Page("").WebEdit("txtPwd").Set DataTable("密码", dtGlobalSheet)
Browser("").Page("").Image("btnLogin").Click 19,17

Browser("").Page("").Check CheckPoint("登录用户名不存在!")
Browser("").Page("").Sync
这时一个登录失败过程,我在录制时对登录产生的提示信息进行文字检查,并将其参数化,以便不同的测试数据登录时有不同的提示信息产生。
如,录制数据,用户名:nn,密码:2,点击登录,系统报:登录用户名不存在!
参数化后,第二行数据:用户名:jj,密码:5,点击登录,系统报:密码错误!
在运行后,运行报告显示每行数据都是:pass,但是报告中的树(第二行)参数的检查点名称仍是第一行的“登录用户名不存在!”,而不是:“密码错误!”
作者: hiyizhiyu    时间: 2006-12-19 18:15
你跟踪一下
看你用户名和密码是否取到第二行的参数了
现实PASS表示
checkpoint通过
怀疑你的第二行参数没有取道
试试吧
作者: hiyizhiyu    时间: 2006-12-19 18:19
Browser("").Page("").WebEdit("txtUserName").Set DataTable("用户", dtGlobalSheet)
msgbox DataTable("用户", dtGlobalSheet)
Browser("").Page("").WebEdit("txtPwd").Set DataTable("密码", dtGlobalSheet)
msgbox DataTable("密码", dtGlobalSheet)
Browser("").Page("").Image("btnLogin").Click 19,17

Browser("").Page("").Check CheckPoint("登录用户名不存在!")
Browser("").Page("").Sync
直接加这两句试试
debug一下就应该清楚了
作者: hanqin    时间: 2006-12-20 09:11
脚本运行的时候取道第二行参数了。
作者: ccc11yyy    时间: 2006-12-20 09:17
检查点的名称是不会随着参数而改变的。如果设了参数,则参数的取值会改变。
把检查点参数的设置也贴出来看看有没有问题
作者: 思飞2006    时间: 2006-12-20 09:22
你确认取到第二行参数了吗?看下Test中Setting下RUN中的设置。你选的是第几项,应该是选第二项或第三项。如果选第一项应该就是你的这个结果。还有就是你有没有加循环语句,这个对三个的选项也有影响。建议把运行结果的报告贴上来。
作者: 思飞2006    时间: 2006-12-20 09:24
对了。1楼的名字拼音很象我的一个大学同学啊,我们不会认识吧sdlkfj2
作者: hiyizhiyu    时间: 2006-12-20 10:08
楼主的问题搞定没有啊
checkpoint是用来检测对象某个属性是否是期望值的
符合就是PASS否则就是FAIL
如果你确认你的脚本运行到了第二行的参数,而且界面上的提示信息是密码错误
那这个"登录用户名不存在"的checkpoint是一定不会PASS的
多加一些log信息debug一下吧
这个问题不难找原因的
作者: hiyizhiyu    时间: 2006-12-20 10:11
to思飞:
你在哪里读的大学啊
呵呵
说不定真的认识哦
只是我不知道有大学同学在上海做测试
作者: hanqin    时间: 2006-12-20 10:31
我要贴图,可是不知道怎么贴上来?sdlkfj1
作者: hanqin    时间: 2006-12-20 10:34
标题: 回复 #8 思飞2006 的帖子
确认取到了第二行参数,且TEST下的run已经选了第二行。

[ 本帖最后由 hanqin 于 2006-12-20 10:51 编辑 ]
作者: hanqin    时间: 2006-12-20 10:53
上图是点击第二行参数的检查点,在右边显示的明细。
参数设置:

[ 本帖最后由 hanqin 于 2006-12-20 11:18 编辑 ]
作者: hiyizhiyu    时间: 2006-12-20 11:30
checkpoint确实是pass了
说明此时checkpoint的期望值是"密码错误..."
这时一个登录失败过程,我在录制时对登录产生的提示信息进行文字检查,并将其参数化
除非你把checkpoint的constant也参数化了
检查一下吧

实在不行就用standard checkpoint检测对象属性算了

作者: hiyizhiyu    时间: 2006-12-20 11:31
真的是啊
你把checkpoint的constant参数化了那当然都PASS了
我晕
作者: hanqin    时间: 2006-12-20 11:52
标题: 回复 #16 hiyizhiyu 的帖子
将checkpoint的constant参数化,这样操作不对吗?
作者: hiyizhiyu    时间: 2006-12-20 12:35
不是不对
只是你参数化以后checkpoint的期望值也是根据table中的值来变化的
我想你的table中一定还有第三列来存放登陆后的系统信息报告信息吧
你的checkpoint取的就是这列的值
而你的报告信息又是和你的用户是正确对应的
那当然会PASS了
其实是应该这样写
它表示你的程序正常运行了
比如你如果改一下table中第三列的值
那checkpoint一定会出现FIAL
我想也许你是因为checkpoint的名称"登录用户名不存在"而疑惑吧
这只是一个logical名称
但检查点真正起作用的是其设置的期望值

不知道这样解释你能清楚不
我也快晕了
作者: 思飞2006    时间: 2006-12-20 13:31
sdlkfj2 楼上说得很具体。
作者: hanqin    时间: 2006-12-20 13:43
标题: 回复 #18 hiyizhiyu 的帖子
“我想也许你是因为checkpoint的名称"登录用户名不存在"而疑惑吧
这只是一个logical名称”

我的确在为这个checkpoint的名称疑惑,根据你说的意思,那么我的脚本是正确的了?sdlkfj5
作者: hiyizhiyu    时间: 2006-12-20 14:15
to hanqin:如果只是要满足检查你登陆后系统的提示信息,我想应该是正确的吧
to思飞:刚才看了一下,你说的1搂好像是指楼主吧,哈哈,我还以为说的是我了,不好意思啊!sdlkfj1
作者: 思飞2006    时间: 2006-12-20 15:36
你再试试把Checkpoint timeout 这一行设为10看看,可能设置为0会对这个有影响。但我没碰到过这样的情况。不行的话,你把所有脚本传上来看下。
作者: hanqin    时间: 2006-12-20 16:51
标题: 回复 #22 思飞2006 的帖子
设置为0和设置为10都一样。
作者: 思飞2006    时间: 2006-12-20 17:35
呵呵。。。你的脚本是正确的。参数化变量和参数化检查点的格式是不一样的。18#回答得很详细了。Check CheckPoint("登录用户名不存在!")中的(“登录用户名不存在!")只是一个标志。你把他参数化以后在你的专家视图里面格式是不变的,不象参数化变量那样。但你可以在主键视图里看可以看到你所参数的格式,就象你贴上来的一样。在运用的时候实际上读到的是这个Checkpoint的实际值,而在运行结果报告中的Title上显示的就是这样的一个标志。在Details中Captured到的是你的实际结果。如果和你的预期结果不一样,还会出现预期结果,这个预期结果才是你真的参数化后的预期输出。




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