51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3480|回复: 7
打印 上一主题 下一主题

[原创] systemutil.CloseProcessByName的工作原理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-11-6 10:26:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
哪位知道systemutil.CloseProcessByName的工作原理的? 脚本用大量的这个方法是不是不好 是不是对内存的使用会有影响?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-11-6 10:33:17 | 只看该作者
如 systemutil.CloseProcessByName "iexplore.exe" 
在任务管理起直接关闭进程.
脚本用大量的这个方法是不是不好 ?这是什么意思 没看懂
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-11-7 16:23:33 | 只看该作者

我想

CloseProcessByName

应该是用CreateToolhelp32Snapshot依次获取到所有进程,在每次移动到next进程之前比较szExeFile的值是否为iexplore.exe,如果是则TerminateProcess。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-11-7 20:29:17 | 只看该作者
是这样的 我现在在脚本里大量用了这个方法 但是实际效果是 经常弹出内存地址的错误提示  但是也不影响脚本的运行 每次报了错 它又自动把错误提示关了 手动在任务管理器里关掉进程又不会出现这个错误 很无赖..
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-11-8 13:44:46 | 只看该作者
CreateToolhelp32Snapshot这个API在不断枚举的过程中,会引发页面错误,需要从硬盘上读取到物理内存中,需要操作系统重新分配物理内存。

因而,多次使用它会频繁访问磁盘,系统变慢。你可以在任务管理器中查看内存使用。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-11-9 17:58:15 | 只看该作者
原帖由 wshyzhywx 于 2008-11-7 20:29 发表
是这样的 我现在在脚本里大量用了这个方法 但是实际效果是 经常弹出内存地址的错误提示  但是也不影响脚本的运行 每次报了错 它又自动把错误提示关了 手动在任务管理器里关掉进程又不会出现这个错误 很无赖..

仅仅是调用CloseProcessByName关闭IE浏览器进程,应该没有问题吧。无论实现机制如何,QTP也不可能跳过Windows操作系统这个级别。

至于“内存地址错误”,可以考虑一下是不是有如下情况:
1)关闭浏览器时,浏览器中的页面还在加载。这种情况下,手工关闭进程也可能出现异常;
2)两次调用之间间隔太短,QTP帮助中对该方法有这样的注释:
Note: QuickTest initially tries to close the process by sending a WM_CLOSE message to the process window. If the process is still open after 5 seconds, QuickTest terminates the process.
5秒间隔内调用两次相同方法,也许会有问题。

我现在的Case在两种情况下使用这个方法:
a)出现非预期异常的时候,关闭进程并退出当前Case;
b)在每个Case的起始(或者结束)时,清理当前运行环境;
在一个Case当中,如果脚本可以正常运行还是使用Browser.Close方法好些。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-11-10 16:09:24 | 只看该作者

回复 6# 的帖子

我不是在关浏览器时出现的问题 是关闭应用程序时出现的问题
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-11-11 13:54:22 | 只看该作者

回复 7# 的帖子

你会抓dump吗?(装windbg)
把其中一个出错的mini dump抓上来,然后运行:
Analyze -v

把结果贴上来。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-27 13:48 , Processed in 0.073344 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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