日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python自动化框架2019_《一头扎进》系列之Python+Selenium自动化测试框架实战篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!...

發布時間:2024/9/19 python 28 豆豆

1. 簡介

本文開始介紹如何通過unittest來管理和執行測試用例,這一篇主要是介紹unittest下addTest()方法來加載測試用例到測試套件中去、用addTest()方法來加載我們測試用例到suite中去和利用discover()方法去加載一個路徑下所有的測試用例。

2. addTest()方法

這里首先介紹unittest下addTest()方法來加載測試用例到測試套件中去。為了演示效果,我在前面文章的腳本基礎上,新建了一個測試腳本,這個測試腳本有一個測試用例,加上前面的測試腳本,一共就是三個測試用例,前面那個測試類里面包括兩個測試用例。

新建的測試腳本,test_get_page_title.py代碼如下:

2.1 代碼實現:

2.2 參考代碼:

#-*- coding:utf-8 -*-

#1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

#2.注釋:包括記錄創建時間,創建人,項目名稱。

'''Created on 2019-12-24

@author: 北京-宏哥 QQ交流群:705269076

Project: 《《一頭扎進》系列之Python+Selenium框架設計篇5- 價值好幾K的框架,呦!這個框架還真牛叉哦!!!'''

#3.導入模塊

importunittestfrom automation_framework_demo.framework.browser_engine importBrowserEnginefrom automation_framework_demo.pageobjects.baidu_homepage importHomePageclassGetPageTitle(unittest.TestCase):

@classmethoddefsetUpClass(cls):

browser=BrowserEngine(cls)

cls.driver=browser.open_browser(cls)

@classmethoddeftearDownClass(cls):

cls.driver.quit()deftest_get_title(self):

homepage=HomePage(self.driver)print(homepage.get_page_title())

2.3 運行結果:

運行代碼后,控制臺打印如下圖的結果

今天來學習下,如果加載這兩個測試類文件里面的3個測試腳本。在unittest下有一個管理測試套件的叫TestSuit(),我們要使用這個測試套件,需要先初始化一個suite實例,然后這個實例有一個addTest()的方法,可以加載不同類里面的不同測試函數,格式這樣的 addTest(測試類的類名(‘測試函數名稱,就是test開頭的函數’)),我們在testsuites這個包下新建一個TestRunner.py文件用來管理我們的用例啟動方式。

來看看這個TestRunner.py的內容

2.4 代碼實現:

2.5 參考代碼:

#-*- coding:utf-8 -*-

#1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

#2.注釋:包括記錄創建時間,創建人,項目名稱。

'''Created on 2019-12-24

@author: 北京-宏哥 QQ交流群:705269076

Project: 《《一頭扎進》系列之Python+Selenium框架設計篇5- 價值好幾K的框架,呦!這個框架還真牛叉哦!!!'''

#3.導入模塊

importunittest#from automation_framework_demo.testsuits import testsuits

from automation_framework_demo.testsuits.baidu_search2 importBaiduSearchfrom automation_framework_demo.testsuits.test_get_page_title importGetPageTitle

suite=unittest.TestSuite()

suite.addTest(BaiduSearch('test_baidu_search'))

suite.addTest(BaiduSearch('test_search2'))

suite.addTest(GetPageTitle('test_get_title'))if __name__ == '__main__':#執行用例

runner =unittest.TextTestRunner()

runner.run(suite)

2.6 運行結果:

運行代碼后,控制臺打印如下圖的結果

這個方法有沒有局限性呢?當然有,加入你有幾百個測試類,你是不是也一直這樣手動去添加?有沒有其他更好的方法去加載我們的測試腳本,關于這個問題,請緊跟宏哥的腳步繼續往下看、往下走。

3. makeSuite()方法

前面文章介紹了如何用addTest()方法來加載我們測試用例到suite中去,本文介紹利用makeSuite()方法,一次性加載一個類文件下所有測試用例到suite中去。還是利用前面一篇文章中的測試腳本,來看看TestRunner.py如何寫。

