51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 27298|回复: 36
打印 上一主题 下一主题

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:37:03 | 只看该作者
非常不错的帖子!
描述性编程在QTP中被炒的很火,其实在WR中就已经支持了,Rational Robot就是直接将识别对象的属性放到脚本中的,这样做可以使脚本更独立,但可读性相应就会下降,而且脚本的编写工作量加大了(一得一失吧)。
非常支持lantianwei 的探索和学习精神!
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

4#
发表于 2007-7-25 11:27:46 | 只看该作者
对于第三方控件目前WR的支持确实不够好,我想一部分原因也是目前WR的更新慢了下来,跟不上开发工具的速度。而最新的9.2版我们也一直没有接触到
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-26 17:00:49 | 只看该作者
描述性编程,对第三方控件也有一定的局限性,虽然说可以使脚本更独立,但是有些问题还是解决不了的。
例如:在delphi中的某些控件自己会自动生成MWS_id,使回放时会出现找不到控件问题。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-27 13:42:52 | 只看该作者
描述性编程有点难,
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-7-27 14:49:47 | 只看该作者
请问什么是描述编程?

就是指 用GUI对象的 物理描述 代替 逻辑名?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-7-27 14:54:53 | 只看该作者

回复 #7 kolecat 的帖子

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

使用道具 举报

该用户从未签到

9#
发表于 2007-7-29 12:13:29 | 只看该作者

知己啊

原帖由 lantianwei 于 2007-7-24 17:18 发表
刚刚用了QTP的描述性编程,忽然想起用WinRunner也用一下描述性编程。做了感觉还不错,呵呵。。。。
       以下是本人用WINDOW XP自带的一个计算器做的一个小例子:
####################################### ...

我也喜欢这个个性签名

我的性格决定命运,气度影响格局啊
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-7-31 10:19:09 | 只看该作者
sdlkfj6
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-8-16 17:43:39 | 只看该作者
很不错哦,值得学习
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-8-27 10:13:45 | 只看该作者
win_activate("{class: window,label: Calculator}");
在这里就过不了了, 是不是因为是中文系统?
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2007-8-27 12:16:01 | 只看该作者

回复 #12 cynthiaa 的帖子

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

使用道具 举报

该用户从未签到

14#
发表于 2007-9-17 11:11:27 | 只看该作者
不错,学习ingsdlkfj2
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2007-9-18 16:45:29 | 只看该作者
各位高手,我想问问在WR里录制脚本,在窗口中没有脚本显示是怎么回事呢?以前我用过是没有这个问题的,现在
了这个问题,我也不知道是怎么回事,请各位高手指点。不甚感激!
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2007-9-18 17:09:06 | 只看该作者
我也没有碰到过 建议你重装一下!
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2007-9-24 16:02:18 | 只看该作者
很受用的帖子,谢谢LZ 了
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2007-9-27 21:20:20 | 只看该作者
这样确实使代码的独立性增强了,但感觉偶尔用一下还好,如果整个测试都用描述性语言,就不好了。因为一旦出现被测控件的物理属性被改变,那就可能改一大片代码的,效率反而下降了
回复 支持 反对

使用道具 举报

该用户从未签到

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

使用道具 举报

该用户从未签到

20#
发表于 2007-10-10 10:22:38 | 只看该作者
不错不错,不过调试是个麻烦事,因为你并不知道代码里对象描述是否正确,所以还是有必要先把对象都获取到对象库然后利用对象库确认描述方式和方法都无误,再来才是将这写对象的描述提取出来代码化.所以工作量是比较大了,不知道会不会影响自动化测试建立的进度啊.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 12:21 , Processed in 0.080196 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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