51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3196|回复: 12
打印 上一主题 下一主题

作参数化后的问题.

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-9 11:35:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
edit_get_text("Edit",chang);
if(chang<50)
{
        tl_step("chang",1,"out of range");
}

设的参数化数值为:50,150,120,-50,60


"chang"是针对一个编辑框作的参数化内容.编辑框的值域为50-100.已对这个编辑框做了参数化,当为"if(chang<50)"这样的表达时,可以正确判断参数化里的内容,但是如果是if(chang<50||chang>100)这样表达时,运行后,参数化的数值无论是有效值还是非法值,都会报"out of range"这样的错误.


恳请知道的朋友帮忙解答一下.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-9 21:17:29 | 只看该作者
在我的机器上试过,没有出现lz所说的问题,搂住试一下chang=60,应该不会执行if里面的语句的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-7-10 10:14:23 | 只看该作者
版主实在是个热心人.

我录制的情况是这样的,我是先把一个编辑框的数值做了参数化,然后再把
edit_get_text("Edit",chang);
if(chang<50)
{
        tl_step("chang",1,"out of range");
}
这段代码嵌在了参数化的代码里面运作的.

不知道版主对于这样的东西会怎样操作.


实际情况就是.我要对一个数值编辑框做值域验证.所以我的操作是先将编辑框参数化,然后再将编辑框做值域判断.
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-7-10 10:26:04 | 只看该作者
你是将chang做了数据驱动是么?将数值都写到Excel表中,之后每次循环取值并进行判断。
现在手边没有WR,只能回家试验,其他高手给看下?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-10 13:11:11 | 只看该作者
你看看你的change是你设置的值么??
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-10 14:24:53 | 只看该作者
if(chang<50)或if(chang<50||chang>100)都是正确的,不会是表达式的原因.楼主能不能再多给些信息,把整个参数化的脚本都贴出来看看.
这里是不是楼主的笔误: tl_step("chang",1,"out of range"); chang是不需要加引号的,否则在报告中不能把对应的值输入出.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-7-10 16:01:53 | 只看该作者
button_set ("开启", ON);
table = "default.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{

edit_get_text("Edit",chang);
if(chang<50||chang>100);
tl_step("chang",1,"out of range");

        ddt_set_row(table,table_Row);
                edit_set ("Edit", ddt_val(table,"Edit0"));
       
}
ddt_close(table);
        edit_set_selection ("Edit", 0, 0, 0, 5);


这就是那部分的源码.
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-7-11 13:54:29 | 只看该作者
这部分如果和源码完全相同,有几处错误.
button_set ("开启", ON);
table = "default.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{

edit_get_text("Edit",chang);
if(chang<50||chang>100); #后边不应是分号,应是大括号"{"
tl_step("chang",1,"out of range"); #chang,不应该加引号,这里它是一个变量

        ddt_set_row(table,table_Row);
                edit_set ("Edit", ddt_val(table,"Edit0"));
        
}
ddt_close(table);
        edit_set_selection ("Edit", 0, 0, 0, 5);


蓝色部分脚本,最好是放在"ddt_set_row(table,table_Row):edit_set("Edit",ddt_val(table,"Edit0"))"后边.

理解你的意图应该是对编辑框的值域进行判断,这样做好象没有达到目的.是不是应对输入非法数值后,程序会如何处理进行判断.比如输入120,程序会弹出提示,WR应该检查它是否弹出正确提示,可以用图片检查点或文本检查点(提示框的信息).

[ 本帖最后由 shiwomyw 于 2007-7-11 14:07 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-7-11 20:05:39 | 只看该作者
shiwomyw 给的解释现在可以在代码里面跑得通,可是我给的即使是值域以外的值,可照样也没有报错.

shiwomyw 按照你的方法后,也没有达到我想要的结果啊.
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-7-11 22:50:54 | 只看该作者
button_set ("开启", ON);
table = "default.xls";
rc = ddt_open(table, DDT_MODE_READ);
if (rc!= E_OK && rc != E_FILE_OPEN)
        pause("Cannot open table.");
ddt_get_row_count(table,table_RowCount);
for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
{

edit_get_text("Edit",chang);
if(chang<50||chang>100)
{
     tl_step("chang",1,"out of range");
}
else
{
        ddt_set_row(table,table_Row);
        edit_set ("Edit", ddt_val(table,"Edit0"));
  }      
}
ddt_close(table);
        edit_set_selection ("Edit", 0, 0, 0, 5);

lz要达到的是这种效果么?
注意if的语法
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-7-12 09:45:02 | 只看该作者
哎,问题终于解决了.书看了好几遍,可到头来还是没按照书上的参照去弄.

太感谢版主和shi MM两位了.加上前后引号后,基本问题就解决了.

但还是有个小小的问题,想请两位帮忙.我按照版主的做法加了else{}这样的语句后,就会对每一个参数进行验证,如果是值域以外的值,那么我这个被测软件会弹出值域对话框.必须手工点确定后,才能往下执行,我要再怎样处理,就能让它执行得流畅呢?
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-7-12 22:44:12 | 只看该作者
“如果是值域以外的值,那么我这个被测软件会弹出值域对话框.必须手工点确定后,才能往下执行”
lz是什么意思?
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-7-13 10:34:35 | 只看该作者
楼主的意思是 正确的 输入应该是 50~100之间,  这样的话我觉得你的if 表达式的条件写错了,应该是大于小值,并且小于大值吧?
我的改法是  if(chang<50||chang>100)----------->if (chang>=50&&chang=<100) 。

因为如果按你的写法 if(chang<50||chang>100), 和你预设的值50,150,120,-50,60,我们可以看一下。
如果输入50, 那么chang<50为假,执行或语句,chang>100,也是为假。整个if为假
如果输入正确值60,那么chang<50为假,执行或语句,chang>100也为假,整个if还是为假。
所以我感觉你得条件表达式写的不对。

不知道我说的对不对,其他人可以论证一下。sdlkfj5
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 12:34 , Processed in 0.072249 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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