51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 13010|回复: 37
打印 上一主题 下一主题

[原创] 【QTP编码小知识 三 IE内存释放】

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-10-7 14:50:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
【QTP编码小知识 三 IE内存释放】
    由于编码小知识出到第三帖,特此帖送出API手册一份,想要会自动化,还离不开Win32 API。
    先说下小编对关于Web内存的一些小看法,之前已经有讨论过关于IE内存占用居高不下,导致了QTP对Web页面的操作出现种种问题。今天和大家说下简单的内存释放方法。首先我们使用的将浏览器最小化然后再做最大化的操作来实现这个释放工作。很多人知道,IE最小化后,内存占用不到2M,最大化后,会比之前最小化前占的内存更少。
    先看下下面的代码,因为QTP中对Browser没有提供最小化的方法,因此我们需要借助window的中的方法:
    hwnd=borwser("...").getroproperty("hwnd")
    window("hwnd:="&hwnd).Minimize
    wait(1)
    window("hwnd:="&hwnd).Maximize
   
    看完小编的这4句代码,很高兴,哇,就这么简单?!慢着,你丢进QTP里面运行看看。打开任务管理器,注意,你可以把wait的时间调长点,你可以看到,原来内存居然是有增无减?然后愤怒的拿着砖头丢过来。
    至于为什么使用了Minimize的方法后仍然无效,这个小编猜想是因为QTP本身并没有真正意义上的最小化。好了,说了哪么多,先来个真的可以做到释放内存的,再看看下面代码:
   Public Function QTP_Release_Memory(hwnd)
        Extern.Declare micVoid ,"SendMessageA","user32.dll","SendMessageA",micHwnd,micInteger,micInteger,micInteger
        SC_MINIMIZE = &HF020&
        SC_MAXIMIZE = &HF030&
        WM_SYSCOMMAND = &H112
        Extern.SendMessageA hwnd,WM_SYSCOMMAND,SC_MINIMIZE,0
        wait 1
        Extern.SendMessageA hwnd,WM_SYSCOMMAND,SC_MAXIMIZE,0
   End Function
     大家会问,你怎么要用Function呢,小编这人比较环保,东西能重用就重用,大家只要把窗口的句柄丢给Function就可以用了,以后都可以在同个项目中用到,下次有时间和大家说说如何把脚本写得重用性更高些。
     这个主要是使用的是Win32API的方法,用SendMessage的方法去实现了最大化最小化。在这里小编偷偷告诉大家,SendMessage称得上是Win32 API中最强的一个,它几乎可以模拟所有的你想要的操作,至于真的有多强大,你下载小编给你们的文档看看它的所谓参数就知道。
     好了,打开任务管理器,瞧瞧结果,别乐坏了。

[ 本帖最后由 假装不在 于 2008-10-7 14:53 编辑 ]

本帖子中包含更多资源

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

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

使用道具 举报

该用户从未签到

2#
发表于 2008-10-7 14:56:57 | 只看该作者
顶起
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-10-7 15:22:22 | 只看该作者
看来是个好东西 下载了 多谢楼主
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-10-7 16:05:50 | 只看该作者
哈哈,找到个好东西,LZ辛苦了
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-10-7 16:38:16 | 只看该作者
看了就顶一下。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-10-8 09:44:07 | 只看该作者
不错UP
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2015-11-3 20:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2008-10-8 10:38:29 | 只看该作者
    不错是好东西
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-10-8 20:32:20 | 只看该作者
    这个帖子怎么好像没什么人提出疑问或者辩论之类的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-10-8 22:20:00 | 只看该作者
    偶想知道原理!!
    为什么就一个最小化再最大化就能释放内存呢??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-10-8 23:15:35 | 只看该作者
    看看,正想学QTP呢~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-10-8 23:45:56 | 只看该作者
    长见识了,LZ能不能稍微简单介绍下原理呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2008-10-9 00:38:48 | 只看该作者
    你们好像对附件比正文更感觉....
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2008-10-9 09:31:26 | 只看该作者

    拿走

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-10-9 11:06:39 | 只看该作者
    虽然不深入研究,看看无妨。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2008-10-9 14:06:16 | 只看该作者
    学习
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2008-10-10 14:38:16 | 只看该作者
    细心一点你会发现内存的使用总量是没有变化的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2008-10-10 15:30:39 | 只看该作者
    没变化是?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2008-10-10 16:16:16 | 只看该作者
    真强!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2008-10-13 14:29:26 | 只看该作者
    假装不在,

    给我一些例子,如何调用API到QTP中,我在这个方面不是很明白,多多指教。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2008-10-13 14:53:21 | 只看该作者

    2

    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-25 07:20 , Processed in 0.088462 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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