一.項目介紹
目的:
測試某官方網站登錄功能模塊可以正常使用
用例:
1.輸入格式正確的用戶名和正確的密碼,驗證是否登錄成功; 2.輸入格式正確的用戶名和不正確的密碼,驗證是否登錄失敗,並且提示信息正確; 3.輸入格式正確的用戶名和任意密碼,驗證是否登錄失敗,並且提示信息正確; 4.用戶名和密碼兩者都為空,驗證是否登錄失敗,並且提示信息正確; 5.用戶名和密碼兩者之一為空,驗證是否登錄失敗,並且提示信息正確;
環境:
Windows10 +Python3.6+selenium3.13+Pycharm
環境我想大多數人都會搭建,有事沒事找百度,一搜一籮筐,哈哈!我自己剛學的時候也是各種問題各種百度,好在都解決了,感謝有度娘這么強大的存在!這里就不寫環境怎么搭建了,直接進入主題
二.腳本設計
目的:
我們的測試腳本需要達到:腳本可移植,腳本模塊化,測試數據分離,輸出測試報告 等目的
腳本設計模式:
代碼實現:
項目目錄結構
注:下面的文件存放在同一個目錄下
login_test.py 文件

1 #! user/bin/python 2 ''' 3 代碼說明:麥子學院登錄模塊自動化測試用例腳本 4 編寫日期: 5 設置者:linux超 6 ''' 7 8 import time 9 from selenium import webdriver 10 from webinfo import webinfo 11 from userinfo import userinfo 12 from log_fiile import login_log 13 from pathlib import Path 14 15 def open_web(): 16 driver = webdriver.Firefox() 17 driver.maximize_window() 18 return driver 19 20 def load_url(driver,ele_dict): 21 driver.get(ele_dict['Turl']) 22 time.sleep(5) 23 24 def find_element(driver,ele_dict): 25 # find element 26 driver.find_element_by_class_name(ele_dict['image_id']).click() 27 if 'text_id' in ele_dict: 28 driver.find_element_by_link_text('登錄').click() 29 30 user_id = driver.find_element_by_id(ele_dict['userid']) 31 pwd_id = driver.find_element_by_id(ele_dict['pwdid']) 32 login_id = driver.find_element_by_id(ele_dict['loginid']) 33 return user_id,pwd_id,login_id 34 35 def send_val(ele_tuple,arg): 36 # input userinfo 37 listkey = ['uname','pwd'] 38 i = 0 39 for key in listkey: 40 ele_tuple[i].send_keys('') 41 ele_tuple[i].clear() 42 ele_tuple[i].send_keys(arg[key]) 43 i+=1 44 ele_tuple[2].click() 45 def check_login(driver,ele_dict,log,userlist): 46 result = False 47 time.sleep(3) 48 try: 49 err = driver.find_element_by_id(ele_dict['error']) 50 driver.save_screenshot(err.text+'.png') 51 log.log_write('賬號:%s 密碼:%s 提示信息:%s:failed\n' %(userlist['uname'],userlist['pwd'],err.text)) 52 print('username or password error') 53 except: 54 print('login success!') 55 log.log_write('賬號:%s 密碼:%s :passed\n'%(userlist['uname'],userlist['pwd'])) 56 #login_out(driver,ele_dict) 57 return True 58 return result 59 def login_out(driver,ele_dict): 60 driver.find_element_by_class_name(ele_dict['logout']).click() 61 ''' 62 def screen_shot(err): 63 i = 0 64 save_path = r'D:\pythondcode\capture' 65 capturename = '\\'+str(i)+'.png' 66 wholepath = save_path+capturename 67 if Path(save_path).is_dir(): 68 pass 69 else: 70 Path(save_path).mkdir() 71 while Path(save_path).exists(): 72 i+=1 73 capturename = '\\'+str(i)+'.png' 74 wholepath = save_path + capturename 75 err.screenshot(wholepath) 76 ''' 77 def login_test(): 78 log = login_log() 79 #