3.1 代碼實現:

3.2 參考代碼:

#-*- coding:utf-8 -*-

#1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

#2.注釋:包括記錄創建時間,創建人,項目名稱。

'''Created on 2019-12-24

@author: 北京-宏哥 QQ交流群:705269076

Project: 《《一頭扎進》系列之Python+Selenium框架設計篇5- 價值好幾K的框架,呦!這個框架還真牛叉哦!!!'''

#3.導入模塊

importunittest#from automation_framework_demo.testsuits import testsuits

from automation_framework_demo.testsuits.baidu_search2 importBaiduSearchfrom automation_framework_demo.testsuits.test_get_page_title importGetPageTitle'''suite = unittest.TestSuite()

suite.addTest(BaiduSearch('test_baidu_search'))

suite.addTest(BaiduSearch('test_search2'))

suite.addTest(GetPageTitle('test_get_title'))'''suite=unittest.TestSuite(unittest.makeSuite(BaiduSearch))if __name__ == '__main__':#執行用例

runner =unittest.TextTestRunner()

runner.run(suite)

3.3 運行結果:

運行代碼后,控制臺打印如下圖的結果

缺陷: makeSuite()方法雖然比前面文章的addTest()方法有了一定的效率提升,在添加測試用例到測試套件過程。但是這個方法也有很多缺點,我不可能把所有項目腳本都放一個測試類文件吧。在unittest中還是有很多方法可以用來添加測試用例到suite中,makeSuite(類名稱),只是一種,你可以多看看unittest的文檔介紹。接下來我們介紹如何一次性加載一個文件目錄下所有測試用例。

4. discover()方法

繼續接著介紹,如何利用unittest管理和執行測試用例的問題,這里我們還是利用之前已經有的三條測試用例,如果你跳過了前面文章,請回到框架設計篇的第八篇和第七篇,里面有相關測試類的文件。本文來介紹,如果利用discover()方法去加載一個路徑下所有的測試用例。這個方法是不是太適合我們現在的需求,例如我只需要跑testsuite包下所有測試用例,不管在里面有多少個包和多少個測試類,只需要用discover()搞定,來看看這個場景下TestRunner.py如何寫。

4.1 代碼實現:

4.2 參考代碼:

#-*- coding:utf-8 -*-

#1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行

#2.注釋:包括記錄創建時間,創建人,項目名稱。

'''Created on 2019-12-24

@author: 北京-宏哥 QQ交流群:705269076

Project: 《《一頭扎進》系列之Python+Selenium框架設計篇5- 價值好幾K的框架,呦!這個框架還真牛叉哦!!!'''

#3.導入模塊

importunittest

suite= unittest.TestLoader().discover("testsuits")if __name__ == '__main__':#執行用例

runner =unittest.TextTestRunner()

runner.run(suite)

4.3 運行結果:

運行代碼后,控制臺打印如下圖的結果

上面的testsuits是可以包名,也可以是一個文件夾名稱,在實際腳本開發過程中,最后都采用這個方法來批量管理和執行幾百上千的測試用例。下一篇內容,大概會介紹如何利用HTMLTestRunner.py這個開源的插件,生成測試報告,這個測試報告是一個HTML的格式。介紹完了生成報告文章,框架設計系列教程就會結束,不打算過多介紹其他技能點。

5. 小結

5.1 報錯提示:ImportError: Start directory is not importable: 'D:\\PyCharm-Workspace\\testcases'

以下兩種路徑實現代碼存放在path.py中,查看區別:

base_dir = os.path.dirname(os.getcwd()) # 第一種,當前目錄

# os.getcwd() 定位路徑為common

# os.path.dirname(os.getcwd()) 定位路徑為API_work

base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 第二種,該代碼存放的根目錄

# os.path.abspath(__file__) 定位路徑為path.py

# os.path.dirname(os.path.abspath(__file__)) 定位路徑為common

# os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 定位路徑為API_work

以上兩種方式,在path.py中執行,print輸出均為:

