因为项目需要,需要测试某些极限并发情况下的程序性能和网络请求的正确性,随手以vbs和最简单的批处理实现了一个小的自动化系统,当然一些路径及注册表读取等都没有去做实现而是写死了的。
首先,运行的vbs文件如下:
set ws=createobject("wscript.shell") ws.Run "d:/startFiddler.bat" WScript.Sleep 30000 While 1 Call killProcess() ws.Run "d:/clean.bat" WScript.Sleep 5000 Set FSO = CreateObject("Scripting.FileSystemObject") FSO.CopyFolder "C:/Documents and Settings/Administrator/Application Data/old-360se", "C:/Documents and Settings/Administrator/Application Data/360se", True WScript.Sleep 2000 ws.Run "d:/startse.bat" WScript.Sleep 30000 ws.Run "d:/clean.bat" Call killProcess() Wend Function killProcess(strProcess) process = strProcess On Error Resume Next Set objWMIService =GetObject("winmgmts:{impersonationLevel=impersonate}!//./root/cimv2") Set colProcessList=objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name='" &process& "'") For Each objProcess in colProcessList objProcess.Terminate() '这句就是结束进程的代码 Next End Function
第二,startFiddler.bat存在的目的是启动fiddler进行网络请求的监控,当然这里fiddler使用了filter进行过滤了,不然一段时间后fidder就可以占满机器内存了。这里使用批处理的原因是vbs处理带空格路径的问题忘记怎么弄了,回头再处理。
startFiddler.bat内容如下:
"C:/Program Files/Fiddler2/Fiddler.exe"
第三,在每次执行前做必要的清理工作。
clean.bat内容如下:
del /f/s/q "C:/Documents and Settings/Administrator/Application Data/360SE/*.*"
第四,数据初始化,也即第一段代码中的copyFolder()操作部分。
第五,启动测试程序,即startse.bat
内容如下:
d:/startse.vbs d:/startse.vbs d:/startse.vbs d:/startse.vbs d:/startse.vbs d:/startse.vbs d:/startse.vbs
startse.vbs的内容如下
set ws=createobject("wscript.shell") ws.Run "C:/360/360se3/360SE.exe","9",false ws.Run "C:/360/360se3/360SE.exe","9",false ws.Run "C:/360/360se3/360SE.exe","9",false ws.Run "C:/360/360se3/360SE.exe","9",false
第六,结束进行,即执行killProcess(),内容在第一段代码中。
这样一个简单的稳定性测试的自动化系统就已经建立了。