51Testing软件测试论坛

标题: RFT请教 datapool的问题 [打印本页]

作者: 19840823llw    时间: 2009-7-2 18:13
标题: RFT请教 datapool的问题
有一个入力画面(如附件input.jpg所示):
点击ok按钮的时候,如果name,sex和age的为空,则会弹出警告信息。
警告信息分别是:
1Please input name.
Please input sex.
Please input age.

现在我录了一个脚本(rft),脚本的操作顺序是这样的:
画面上,name为空,点击按钮,弹出错误信息:Please input name.

在这个脚本的基础上,我创建了一个datapool,共有三条记录
1. name的值没有,sex的值有,  age的值有         ----------错误信息--------Please input name.
2. name的值有,  sex的值没有,age的值有         ----------错误信息--------Please input sex.
3. name的值有,  sex的值有,  age的值没有       ----------错误信息--------Please input age.
通过手动读取datapool的方式来遍历。

因为以上三条数据弹出来的错误信息是不一样的,请参照上表。
我在script里面是用如下方式进行验证的
vpManual("dialog_htmlDialogStaticPleaseI",this.dialog_htmlDialogStaticPleaseI().getProperty(".text"),"Please input name.").performTest();
但是我录制的test object里面的dialog_htmlDialogStaticPleaseI的text是固定值:Please input name.
所以datapool里面的第二条和第三条数据在验证的时候永远出错。

请问该如何修正呢?
作者: dreamever    时间: 2009-7-3 10:01
这个datapool有什么关系?如果你把预期结果都放到datapool里了,那么就让脚本从datapool里把值取出来不就可以了吗?
如果你想用RFT本身的机制来解决问题也简单,你把三个文本框分别录一下就OK了,然后每次执行的时候判断是哪个文本框出现了,就执行那个文本框的验证
作者: 19840823llw    时间: 2009-7-3 10:16
终于等到人了
大侠不要走

我的意思是这样的
我的error message是存在 Datapool里面的。
我想要验证的点是 :  弹出来的message box上面的文字 是否和 datapool里面保存的error message一样。
但是,我的 test object 里面的 message box 的 .text属性 是固定值,也就是我 第一次录的 "Please input name".

所以在 循环datapool的时候,第二条和第三条的数据验证一直失败。

所以我想请问,有没有什么办法,能让我的 test object里面 message box 上的文字能关联到每次弹出来的 message box上面的文字?
作者: dreamever    时间: 2009-7-3 11:43
所以说你的问题关键不在于datapool,而在于你的那个message box。你用的还是RFT的录制生成的对象。test object里的对象是固定的,你想用一个固定的对象来匹配不同的对话框,那不是给自己找麻烦嘛。
两个解决方法,一是最好自己写代码来获取对象,调用find方法通过对象的class找到那个对话框,然后获取文本属性,第二个如果非要使用录制功能,你既然有多个文本框,那就将这几个文本框分别录制。你所说的“每次弹出来的 message box”,对于脚本来说就是不同的测试对象。
另外你也可以试着将testobj中,文本的权值修改为零,也就是不再以文本来识别对象,但是这样做不一定能成功。
作者: 19840823llw    时间: 2009-7-3 15:09
标题: 豁然开朗
听君一席话
如醍醐灌顶,豁然开朗

非常感谢




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