前言
pytest是一款強大的python自動化測試工具,可以勝任各種類型或者級別的軟件測試工作。pytest提供了豐富的功能,包括assert重寫,第三方插件,以及其他測試工具無法比擬的fixture模型。pytest是一個軟件測試框架,是一款命令行工具,可以自動找到測試用例執行,并且回報測試結果。有豐富的基礎庫,可以大幅度提高用戶編寫測試用例的效率。具備擴展性,用戶可以自己編寫插件,或者安裝第三方提供的插件??梢院苋菀椎嘏c其他工具集成到一起使用。比如持續集成,web自動化測試等。
下面列舉了一些pytest相對于其他框架的優點
1. 簡單的測試可以很簡單的編寫
2. 復雜的測試也可以簡單的編寫
3. 測試的可讀性
4.易于上手
5. 斷言僅使用原生的assert關鍵字,而不是像unittest那樣使用self.assert**那樣
6. pytest可以運行unittest和nose編寫的測試用例
上面大部分結論其實也不是我個人總結的,是我從一本書上看到的,因為我也是剛剛接觸這個框架,了解的也并不多。還有一個重要原因就是寫文章不寫點所謂的科學理論好像缺少點啥……(別管了前面了*總之一句話:pytest就是一個測試框架和unittest一類,功能很強,支持好多插件,用例寫起來簡單,代碼邏輯性強,值得學習!實際工作中能不能用,能不能用好那就要靠自己了!)^_^廢話不多說!
編寫第一個測試函數(用例)
from selenium import webdriver def testOpenUrl(): try: driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title assert title == '百度一下,你就知道' # 斷言 except AssertionError: raise AssertionError('斷言失敗!') driver.quit()
可以看到用例很簡單,就是一個普通的函數(驅動瀏覽器,打開百度首頁,斷言首頁的title是否正確),那么pytest是如何運行測試用例的呢?
我們可以通過cmd終端,并且換到當前用例所在的目錄,輸入 pytest 即可,運行結果如下所示
pytest執行用例命令行參數
上面我們已經學會了執行用例的命令 就是pytest, 那么真的就這么簡單了嗎?其實不然,pytest 還提供了很多可供我們執行用例的命令行參數,下面我們就一一介紹并演示
1.-v ?。簆ytest -v 說明:可以輸出用例更加詳細的執行信息,比如用例所在的文件及用例名稱等
2.-s ?。簆ytest -s 說明:輸入我們用例中的調式信息,比如print的打印信息等,我們在上面用例8行加上一句 print(driver.title),我們再運行一下我們的用例看看
3.-m :pytest -m ”標記“ 說明:執行特定的測試用例。我們再次修改一下我們的用例,并添加一個新的用例
from selenium import webdriver import pytest @pytest.mark.run_this_testcase def testOpenUrl(): try: driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title print(driver.title) assert title == '百度一下,你就知道' # 斷言 except AssertionError: raise AssertionError('斷言失敗!') driver.quit() def testBaidu(): driver = webdriver.Firefox() # 打開瀏覽器 driver.get('http://www.baidu.com') # 訪問百度 title = driver.title # 獲取百度首頁的title assert title == '百度一下,你就知道' # 斷言
我們可以看到只執行了被標記的用例,新添加的用例并沒有被執行
4.-k :pytest -k "關鍵字" 說明:執行用例包含“關鍵字”的用例
5.-q ?。簆ytest -q 說明:簡化控制臺的輸出,可以看出輸出信息和上面的結果都不一樣, 下圖中有兩個..點代替了pass結果
以上5個參數,大家可以自己嘗試一下,下一篇文章會繼續講解其他幾個常用的參數的使用以及pytest是如何發現測試用例的!
下篇將繼續更新其他一些命令選項的使用,和pytest收集測試用例的規則!
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
