unittest模塊實現多個ui腳本函數自動化運行(參考代碼示例)
第一步:導入unittest類
第二步:定義一個類繼承unittest.TestCase類,顧名思義這個TestCase類是測試用例類的意思
setUp和teardown都是TestCase中定義的方法
setUp用來做測試執行前的初始化工作:下面示例用來獲取瀏覽器驅動
teardown用來做測試執行后的清理工作:下面示例用來退出瀏覽器
第三步:編寫測試方法:示例2個方法(登錄百度操作搜索,登錄qq點擊新聞連接),注意只有方法名前面以test開頭才會執行,而且運行順序是按字符串大小所以定義了01,02做一個順序排列
第四步:加上if __name__ == "__main__":unittest.main() 作用:只有當前類本身運行的時候,才會執行這個類的test_01_search_baidu,test_02_search_qq_news測試方法,其他類不會運行
# -*- coding:utf-8 -*- import unittest from selenium import webdriver import time #QingQing類的名字任意命名,但命名()里的unittest.TestCase就是去繼承這個類,類的作用就是可以使runner.run識別 class QingQing(unittest.TestCase): #unittest.TestCase類定義的setUpClass和tearDownClass方法前一定要加@classmethod, #setUpClass在這個類里面是第一個執行的方法 #tearDownClass在這個類里面是最后一個執行的方法 #中間的執行順序是通過字符的大小進行順序執行,命名必須test_開頭 #打開瀏覽器,獲取配置 @classmethod def setUpClass(self): # 實例化ChromeOptions options = webdriver.ChromeOptions() # 關閉瀏覽器提示信息 options.add_argument('disable-infobars') # 瀏覽器全屏 options.add_argument('start-fullscreen') driverpath = r'D:\angel\angelauto\littlebee1\driver\chromedriver.exe' #driver驅動獲取后可以被其他方法調用 self.driver = webdriver.Chrome(driverpath, options=options) def test_01_search_baidu(self): # 訪問百度首頁 self.driver.get(r"http://www.baidu.com") # 百度輸入框輸入 self.driver.find_element_by_id("kw").send_keys("懶勺") # 點百度一下 self.driver.find_element_by_id("su").click() #等待時間只是為了讓你可以看到目前效果,可以省略 time.sleep(2) #執行商品收費功能 def test_02_search_qq_news(self): # 訪問qq首頁 self.driver.get(r"http://www.qq.com") # 點新聞鏈接 self.driver.find_element_by_xpath("//a[text()='新聞']").click() # 等待時間只是為了讓你可以看到目前效果,可以省略 time.sleep(3) #退出瀏覽器 @classmethod def tearDownClass(self): self.driver.quit() if __name__ == "__main__": unittest.main()