python測試用例傳送郵件用谷歌瀏覽器的方式
阿新 • • 發佈:2019-01-11
#-*- coding:utf-8 -*- #匯入單元測試 import unittest #匯入單元測試 from unittests import login #匯入自動化測試報告 import HTMLTestRunner #匯入os包 import os #匯入休眠包 import time #匯入傳送郵件的包 #首先匯入smtp伺服器的包 import smtplib #匯入正文需要用的包 from email.mime.text import MIMEText #新增主題包 from email.header import Header #例項化套件 suit = unittest.TestSuite() #將單元測試加入到套件裡面suit.addTest(unittest.makeSuite(login.Login)) #指定自動化測試報告的生成路徑 files = os.getcwd()+"jd.html" #指定讀寫方式wb 以二進位制的方式寫入rb 以二進位制的方式讀寫 rb+ 以二進位制的放既可以讀又可以寫 filename = open(files,'wb') #執行自動化測試報告 runner = HTMLTestRunner.HTMLTestRunner(stream=filename,title=u"京東",description=u"京東登入用例") runner.run(suit) #關流 filename.close() #郵件傳送功能#使用的是smtp伺服器 #指定傳送郵件的使用者名稱 send = "[email protected]" #指定接收郵件的郵箱 recever = "[email protected]" #指定郵件的主題 title = "今天早晨吃的麵包喝的牛奶" #指定需要傳送郵件的伺服器 emain_server = "smtp.163.com" #指定傳送郵件的使用者名稱和密碼 username = "[email protected]" password = "gaoxuejun123" #指定自動化測試報告的路徑 files2 = os.getcwd()+"jd.html"#通過流將報告讀取出來 filename1 = open(files2,"rb") #將流轉為字串 emain_name = filename1.read() #關閉流 filename1.close() print emain_name #設定郵件內容 msg = MIMEText(emain_name,_subtype="html",_charset="UTF-8") #設定主題 msg['Subject'] = Header(title,"UTF-8") #設定傳送者和接收者 msg['From'] = send msg['TO'] = recever #例項化smtp伺服器 smtp = smtplib.SMTP() #開始連線伺服器 smtp.connect(emain_server) #登入伺服器 smtp.login(username,password) #開始傳送郵件 smtp.sendmail(send,recever,msg.as_string()) #關閉伺服器 smtp.quit()
#-*- coding:utf-8 -*- #匯入單元測試 import unittest #匯入休眠時間包 import time #導包 from util import chromedriver #宣告類繼承單元測試 class Login(unittest.TestCase): #例項化物件的方法 #加註解 @classmethod def setUpClass(self): #例項化物件 self.chrome = chromedriver.ChromeDriver() pass #每一條測試用例執行之前的方法 def setUp(self): #開啟瀏覽器 self.chrome.ChromeDriver_start("https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F%3Fcu%3Dtrue%26utm_source%3Dbaidu-pinzhuan%26utm_medium%3Dcpc%26utm_campaign%3Dt_288551095_baidupinzhuan%26utm_term%3D0f3d30c8dba7459bb52f2eb5eba8ac7d_0_2dd9263a75fb469f9d5869da66d5fc22") pass #每一條測試用例執行結束時候的方法 def tearDown(self): #關閉 self.chrome.ChromeDriver_close() pass #測試用例點選關於我們 def test_about_me(self): #獲取當前頁面 self.current = self.chrome.getCurrentWindow() #點選關於我們 self.chrome.ClickLink("關於我們") # #設定休眠 # self.chrome.TimeLink("京東集團介紹") #切換視窗 self.chrome.switch_window(self.current) #獲取title self.title = self.chrome.getTitle() #進行斷言 self.assertEqual(self.title,u"企業簡介-京東商城") pass # def test_about_lianxi(self): # #獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # #點選關於我們 # self.chrome.ClickLink("聯絡我們") # # #設定休眠 # self.chrome.switch_window(self.current) # #獲取title # self.title = self.chrome.getTitle() # #進行斷言 # self.assertEqual(self.title,u"聯絡我們-京東商城") # pass # def test_about_rencai(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("人才招聘") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"京東招聘官網") # pass # def test_about_shangjia(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("商家入駐") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"商家入駐-入駐流程 - 京東全品類專題活動-京東") # pass # # def test_about_guanggao(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("廣告服務") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"廣告服務 - 京東全品類專題活動-京東") # pass # # def test_about_shouji(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("手機京東") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"手機京東 - 京東") # pass # # def test_about_youqing(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("友情連結") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"友情連結") # pass # # def test_about_xiaoshou(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("銷售聯盟") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"京東聯盟") # pass # # def test_about_shequ(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("京東社群") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"京東社群 - 京東電腦、辦公|遊戲裝置專題活動-京東") # pass # # # def test_about_gongyi(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("京東公益") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"京東公益") # pass # # # def test_about_English(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("English Site") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, "JD.com Global Online Shopping Site: Online Shopping for Electronics, Clothing, Toys and More") # pass # # # #賬號登入 # def test_about_dl(self): # # self.chrome.test_zhdl("login-tab-r").click() # self.chrome.czid("loginname").send_keys("") # self.chrome.czid("nloginpwd").send_keys("") # self.chrome.czid("loginsubmit").click() # time.sleep(2) # self.msg = self.chrome.test_zhdl("msg-error").text # self.assertEqual(self.msg,u"請輸入賬戶名和密碼") # # # 掃碼登入QQ # def test_about_saomaqq(self): # self.chrome.class_click("login-tab-l") # self.current = self.chrome.getCurrentWindow() # self.chrome.ClickLink("QQ") # self.chrome.switch_window(self.current) # self.title = self.chrome.getTitle() # self.assertEqual(self.title, u"QQ帳號安全登入") # # #掃碼登入微信 # # def test_about_saomawx(self): # self.chrome.class_click("login-tab-l") # self.current = self.chrome.getCurrentWindow() # self.chrome.ClickLink("微信") # self.chrome.switch_window(self.current) # self.title = self.chrome.getTitle() # self.assertEqual(self.title, u"微信登入") # # #點選登入頁面,調查問卷 # def test_about_diaochawenjuan(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # self.chrome.ClickLink("登入頁面,調查問卷") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"登入頁滿意度調查") # pass # #點選立即註冊 # def test_about_lijizhuce(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("立即註冊") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"個人註冊") # pass # # #點選開啟手機京東 # def test_about_shoujijingdong(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("手機京東") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"手機京東 - 京東") # pass # # #點選京東隱藏政策 # def test_about_yincangzhengce(self): # # 獲取當前頁面 # self.current = self.chrome.getCurrentWindow() # # 點選關於我們 # self.chrome.ClickLink("《京東隱私政策》") # # #設定休眠 # self.chrome.switch_window(self.current) # # 獲取title # self.title = self.chrome.getTitle() # # 進行斷言 # self.assertEqual(self.title, u"京東隱私政策") # pass # # def test_about_wjmm(self): # self.chrome.class_click("login-tab-r") # self.current = self.chrome.getCurrentWindow() # self.chrome.ClickLink("忘記密碼") # self.chrome.switch_window(self.current) # self.title = self.chrome.getTitle() # self.assertEqual(self.title, u"找回密碼")
#-*- coding:utf-8 -*- #匯入包 from selenium import webdriver #匯入休眠時間包 import time #導包 from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By #宣告類 class ChromeDriver(object): #開啟瀏覽器的方法 #self是指類本身,如果將變數賦值給self,也就是賦值給類本身的意思 def ChromeDriver_start(self,url): #開啟瀏覽器 self.driver = webdriver.Chrome(executable_path="E:\qudong\chromedriver") #設定視窗最大化 self.driver.maximize_window() #開啟指定網頁 self.driver.get(url) #設定休眠 主要儘量少使用強制休眠,多使用顯示休眠 pass #關閉瀏覽器的方法 def ChromeDriver_close(self): #關閉瀏覽器 self.driver.quit() pass #通過內容實現顯示休眠 def TimeLink(self,messasge): #檢查元素 msg = (By.LINK_TEXT,messasge) #設定休眠 WebDriverWait(self.driver,20,0.5).until(EC.presence_of_all_elements_located(msg)) pass #封裝一個通過內容查詢控制元件的方法 def FindLink(self,message): #呼叫顯示休眠 #self.TimeLink(message) #查詢 return self.driver.find_element_by_link_text(message) #點選的方法 def ClickLink(self,message): self.FindLink(message).click() #獲取當前頁面的方法 def getCurrentWindow(self): return self.driver.current_window_handle #獲取所有視窗進行切換的方法 def switch_window(self,current): #獲取所有的視窗 self.allwindow = self.driver.window_handles #使用for迴圈進行切換 for window in self.allwindow: if window != current: self.driver.switch_to_window(window) pass #查詢class def test_zhdl(self,message): return self.driver.find_element_by_class_name(message) def class_click(self,message): self.test_zhdl(message).click() #查詢id def czid(self,message): return self.driver.find_element_by_id(message) def id_click(self,message): self.czid(message).click() #獲取title的方法 def getTitle(self): return self.driver.title