51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

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

[WinRunner] 使用Winrunner定时下载Build(二)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-12-17 18:33:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上周运行脚本还是碰到了不少问题,突然发现美国那边竟然也在同时调试上传build的脚本,生成了几个类似build_999_ent这样的测试build号码。于是从CuteFTP中下载最末尾build的方法失效了,只能另想出路。
一个办法是在脚本的开头设定下载范围,使用脚本循环读取判断FTP上处于下载范围内最大的build号,并下载。但这个方法有很多弊端,如下载范围需定时更新;build的循环判断较复杂等。尝试了一下发现可行性不高
另一个办法是循环点击当前FTP SRV上列出的所有build文件夹,判断里面是否有安装的文件,如果有则记录下这个build号,最后下载build号最大的文件夹。这个方法也同样存在问题,比如点击文件夹读取子文件列表时速度过慢,可能会出问题;build文件夹下文件上传尚不完全,但脚本判断后却认为是正确build...
最后还是采用了第二种办法。在脚本操作间加大了wait时间,并将循环点击build的操作提为一个函数。脚本如下:
#==========================================================================================================
#创建人:杨明华
#创建时间:2007.8
#内容描述:自动下载connect enterprise 6.0 build
#修改人:杨明华
#最后修改时间:2007.11.28
#修改内容:修改为适合Connect Enterprise 7.0 Build的自动下载脚本
#===========================================================================================================
#======变量设置=============================================================================================
#wait(25200);
Project_label = "General FTP Sites;Connect Enterprise 7.0 sap";    # The Connect Enterprise project label in list is "General FTP Sites;Connect Enterprise 6 build"
Current_Build = "connect_700_r531_ent";
public function getbuild()
{
   static count, i, arr_num, builds[], div[], builds_label, current_build, subcount, lastest_build;
    list_get_items_count("{class: list, MSW_id: 59648}", count);
   if (count==0)
   {
  report_msg("There is no build on SRV.");
  texit;
}
for (i=0; i<count;i++)
{
  list_get_item("{class: list, MSW_id: 59648}",i,builds_label);
     builds=builds_label;
  report_msg("all builds on SRV are listed here: Num "&i&" = "&builds);
  arr_num=split(builds, div, "_");
  if (div[arr_num]=="ent")
  {
   current_build=builds;
   set_window ("{ class: window, label: \"!Connect Enterprise 7.*\"}", 2);
   list_activate_item ("{class: list, MSW_id: 59648}", current_build);
   wait(30);
   while(win_exists("{class: window, label: \"!File.*\"}",3)==E_OK)
   {
    win_close("{class: window, label: \"!File.*\"}",3);
    report_msg("Close the message windows");
   
    set_window ("{ class: window, label: \"!Connect Enterprise 7.*\"}", 2);
    list_activate_item ("{class: list, MSW_id: 59648}", current_build);
    wait(30);
   }   
   report_msg("Into the sub folder");   
   list_get_items_count("{class: list, MSW_id: 59648}", subcount);
   if (subcount!=0)
   {
    lastest_build=current_build;
   }
   obj_type("{class: list, MSW_id: 59648}", "<kBackSpace>");
   wait(30);
  }
    }
    report_msg("The lastest build is "&i&"="&lastest_build);
return lastest_build;
}   
#============================================================================================================
#======监测FTP程序是否存在,如果存在则关闭程序,重新启动======================================================
if(win_exists("{class: window, label: \"!GlobalSCAPE - CuteFTP.*\"}",0)==E_OK)
{
report_msg("GlobalSEAPE is existing, it will be closed");
win_close("{class: window, label: \"!GlobalSCAPE - CuteFTP.*\"}");
}
wait(5);
if(invoke_application("C:\\Program Files\\GlobalSCAPE\\CuteFTP 7 Professional\\cuteftppro.exe","","",SW_SHOW)!=0)
{
report_msg("Start CUTEFTP error");
texit;
}
else
{
report_msg("Start CUTEFTP ok");
}
#============================================================================================================
#wait(3600);
#============================================================================================================
#======定位CuteFTP,点击build下载的FTP site==================================================================
# GlobalSCAPE - CuteFTP 7.2 Professional
set_window ("{class: window, label: \"!GlobalSCAPE - CuteFTP.*\"}", 2);
list_activate_item ("{class: list, MSW_id: 1079}", Project_label); # Notice! Replace the parameter "Project_label"
#============================================================================================================
wait(60);
#======刷新界面,选择下载====================================================================================
#   wait(1800);
   report_msg("waiting for build downloading, loop every 30 mins");
#======定位窗体,刷新界面====================================================================================
   win_activate ("{ class: window, label: \"!Connect Enterprise 7.*\"}");
   set_window ("{ class: window, label: \"!Connect Enterprise 7.*\"}", 2);
   obj_type ("{class: list, MSW_id: 59648}","<kF5>");
   
   wait(10);
##======循环选择当前所有的build,找到最近的一个和当前的build进行比较,如果与当前的build不一致则下载=============   
  download_build = getbuild();
#============================================================================================================
    report_msg("The lastest build is "&i&"="&lastest_build);
#    pause("stop");
#======下载最近的build=======================================================================================
list_select_item ("{class: list, MSW_id: 59648}",download_build, RIGHT);
menu_select_item ("{class: menu_item, parent: none, position: 0}");
#============================================================================================================
report_msg("The lastest build is "&download_build&", Copying");
#============================================================================================================
#======如果有重复的提示则选择替换所有========================================================================
    if(win_exists("{class: window, label: \"Confirm Folder Replace\"}",5)==E_OK)
{
  win_activate ("{class: window, label: \"Confirm Folder Replace\"}");
  set_window ("{class: window, label: \"Confirm Folder Replace\"}", 2);
  button_press ("{class: push_button, label: \"Yes to All\"}");
  report_msg("Replace the build");
}

脚本还需经过一段时间的考验和调试,这里列出的方法希望能给大家一个参考 ^_^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-12-17 19:25:02 | 只看该作者
非常感谢LZ的无私奉献!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-12-17 21:34:39 | 只看该作者
哈,谢谢lantianwei时刻的沙发。好长时间都没有到51了,这里多亏了蓝版主的管理,要不然早就荒的长满草了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-12-21 00:23:00 | 只看该作者

不错,顶起

不错,顶起
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-12-26 21:45:24 | 只看该作者
不错,以前谢谢两位版主指点WR
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-12-29 09:43:49 | 只看该作者
好久没有过来了,看到新的好文章!!谢谢楼主
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2017-1-13 07:55
  • 签到天数: 22 天

    连续签到: 1 天

    [LV.4]测试营长

    7#
    发表于 2008-1-11 10:17:07 | 只看该作者
    我來樂。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2008-1-15 15:26:13 | 只看该作者
    Thanks
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-1-19 01:58:01 | 只看该作者
    呵呵,受教了。很感谢楼主~~~~~~~~~~~~~~~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2009-6-5 13:12:14 | 只看该作者
    是不是使用WR必须要有功底比较深的编程水平
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2009-7-27 14:10:19 | 只看该作者
    谢谢!顶........
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2012-6-21 00:50:40 | 只看该作者
    没有问题,坚决支持
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2013-8-14 15:07:27 | 只看该作者
    请楼主继续发好贴,支持你
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-5-7 14:31 , Processed in 0.081427 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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