51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 15878|回复: 46
打印 上一主题 下一主题

登陆界面的测试程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2004-12-28 10:28:48 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
登陆名和密码  我想用数据驱动,并判断登陆名和密码是否一致。如果不一致,报出错。用tl_setp函数。怎么编写测试函数。请高手指点一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏

该用户从未签到

2#
 楼主| 发表于 2004-12-28 10:29:13 | 显示全部楼层
在线等。谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2004-12-28 11:16:56 | 显示全部楼层
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 ++)
{
        ddt_set_row(table,table_Row);
       
        # Login
                set_window ("Login", 3);
                edit_set ("Agent Name:", ddt_val(table,"Agent_Name1"));
                password_edit_set("Password:", ddt_val(table,"Password1"));

                button_press ("OK");
       
#         # Flight Reservations
#                 set_window ("Flight Reservations", 1);
#                 button_press ("确定");
#判断       
                if(ddt_val(table,"Agent_Name1")== "mercury" ||ddt_val(table,"Password1") == "mercury")
                {
                   tl_step("用户 名和密码  ",0,"正确 !");
                }
                else
                {
                  tl_step("用户 名和密码  ",1,"不正确 !");
                }
               
                if(ddt_val(table,"Agent_Name1")== "" && ddt_val(table,"Password1") == "")
                {
                  tl_step("用户 名和密码  ",1,"不能为 空!");
                }
}
ddt_close(table);

大家帮我看看,这个脚本有没有问题呀?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2004-12-28 11:18:13 | 显示全部楼层
当密码或用户名为空时,也没有提示,怎么回事呀
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2004-12-28 14:00:15 | 显示全部楼层
那个我知道了,我把与和或写错了。但我该过来后还是不能运行
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2004-12-28 16:14:35 | 显示全部楼层
谢谢,我试一下
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2004-12-29 08:32:56 | 显示全部楼层
#如果用户名和密码都为用空        
        if(ddt_val(table,"Name")== ""||ddt_val(table,"Password") == "")
                {
                      tl_step("用户名和密码",0,"用户名和密码都为空!");}
                                          else
                                            {
                                                    pause(ddt_val(table,"Name"));#如果不为空就输出
                                                    pause(ddt_val(table,"Password"));
                                                
                }
}

执行else语句后,出现输出用户名和密码的对话框,要手动点击Contiune才能继续。怎么让它自动继续?我想手动在GUI Map只能感加入这个按钮,但不知道他的Windows名称该填什么?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2004-12-29 08:39:23 | 显示全部楼层
如果没有什么其它的窗口弹出那两个是一样的!没有什么区别!
但如果你的数据输入不同那就不一样了,
就是你设置的数据有长有短.
你观察一下出错的可能性有几种,
当所有可能出现时,你的程序可不可以做到,
你都要想到,
而不是录制完就完了!
如果觉得多余那就把它拿掉吧!
---------------------------------------------------------------------------------------------------------

我试过了,当输入长度不同时(比如输入2个字符,实际要求要大于4个字符),一个判断也能全报出来。我认为一个判断就可以了,不知道我是不是没考虑全面。请斑竹指教
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2004-12-29 09:04:23 | 显示全部楼层
谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2004-12-29 10:03:19 | 显示全部楼层
在数据驱动时,当有两个以上测试数据时
# Login
                set_window ("Login", 9);
                obj_type ("Agent Name:","<kCtrl_L>");
                edit_set ("Agent Name:", ddt_val(table,"Name"));
                password_edit_set("Password:", ddt_val(table,"Password1"));
                button_press ("OK");
中的password_edit_set("Password:", ddt_val(table,"Password1"));语句在执行时,报错误
Function "password_edit_set"

Line: 14

Error: Illegal parameter.

不知道什么原因,请高手指点。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2004-12-29 10:15:18 | 显示全部楼层
我改过了,改成Password1了,并且当只有一个数据驱动时运行就正常,两个或两个数据以上的驱动就报这个错误
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2004-12-29 10:42:17 | 显示全部楼层
问题解决了,我把Password1改成其它的名字比如Passtest就可以了。可能是脚本在读名字的时候有长度限制,把Password1仍读成了Password,后面的字符给截断了。造成名字冲突的原因。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2004-12-29 10:50:30 | 显示全部楼层
我晕,运行几遍后,又来了,是不是测试程序本身的问题呀
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2004-12-29 14:25:19 | 显示全部楼层
To QA_BAY
不是这个原因,当第二个数据驱动时,Password不能完全输入,只输入了2个字符
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2004-12-29 15:53:31 | 显示全部楼层
是不是我没有用通配符的原因?多个数据驱动必须用通配符吗?如果要用,这个例子在什么地方用通配符?
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2004-12-29 15:57:19 | 显示全部楼层
我也没找到kCtrl_L是哪个键,这一句用处不大,可以不要
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2004-12-29 16:02:52 | 显示全部楼层
斑竹帮忙,多谢了
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2005-1-4 15:43:31 | 显示全部楼层
在WinRunner的例子里找到了了示例脚本。按它的方法就没有这种问题。原因还是不太明白。

另外,它用到了自定义函数,并且把自定义函数放到了类似链接库(*Lib)的文件里。不知道怎么创建这种文件。请高手指点
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2005-1-5 08:34:04 | 显示全部楼层
谢谢QA_BOY
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-6-5 09:52 , Processed in 0.088335 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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