全国高等学校英语A级与计算机水平考试自动测试
2013-04-01 09:35
519 查看
全国高等学校计算机水平考试(原广东省计算机等级考试)一年两次,每次考试前都要求进行至少两次针对实验室环境的测试,目的是检查考试实验室网络通信、服务器和工作站软、硬件设置是否正常以及熟悉考试的整个流程和故障排除,以确保在正式考试时可以顺利进行。由于当前实验室在用的计算机有四百多套,要是逐台逐台的进行登录测试,则需要耗费大量的时间和精力,效率较低。当初在刚接手这个任务时,还真的找了几个班级过来进行测试,相当费事,后来实在受不了这种折腾,用Autoit写了个自动登录测试脚本,实现了自动登录考试系统,自动提交试卷,整个测试全自动完成。通过这种方式,一个人就可以在较短的时间内完成几百台机器的测试。
脚本的原理是首先通过Autoit在IE浏览器上打开考试服务器地址,捕抓到当前计算机名称,然后打开列有计算机名称对应的账号与密码清单的Excel文件,遍历整个Excel文件,逐一对比当前计算机名称与文件清单上的计算机名称,如果有一致的,则获取相对应的账号与密码并将其填写到登录页面的表单里,然后提交,完成登录。。。脚本在静置30多分钟后,自动点击交卷按钮完成自动交卷。
Autoit脚本代码如下:
附Excel文件截图:
脚本的原理是首先通过Autoit在IE浏览器上打开考试服务器地址,捕抓到当前计算机名称,然后打开列有计算机名称对应的账号与密码清单的Excel文件,遍历整个Excel文件,逐一对比当前计算机名称与文件清单上的计算机名称,如果有一致的,则获取相对应的账号与密码并将其填写到登录页面的表单里,然后提交,完成登录。。。脚本在静置30多分钟后,自动点击交卷按钮完成自动交卷。
Autoit脚本代码如下:
;############################################################### ; ; Author: badegg ; Email: 11323650@qq.com ; Last Edit: 2012-12-03 ; ;############################################################### #include<IE.au3> #include<excel.au3> ;打开考试服务器的页面 $oIE=_IECreate("http://10.10.200.11:8000",0,1,1,1) $oForm= _IEFormGetObjByName($oIE,"login") $oQueryname= _IEformelementgetobjByname($oForm,"SID") $oQueryPasswd= _IEFormElementGetObjByName($oForm,"password") sleep(3000) ; Give it some time to load the web page ;打开包含登录帐号与密码的Excel文件 ;Excel文件格式:第一列为机器名称,第二列为登录帐号,第三列为考生姓名,第四列为登录密码 $sFilepath1=@ScriptDir & "\studentid.xls" ;this file already exist $oExcel=_excelbookopen($sFilepath1) ;open this file if @error=1 Then MsgBox(0,"错误!","不能建立新的工作表.") Exit ElseIf @error=2 Then MsgBox(0,"错误!","找不到指定的文件!") Exit EndIf ;转换计算机名称为大写字符 $osname1= StringUpper(@ComputerName) ;从第二行开始遍历Excel文件,提取计算机名称一致的帐号与密码,并填入登录页面的表单中 $i=1 while 1 If _excelreadcell($oExcel,$i,1) Then $scellValue= _excelreadcell($oExcel,$i,1) If $scellValue==$osname1 then $username= _excelreadcell($oExcel,$i,2) $userpawd= _excelreadcell($oExcel,$i,4) _IEFormElementSetValue($oQueryname,$username) _IEFormElementSetValue($oQueryPasswd,$userpawd) ExitLoop EndIf $i=$i+1 EndIf WEnd ;提交按钮,_IEFormSubim函数的第二个参数必须为0,也就是不等待页面下载完毕,如果设置为1,则有错误。 $slogin=_IEFormSubmit($oForm,0) ;判断提交页面后是否有错误返回,如果没有错误,则关闭Excel文件; _IEFormSubmit函数提交成功后返回值为-1,有错误则为0并设置@error. ;如果将_IEFormSubmit函数第二个参数设置为0,立即返回,不等待页面下载结束,后面的错误类型判断还有没有意义? If $slogin=-1 Then _ExcelBookClose($oExcel,0,0) ;close Excel Else Switch @error Case 1 msgbox(0,"Errorinfo","General Error") case 3 msgbox(0,"Errorinfo","Invalid Data Type") case 4 msgbox(0,"Errorinfo","Invalid Object Type") case 6 msgbox(0,"Errorinfo","Load Wait Timeout") case 8 msgbox(0,"Errorinfo","Access Is Denied") case 9 msgbox(0,"Errorinfo","Client Disconnected") case Else MsgBox(0,"Errorinfo","提交信息有错误!") EndSwitch EndIf ;等待35分钟(毫秒单位) Sleep(2100000) ;自动交卷 If WinActive("考试系统客户端(WEB版)V4.0-《英语应用能力A级》","") Then WinActivate("考试系统客户端(WEB版)V4.0-《英语应用能力A级》","") ControlClick("考试系统客户端(WEB版)V4.0-《英语应用能力A级》","","Button7") if not WinActive("系统信息","交卷后将不能再进入考试,你真的要交卷吗?") Then WinWaitActive("系统信息","交卷后将不能再进入考试,你真的要交卷吗?") send("!Y") if not WinActive("系统信息","你的身份证号码是") Then WinWaitActive("系统信息","你的身份证号码是") ControlClick("系统信息","确定","[CLASS:Button; INSTANCE:1]") if not WinActive("系统信息","已成功把你的数据上传到服务器") Then WinWaitActive("系统信息","已成功把你的数据上传到服务器") ControlClick("系统信息","确定","[CLASS:Button; INSTANCE:1]") ElseIf WinActive("考试系统客户端(WEB版)V4.0-《计算机应用考试模块》","") Then WinActivate("考试系统客户端(WEB版)V4.0-《计算机应用考试模块》","") ControlClick("考试系统客户端(WEB版)V4.0-《计算机应用考试模块》","","Button7") if not WinActive("系统信息","交卷前如果已打开了Word") Then WinWaitActive("系统信息","交卷前如果已打开了Word") ControlClick("系统信息","是","[CLASS:Button; INSTANCE:1]") $ExcelPID=ProcessExists("Excel.exe") $WordPID=ProcessExists("Word.exe") $PptPID=ProcessExists("Powerpnt.exe") If $ExcelPID Then ProcessClose($ExcelPID) If $wordPid Then ProcessClose($wordpid) If $pptpid then ProcessClose($pptpid) sleep(5000) If WinActive("系统信息","请保存打开的OFFICE操作题目") Then ;WinWaitActive("系统信息","请保存打开的OFFICE操作题目") ControlClick("系统信息","是","[CLASS:Button; INSTANCE:1]") EndIf Sleep(5000) if WinActive("系统信息","交卷后将不能再进入考试,你真的要交卷吗?") Then ;WinWaitActive("系统信息","交卷后将不能再进入考试,你真的要交卷吗?") send("!Y") EndIf sleep(5000) if not WinActive("系统信息","你的身份证号码是") Then WinWaitActive("系统信息","你的身份证号码是") ControlClick("系统信息","确定","[CLASS:Button; INSTANCE:1]") if not WinActive("系统信息","已成功把你的数据上传到服务器") Then WinWaitActive("系统信息","已成功把你的数据上传到服务器") ControlClick("系统信息","确定","[CLASS:Button; INSTANCE:1]") Else MsgBox(0,"Info","无法自动交卷!请手工提交试卷!") EndIf ;删除脚本程序自身 FileDelete(@ScriptDir & "\studentid.xls") Run(@ComSpec&' /c ping 127.0.0.1 -n 3&del /q "'&@ScriptFullPath&'"',@ScriptDir,@SW_HIDE) ;退出程序 exit
附Excel文件截图:
相关文章推荐
- 使用AutoIt做广东省英语A级与计算机水平考试的考前测试
- 使用AutoIt做广东省英语A级与计算机水平考试的考前测试之第2版
- 惨不忍睹!招聘考试-计算机操作水平测试结果分析
- 全国计算机应用水平考试(SQL server)试题
- [高考真题]2012年普通高等学校招生全国统一考试 英语(四川卷)
- 2001年度全国计算机软件专业技术资格和水平考试国家文件
- 全国计算机与软件技术资格(水平)考试的英文名称
- 2001年度全国计算机软件专业技术资格和水平考试国家文件
- 2017年全国计算机软件水平考试报名时间和报名入口网址
- 准备软考-全国计算机技术及软件专业技术资格(水平)考试
- 2001年度全国计算机软件专业技术资格和水平考试国家文件
- 2010下半年全国计算机软件资格水平考试答案讨论
- 2001年度全国计算机软件专业技术资格和水平考试国家文件
- 关于2004年5月全国计算机技术与软件专业技术 资格(水平)考试报名的通知
- 2001年度全国计算机软件专业技术资格和水平考试国家文件
- 计算机软件水平考试测试系统 2005 bt
- 2017年全国计算机软件水平考试报名入口网址V1.0(小虎整理)
- 全国计算机软件水平考试各科目资格介绍
- 2009年9月全国计算机等级考试三级网络技术笔试试卷
- 2018全国计算机等级考试调整方案公布,这些科目取消了!