但第一種方式,在run.py中調用path.py中的base_dir屬性,查找 "test_*.py" 的根目錄就會出現下以報錯:

原因:

1、在run.py中調用path.py 中的 os.getcwd() 代碼 ,就是定位 run.py 的根目錄;

即:

os.getcwd() 定位路徑為API_work

os.path.dirname(os.getcwd()) 定位路徑為API_work的上一層目錄,因找不到上一層目錄,所以報錯;

2、在run.py中調用第二種方式,是查找path.py的根目錄,所以可執行正常;

總結:

其他模塊會調用固定路徑時,不要使用 os.getcwd() 當前定位方式來實現;使用 os.path.abspath(__file__) 實現。

好了,今天的分享就到這里吧!!!謝謝各位的耐心閱讀。有問題加群交流討論

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波推薦不要忘記哦!!!

別忘了點 推薦留下您來過的痕跡

總結

以上是生活随笔為你收集整理的python自动化框架2019_《一头扎进》系列之Python+Selenium自动化测试框架实战篇6 - 价值好几K的框架,呦!这个框架还真牛叉哦!!!...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产欧美精品在线观看 | 国产精品久久影视 | 最新黄色网页 | 精品视频无码一区二区三区 | 看片在线观看 | 深爱五月网| 久久久久久久国产视频 | 欧美国产大片 | 久久久999精品视频 国产在线xx | 一级免费看 | 光溜溜视频素材大全美女 | 久久精品动漫 | 亚洲aaaaaa| 欧洲黄色网 | 国产成人三级在线观看视频 | 理论片琪琪午夜电影 | 夜夜操夜夜爽 | 亚洲狠狠婷婷综合久久久久图片 | 麻豆视频国产 | 丁香六月久久 | 91欧美一区二区三区 | 久久国产精品网站 | 欧美日韩中文在线视频 | 色婷婷网| 波多野结衣在线一区二区 | 夫妻啪啪呻吟x一88av | 国产社区在线 | 免费午夜视频在线观看 | 制服诱惑一区二区 | 激情九月婷婷 | 亚洲综合影视 | 午夜剧场免费在线观看 | 欧美九九| 四虎久久久 | 在线观看成人黄色 | 在线色网 | 无码人妻av免费一区二区三区 | 陪读偷伦初尝小说 | 色性av | 真实乱视频国产免费观看 | 78m78成人免费网站 | 在线看片中文字幕 | 18成人免费观看网站下载 | 成人福利网址 | 日韩裸体视频 | 国产视频xxx | 不卡影院 | 国产一级免费视频 | 中文字幕一二三四区 | 教练含着她的乳奶揉搓揉捏动态图 | 新97超碰 | 中文理论片 | 黑人巨大猛烈捣出白浆 | 欧美交 | 国产三级av片 | 欧美激情亚洲色图 | 久草色在线 | 亚洲视频一二三四 | 美女乱淫| 午夜免费播放观看在线视频 | 99视频免费| 一久久 | 超碰2019| 国内三级视频 | 欧性猛交ⅹxxx乱大交 | 插插操操| 男女免费视频 | 新版红楼梦在线高清免费观看 | 国产精品久久av无码一区二区 | 亚洲美女视频在线 | 少妇1~3伦理 | 亚洲天堂视频一区 | 国产综合在线观看 | 91精品人妻一区二区三区果冻 | 色综合久久天天综合网 | 日本三级在线 | 日本高清视频在线播放 | www.日本高清 | 欧美日韩欧美日韩在线观看视频 | 中文字幕在线不卡 | 黄在线免费观看 | 黄色片视频免费 | 麻豆视频精品 | 午夜精品福利一区二区蜜股av | 日皮视频免费看 | 白洁av| videos另类灌满极品另类 | 亚洲精品xxx | 福利二区视频 | 黄色av网址大全 | 国产高潮视频 | 91福利小视频 | 欧美色图网址 | 18性xxxxx性猛交 | 欧美污污视频 | 日韩1级片 | 我要看免费的毛片 | av资源网在线观看 | 亚洲第一视频在线观看 |