51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

楼主: lantianwei
打印 上一主题 下一主题

Winrunner之描述性编程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-24 17:18:58 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
刚刚用了QTP的描述性编程,忽然想起用WinRunner也用一下描述性编程。做了感觉还不错,呵呵。。。。
       以下是本人用WINDOW XP自带的一个计算器做的一个小例子:
#################################################################################
#
#  Description-------------Use Description Programing to Test the CALC in Window XP  by WinRunner
#
#  Tester------------------Lantian Wei
#
#  Modify Time-----------2007-7-24
#
#################################################################################
invoke_application("calc.exe","","c:\\windows\\system32\\",SW_SHOW);
static myarr[]={{1,"+",2,3},{1,"-",2,-1},{1,"*",2,2},{1,"/",2,0.5}};
win_activate("{class: window,label: Calculator}");
set_window("{class: window,label: Calculator}",5);
for(i=0;i<4;i++)
{ for(j=0;j<3;j++)
     button_press("{class: push_button,label:"&myarr[i,j]&"}");
  button_press("{class: push_button,MSW_class: Button,label:=}");
  edit_get_text ("{class: edit}", result);
if(index(myarr[i,j],".")==0)
{
   if(result==myarr[i,j]&". ")
     tl_step("CheckAnswer",0,"The calculatation is right:"&myarr[i,j-3]&" "&myarr[i,j-2]&" "&myarr[i,j-1]&" = "result);
   else
     tl_step("CheckAnswer",1,"The calculatation is wrong:"&myarr[i,j-3]&" "&myarr[i,j-2]&" "&myarr[i,j-1]&" != "result);
  wait(1);
  }
else
{
  if(result==myarr[i,j]&" ")
    tl_step("CheckAnswer",0,"The calculatation is right:"&myarr[i,j-3]&" "&myarr[i,j-2]&" "&myarr[i,j-1]&" = "result);
  else
   tl_step("CheckAnswer",1,"The calculatation is wrong:"&myarr[i,j-3]&" "&myarr[i,j-2]&" "&myarr[i,j-1]&" != "result);
  wait(1);
  }
}
win_close("{class: window,label: Calculator}");

以上是本人用描述性编程写的脚本,至此现丑了。如有不足之处还请大家指正!在此先表示感谢!
通过这个例子的练习,我发现它确实有好多优点,比如你从此不用在关心那烦人的对象库了,而一个测试脚本里基本上在对象库中出现的问题最多了。然而它还是有缺点的,比如对于无法识别的对象,它就无能为力了,而对于那些OBJECT对象,它的支持也不好。所以如果WR对应用程序识别的满好的话,不如用描述性编程试试。sdlkfj5

[ 本帖最后由 lantianwei 于 2007-8-15 14:24 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2007-7-24 17:56:05 | 显示全部楼层
非常感谢dionysus 的支持,我相信WR如果对对象的支持变得越来越好的话,那么描述性编程在WR还是有立足之地的。呵呵。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-7-27 14:54:53 | 显示全部楼层

回复 #7 kolecat 的帖子

所谓描述性编程,我觉得他的真谛在于脱离了对象库,而对于运用的非常好的话,又可以达到脚本非常高的复用。
至于原理吗,也就是你说的,差不多。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-8-27 12:16:01 | 显示全部楼层

回复 #12 cynthiaa 的帖子

是的 你要把win_activate("{class: window,label: Calculator}");改成win_activate("{class: window,label: 计算器}");
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-9-18 17:09:06 | 显示全部楼层
我也没有碰到过 建议你重装一下!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2007-9-28 09:44:46 | 显示全部楼层
最近在项目中我真正用到了描述性编程,发现确实有其好处,我在一个窗体中有176个对象,但是我却只用了一句话来表示,效率很高吧!我觉得描述性编程对大量的相似对象以及一些未知对象非常适用,但对大部分我觉得还是用对象库比较合适.所以觉得对象库和描述性编程没有好坏之分,只有适合不适合的差别.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-12-13 12:48:41 | 显示全部楼层

回复 30# 的帖子

是可以的
两者没有什么必然的联系
但是要注意:如果你的WINDOWS对象用的是描述性编程 则该窗体对象下的子对象就不可以用对象库了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-5-25 17:42 , Processed in 0.073739 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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