saronstone 发表于 2004-8-16 11:09:01

winrunner的新问题

谢谢斑竹给我的回答,现在情况是这样的
学不到所有的GUI没关系,我现在先把要用的都识别了
然后在一个输入信息的界面里面,要输入很多信息,先录制了一个输入正确的数据的脚本,然后根据不同的测试用例里面的数据创建了数据驱动测试。
由于在不同的情况下可能弹出不同的对话框,成功的话在数据库和界面上都有新数据填加进去,我的想法是在点保存之后填加检查点,可是好复杂啊,难道是这个winrunner还不适合用做这种测试?

希望大虾们尽快给出恢复,不胜感激

michelle_happy 发表于 2004-8-16 14:56:07

我也对这类问题有很多疑问,导致我学习winrunner中途荒废。好像WR对弹出的提示框的处理都很麻烦!
高手指教

yun_004 发表于 2004-8-16 18:17:27

winrunner可以记录弹出的提示框。

saronstone 发表于 2004-8-17 09:47:31

当然可以记录啊,可是要是不同的数据弹出的对话框不同怎么解决啊?
如果在测试脚本里面用这种方式可不可行呢?
if(输入的数据……)
check_gui(弹出的对话框是否enable……)

saronstone 发表于 2004-8-17 10:28:54

哪位高手出来说说话嘛,还有一个问题就是出现了不同的窗口怎么关闭嘛,因为我输入的数据做成一个数据驱动了,不同数据弹出不同的提示框,一如说用户已经存在;密码错误之类的都有可能出现,我这个礼拜就要把这些东西搞定啊,急……………………………………………………

jzhao 发表于 2004-8-17 10:35:06

修改脚本,自己加判断不就行了?

saronstone 发表于 2004-8-17 13:27:45

我也想这样,可是能这样吗?
for(……)
{数据驱动来填不同的数据
if(弹出这个提示框)
点击确定
if(弹出另一个提示框)
点击这个提示框的确定
}
而且想把meici每次出现的对话框在test result中也能看到

jzhao 发表于 2004-8-17 14:55:07

如果你想看报告,我想可能还要使用检查点。

saronstone 发表于 2004-8-17 15:28:07

斑竹你答的好简单哦,我里面
if(弹出提示框)ben本来里面就是一个检查点看对话框弹出来没有

        if(win_check_gui("测试人员姓名_1", "list8.ckl", "gui5", 1)==E_OK)
        {
       report_msg("请输入测试人员的姓名");
# 测试人员姓名_1
        win_activate ("测试人员姓名_1");
        set_window ("测试人员姓名_1", 2);
        button_press ("确定");
        }
像这样可以吗?

pcl2004_27 发表于 2004-8-18 12:25:22

我觉得脚本的开发是应用在你被测试软件的基础上,你要先研究软件的这块功能是怎样,不同的情况都会出现什么。那么脚本 就比较控制

wr只是个工具,无法给你准确的信息,你可以自定义信息来确认错误。帮助你分析result.更加准确定位错误

针对第一个问题比如软件的功能是,添加一个用户
如果用户已经存在,提示重新输入,如果用户名过长,提示用户名长等
那么开发的时候
   就如你上边开发脚本的思路就可以了

自动化脚本不是孤立的,她是建立在被测试软件的功能基础上
对于验证点,是灵活运用的,不要“死守“wr提供的验证点,她不一定适合所有的情况,而且不够灵活,你可以通过编程的方式来操作。
其中wr不灵活和局限性的一个原因因为验证点无法加入到函数中。但是不是说无法解决问题,根据具体情况具体分析!让脚本更加健壮!

saronstone 发表于 2004-8-18 12:38:35

我刚用这个,也没有什么机会学习,斑竹说的关于编程的方式有没有什么比较好的资料可以发给我一个吗?谢谢拉

saronstone 发表于 2004-8-18 14:53:11

呵呵,刚才我发现了只要在自动测试时忽略错误旧可以实现不同的窗口的解决问题了,虽然办法有点笨,可还是可行的……。终于编出了第一个自动测试的脚本拉……
太高兴了…………………………………………兴奋ing……………………

rantisong 发表于 2004-10-14 18:00:18

一个应用程序有很多分支,我们可以按功能,分支来录制。然后可以使用if 语句 配合Call 命令来尽可能的覆盖到整个程序,而且很方便维护。

Jamesniu 发表于 2004-10-14 19:35:05

Originally posted by rantisong at 2004-10-14 18:00:
一个应用程序有很多分支,我们可以按功能,分支来录制。然后可以使用if 语句 配合Call 命令来尽可能的覆盖到整个程序,而且很方便维护。

不错哈,感谢提醒..

QA_BAY 发表于 2004-10-20 17:37:51

iResult = win_exists("弹出窗口的名称");
if (iResult == E_OK)
{
//
}
用这个行不行呢?

bunny 发表于 2004-10-20 17:50:26

当然行
win_exists("弹出窗口的名称"),它就是一个检查窗口是否显示在屏幕上的函数,然后再加上自已写的代码,一样可以实现对话框是否弹出,弹出的提示信息是否正确

suibozhu111 发表于 2008-10-20 16:38:55

自问自答?。。。。

学会洒脱 发表于 2008-10-20 16:55:42

楼上的和楼上的楼上MS刚好差两年呢..

sunhope800 发表于 2009-8-12 14:51:18

有价值

liujinkui 发表于 2009-8-15 14:41:31

LZ的问题是弹出的对话框名称相同,而提示的信息不同,可能按键多少名称都不同.
这个问题可以通过Switch来解决.
static strText;
if (win_exists("提示对话框GUI名称",1)==E_OK)
{
   #一般应用程序是用VC写的,提示信息是Satic标签对象
   static_get_text("static对象",strText); #如果对象是Object类型可以利用obj_get_info也可实现
   switch(strText)
      {
               case "提示信息1":
                               。。。
                              break;

               case "提示信息2":
                               。。。
                              break;
               default:
                               。。。
   }

}
页: [1] 2
查看完整版本: winrunner的新问题