51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2628|回复: 10
打印 上一主题 下一主题

[原创] 小功能 QTP实现 之 难点

[复制链接]
  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2008-2-29 12:16:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    前不久提了个“QTP缺陷”的貼子:
    http://bbs.51testing.com/thread-106282-1-1.html

    今天出来说明一下。

    下图所示,就是一个数据录入的过程。
    首先是已有的数据列表;
    点新增进入添加数据页面,点确定后保存但不返回列表,此时可以再修改再保存;
    点返回后,返回到数据列表,然后可以再新增。

    就这么简单且普通的动作,用QTP来做了一下,发现问题还挺复杂的。

    1. for i = 1 to 10
    2.     '新增
    3.     '录数
    4.     '返回
    5. next
    复制代码

    结果回放就出现对象无法识别。
    调试了许久才发现是Frame对象属性在不停的变,每次点新增,录数,确定时变一次。
    初次Frame的name属性是main;
    新增了一条后,Frame的name属性是myFrame
    再新增一条后,Frame就多了index=1,然后index不断递增。

    如此神奇!
    规律是摸清楚了,脚本按规律来写应该还是可以实现的。
    只是太麻烦了,没有必要为了自动化而去自动化。

    最后我每次返回直接刷新列表页面,让Frame再变成name:=main,这样是最简单的方法了。

    这个例子,并不是QTP的缺陷,而是 手工vs工具  人脑vs电脑 的差别了,你觉得呢?

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-3-11 14:55:31 | 只看该作者
    对呀!这个可以用描述性编程来实现呀
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-3-3 12:12:06 | 只看该作者

    回复 9# 的帖子

    支持,有些工作用自动化做起来比较费力的,在代码上其实修改很简单。
    转变一下思路,有些困难就迎刃而解了。
    在这个问题上,我赞成通过代码解决,当然用描述性编程也并非不可。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
     楼主| 发表于 2008-3-1 10:40:00 | 只看该作者

    回复 4# gy21st 的帖子

    “这个不是什么难点吧”

    标题是没有起好!

    这个问题是开发设计的问题,已经和相关人员沟通过了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
     楼主| 发表于 2008-2-29 18:08:00 | 只看该作者

    回复 7# gy21st 的帖子

    有个捷径:
    录入一个 新增——录入信息——确定——返回  的动作,完成后重新进入这个列表。

    这样循环就不用修改任何东西。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-2-29 14:46:15 | 只看该作者
    对象属性动态变化的时候,如果你觉得描述性编程是大动干戈,那恐怕真难找到小动干戈的解决方法。除非你把对象库中对象的识别属性全部用正则表达式表述,那和描述行编程也是一个道理。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-2-29 14:19:46 | 只看该作者
    你用下面的regular expression就可以识别所有的frame了:
    Frame的name属性: main|myFrame.*
    或者你可以观察一下这个frame,  看看有没有其它可以唯一确定它的属性.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
     楼主| 发表于 2008-2-29 13:08:10 | 只看该作者

    “规律是摸清楚了,脚本按规律来写应该还是可以实现的。”

    这么小个功能就来大动肝割

      描述性编程是可以解决呀
    就是 Frame 的 name 属性 和 index 属性动态嘛。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2008-2-29 13:01:53 | 只看该作者
    这个不是什么难点吧,不正好用描述行编程解决吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2008-2-29 12:36:02 | 只看该作者

    回复 2# CPC 的帖子

    能说详细一点吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2008-2-29 12:32:33 | 只看该作者
    动态去得到Object.
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-15 03:32 , Processed in 0.071113 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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