flower 2004-8-20 09:36
版主帮忙-----能否用winrunner实现定时检查?
我正在做一个版本接收的自动化测试,要求如下:
1. 定时(每隔1小时)检查网络某服务器是否有新版本目录.
2. 如果有,检查是否已传送完毕.
3. 如果已经传送完毕,进入新版本目录.
4. 开始对新版本进行自动化测试:安装-功能验证-卸载
5. 测试完成后,将测试结果以mail 的方式,发给相关人员.
问题:
1. 如果实现定时检查?
2. 根据什么去判断是否是新版本目录?建立时间?版本号?
3. 根据什么去判断是否已传送完毕?目录大小?
4. 用winrunner是否能实现?如果不能,有其它办法吗?如果解决?
用winrunner怎么实现这个action呢?
[[i] Last edited by flower on 2004-8-20 at 11:26 [/i]]
pcl2004_27 2004-8-20 10:27
WINRUNNER
1。提供几个方法参考
延迟运行,计算时间间隔,然后让WINRUNNER脚本运行
命令行定时启动WINRUNNER,配合系统计划任务实现
外部程序调用WINRUNNER
2。用脚本根据文件目录信息,文件(或文件夹)创建时间,目录大小(可能存在变化),文件数(可能存在变化),来分析。版本号的实现方式其实可以用编程方式读取EXE文件的版本号码,不过太复杂,没有必要,你可以根据其他的标识来进行,比如版本目录中很可能有个README,你分析他就可以了(可以借助其他方式)
3。如果有人传送版本完毕后,在你版本目录中建立一个文本文件,内容自定义,你只要用WINRUNNER来判断这个文件是否存在就可以了,目录大小,可以用API函数实现
4。任何工具都有实现方式,只要你动脑
其实这个也可以自己开发一个小工具实现,其实功能很简单,就是检测目录。
flower 2004-8-20 11:24
非常感谢pcl2004_27的及时回复!
1.我打算使用winrunner做一个循环检查,延迟时间,运行脚本.
因为新版本周期是一天,有时会在半夜传送.所以可以考虑用计划任务启动winrunner,或每天下班时手动触发也无妨.
2.新版本出现是以目录的形式,可以在目录上查找是否存在此名称目录.这绝不是个好办法,因为每天必须要手动有脚本更新一次版本名称.暂时想不出更好的办法.
* 但我使用obj_find_text为何无效?
3.用目录大小去判断是否传送完毕也是下策,大小也是变化的,只能判断其大于某一值,然后再等待十分钟,以确保传送完全.
* 但..如何取目录大小?
再次感谢!:)
pcl2004_27 2004-8-20 11:42
1。循环运行不是很好的办法,我没有写是因为循环很占用CPU时间,回导致机器陷入DOWN机状态,所以我第一个排除的就是这个方法
2。手动修改,不知道你说的是什么人?上传目录的人,还是你要用WR来进行修改?
你的问题是一系列下来的,基于你的第一个“问题定时(每隔1小时)检查网络某服务器是否有新版本目录”,我才会检查目录,这是针对你的问题最直接的解决方式。
而这次你说的“.新版本出现是以目录的形式,可以在目录上查找是否存在此名称目录.这绝不是个好办法,因为每天必须要手动有脚本更新一次版本名称.暂时想不出更好的办法.” ,这个和你第一次说的要求想”矛盾“,如果你是想做动态检测版本然后自动运行脚本进行自动化测试,那么这些放入的版本其实是一个版本控制的问题,应该约定的,你修改名称是为了什么,作的是否要表示版本,那么你和相应的接口人定义好目录名称就好了,对于WR来说,他毕竟是个工具,你把方式作到最简单,那么实现方式也是最优化的
”但我使用obj_find_text为何无效?“,你说的是什么无效?检测什么,目录?
3。我觉得这个问题你想的复杂了,我只是提共了一种解决方式,以下这些:文件(或文件夹)创建时间,目录大小(可能存在变化),文件数(可能存在变化),来分析,都可以作为解决方法。
脚本开发是特殊的开发方式,外在的条件是可以帮助你解决问题的
不应该孤立的看待问题!
“用目录大小去判断是否传送完毕也是下策,大小也是变化的,只能判断其大于某一值,然后再等待十分钟,以确保传送完全.”你说的这个问题,我已经想到了,所以才会建议你 “如果有人传送版本完毕后,在你版本目录中建立一个文本文件,内容自定义,你只要用WINRUNNER来判断这个文件是否存在就可以”
不知道你理解我说的么!欢迎探讨
flower 2004-8-20 12:26
重新梳理
首先,还是感谢:)
重新调整一下:
要实现的是:
1.每隔一小时查看网络中某服务器上是否有以新版本号命名的目录.
*首先,解决如何识别"以新版本号命名的目录".
版本号是每天更新的,如第一天是b101,第二天是b102,而且在服务器上会一直保留以往的版本.
本来打算能否智能一些,不需要每天在脚本中手动修改要寻找的新版本目录的名称,但发现太复杂了.暂时用一变量" new_build "代替,每天手动修改.
*其次,解决通过什么办法去寻找此名称目录.
我把放置版本目录的路径地址映射到M:如,M: - //server/testbuild/
脚本:打开M:
obj_find_text("syslistview32",new_build,array,TRUE)
判断array[0]是否为0以判断查找结果
(不好意思,这段一直未执行顺利)
[[i] Last edited by flower on 2004-8-20 at 12:28 [/i]]
flower 2004-8-20 12:39
1.但如果要实现"每隔1小时检查"只能通过循环实现.这个需求的提出是因为有时晚上会传build,所以想第一时间知道build的情况.
还有什么其它好的办法吗?
while(can't find)
{
wait(3600);
check
}
flower 2004-8-20 17:29
:)
我决定用C另编一个小工具来实现每隔一段时间去检查新版本,多谢版主pcl2004_27!:)
flower 2004-8-20 17:31
winrunner是否可以指定输出message的字体颜色?
pcl2004_27 2004-8-27 11:01
messagebox是系统级别的对话框
如果想修改,那么要修改系统设置才能成功
其实也可以自己调用外部对话框(自己做一个),通过dll调用等形式
girl04 2004-11-20 10:44
两位版主,到这里帮一下吧!我觉得和你们这张帖有点相似
[url]http://bbs.51testing.com/viewthread.php?tid=5024&fpage=1[/url]
chenxi8320 2005-4-19 15:20
学习中!继续努力
[[i] Last edited by chenxi8320 on 2005-10-11 at 11:20 [/i]]
lantianwei 2007-7-17 10:54
顶一下
syang0517 2007-7-20 15:27
x学习啊
zhanhuaijiang 2007-10-8 16:44
学习一下.顶一下