在某些情況下,測試過程會涉及到操作系統的重啓過程,比如說測試操作系統重啓後,程序的啓動時間評測;這時如果操作系統設置了用戶名密碼的情況下,就會涉及到如何實現Windows的自動登錄。
首先,看下Windows如何實現自動登錄,看下如何手動操作吧,百度經驗:http://jingyan.baidu.com/article/54b6b9c0d7bf6c2d583b47f2.html
瞭解了手動操作的過程,自動化中如何實現呢?修改註冊表......
ok,看下HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon項下,含有默認用戶名、密碼、是否自動登錄等信息,那麼只需要保存用戶名密碼到此項下,系統就可以自動登錄了,看下代碼:
def SetAutoLoginWin(username,password):
"""
| #設置window自動登錄
"""
key = None
syswow = os.getenv("windir")+"\\SysWOW64"
for i in range(2):
try:
if os.path.exists(syswow):
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"Software\Microsoft\Windows NT\CurrentVersion\Winlogon", 0, _winreg.KEY_ALL_ACCESS|win32con.KEY_WOW64_64KEY)
else:
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r"Software\Microsoft\Windows NT\CurrentVersion\Winlogon", 0, _winreg.KEY_ALL_ACCESS)
except:
pass
if key:
break
else:
_winreg.CreateKey(_winreg.HKEY_LOCAL_MACHINE,r"Software\Microsoft\Windows NT\CurrentVersion\Winlogon")
try:
_winreg.SetValueEx(key,"DefaultUserName",0,_winreg.REG_SZ,username)
_winreg.SetValueEx(key,"DefaultPassword",0,_winreg.REG_SZ,password)
_winreg.SetValueEx(key,"AutoAdminLogon",0,_winreg.REG_SZ,"1")
_winreg.SetValueEx(key,"ForceAutoLogon",0,_winreg.REG_SZ,"1")
except:
return False
return True
同樣,清除自動化登錄操作,也比較簡單,只需要將註冊表項清除掉就OK了,代碼如下
#清除window自動登錄
def DelAutoLoginWin():
"""
| #清除window自動登錄
"""
items=("DefaultUserName","DefaultPassword","AutoAdminLogon","ForceAutoLogon")
for item in items:
DeleteRegValue(r"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon",item)
這樣,自動化中涉及到需要重啓的操作時,我們就可以讓系統自動登錄,並繼續執行腳本了···
轉載請註明:http://blog.csdn.net/sogouauto
探索測試奧義,交流測試技術,歡迎關注“搜狗測試”