Unittest框架和WebDriver
Unittest
Unittest的使用
1 import unittest 2 3 class Test1(unittest.TestCase): 4 @classmethod 5 def setUpClass(self): 6 print("execute setUpClass") 7 8 @classmethod 9 def tearDownClass(self): 10 print("execute tearDownClass") 11 12 def setUp(self): 13 print("execute setUp") 14 15 def tearDown(self): 16 print("execute tearDown") 17 18 def test_one(self): 19 print('execute test_one') 20 self.assertTrue('FOO'.isupper()) 21 22 def test_two(self): 23 print('execute test_two') 24 25 26 if __name__ == '__main__': 27 unittest.main()
模擬鍵盤鼠標移動
鍵盤:
dd.find_element_by_....(...).send_keys(Keys.ENTER) 點擊Enter
.......................................(Keys.BACK_SPACE) 點擊BACK_SPACE
.......................................(Keys.CONTROL,"a") 全選
.......................................(Keys.CONTROL,"c") 復制
.......................................(Keys.CONTROL,"v") 粘貼
.......................................(Keys.CONTROL,"x") 剪切
鼠標:
ActionChains(dd).double_click(定位到的一個具體頁面控件).perform() 雙擊
.................context_click................................... 右鍵
.................move_to_element................................. 光標懸停懸浮
1 #雙擊 2 ActionChains(dd).double_click(dd.find_element_by_xpath(".//*[@id='s-menu-1']/button")).perform() 3 #右鍵 4 ActionChains(dd).context_click(dd.find_element_by_xpath(".//*[@id='s-menu-1']/button")).perform() 5 #光標懸停懸浮 6 ActionChains(dd).move_to_element(dd.find_element_by_xpath(".//*[@id='s-menu-1']/button")).perform()
滾動條:
滾動條拖到底部
js="var q=document.documentElement.scrollTop=10000"
dd.execute_script(js)
滾動條拖到頂部
js="var q=document.documentElement.scrollTop=0"
dd.execute_script(js)
1 js="var q=document.documentElement.scrollTop=10000" 2 dd.execute_script(js) 3 time.sleep(3) 4 js="var q=document.documentElement.scrollTop=0" 5 dd.execute_script(js)
文件處理
文件:
打開一次只能讀或者寫,不能同時進行
ff=open("文件名","打開方式")
ff.write("寫入內容")
w+: 如果文件不存在,新建一個寫,如果文件存在,新建一個覆蓋
a+: 如果文件不存在,新建一個寫,如果文件存在,在文件末尾追加 【焦點默認在最后】
r+: 如果不文件不存在,報錯,如果文件存在,從前往后覆蓋
ff.read(數字):讀數字個字符 【從當前焦點開始】
ff.read():讀所有內容 【從當前焦點開始】
ff.readline():讀一行 【從當前焦點開始】
ff.readlines():讀所有行 list類型,每一行都是list內的元素 【從當前焦點開始】
ff.tell(): 返回當前焦點位置
ff.seek(數字):焦點跳轉到數字位置
ff.close() :關閉
csv文件:
import csv:
讀:
1 ff=open("aaa.csv","r+") #打開csv文件 2 cr=csv.reader(ff,dialect="excel") 3 4 cr:文件內容,循環獲取每一行內容 5 6 for c in cr: 7 8 print(c) 9 10 ff.close() #關閉
寫:
1 ff=open("bbb.csv","w+") #創建csv文件 2 cw=csv.writer(ff) #創建csv文件寫加載器 3 4 cw.writerow(寫入內容) #通過加載器寫數據到csv文件 5 6 ff.close() #關閉
測試報告
1 import unittest 2 from HTMLTestRunner import HTMLTestRunner 3 4 import test11 5 6 suite=unittest.TestSuite() #創建測試套件對象 7 loader=unittest.TestLoader()#創建測試用例加載器對象 8 suite.addTest(loader.loadTestsFromModule(test11))#通過用例加載器加載用例到測試套件 9 10 ff=open("testReport.html","wb+") #創建測試報告文件 11 #創建HTMLTestRunner對象 12 runer=HTMLTestRunner(stream=ff,title="然之測試", description="然之測試然之測試然之測試然之測試") 13 runer.run(suite) #通過HTMLTestRunner對象執行測試用例 14 ff.close() #關閉報告文件