今天主要演示Pytest框架的selenium插件,webdriver是主流的UI自動化測驗框架,在Pytest的測驗框架中也提供了對webdriver的支持,安裝的命令為:
pip3 install pytest-selenium,如下圖所示:

安裝成功后,就以測驗百度首先為案例,來撰寫一個簡單的測驗點,原始碼如下:
#!/usr/bin/env python
#!coding:utf-8
import pytest
def test_baidu_title(selenium):
selenium.get('http://www.baidu.com/')
assert selenium.title=='百度一下,你就知道'
def test_baidu_current_url(selenium):
selenium.get('http://www.baidu.com/')
assert selenium.current_url=='https://www.baidu.com/'
def test_baidu_so_getValue(selenium):
selenium.get('http://www.baidu.com/')
so=selenium.find_element_by_id('kw')
so.send_keys('傷心的辣條')
assert so.get_attribute('value')=='傷心的辣條'
撰寫如上的代碼后,執行如下命令,執行如上的測驗腳本:
pytest -v test_ui.py(#python模塊檔案) --driver Chrome 執行命令后的輸出資訊:

在上面的截圖資訊中,可以看到執行結果都是OK的,執行中打開的是Chrome的瀏覽器,對命令的部分進行逐步的解釋下,–driver可以理解為webdriver實體化后的物件,在測驗的腳本中,測驗函式里面的引數selenium,本質上就是webdriver實體化后的物件,Chrome很好理解,就是指定測驗的瀏覽器,如果是Firefox的瀏覽器,那么在命令執行中把Chrome瀏覽器修改為Firefox的瀏覽器,
在unittest的測驗框架中存在測驗韌體,也就是初始化以及清理的操作,在Pytest也可以通過fixture來完成這樣的一個效果,讓測驗腳本更加關注于具體的業務流程和邏輯操作,而不需要關心打開瀏覽器這樣的一個操作,如上面的案例,每個測驗點里面都呼叫了get()的方法來打開測驗的地址,這樣就顯得重復,對測驗代碼進行優化,優化后的代碼為:
#!/usr/bin/env python
#!coding:utf-8
import pytest
@pytest.fixture()
def init(selenium):
selenium.get('http://www.baidu.com/')
yield
selenium.quit()
def test_baidu_title(init,selenium):
assert selenium.title=='百度一下,你就知道'
def test_baidu_current_url(init,selenium):
assert selenium.current_url=='https://www.baidu.com/'
def test_baidu_so_getValue(init,selenium):
so=selenium.find_element_by_id('kw')
so.send_keys('傷心的辣條')
assert so.get_attribute('value')=='傷心的辣條'
在上面的代碼中可以看到,對初始化和清理的部分進行了很好的分離,在unittest的測驗框架中其實利用類的繼承思想,也是可以很好的對測驗韌體setUp()和tearDown()進行很好的分離,不過在Pytest的測驗框架中,這樣的一個程序更加簡單和直接,幾行代碼就能夠很輕松的搞定,再次執行,執行結果與第一次執行的結果一致,
軟體測驗是IT相關行業中最容易入門的學科~不需要開發人員燒腦的邏輯思維、不需要運維人員24小時的隨時待命,需要的是細心認真的態度和IT相關知識點廣度的了解,每個測驗人員從入行到成為專業大牛的成長路線可劃分為:軟體測驗、自動化測驗、測驗開發工程師 3個階段,

這里有我整理的一些資料,如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以加我們的軟體測驗交流群 313782132 ,里面有各種軟體測驗資料和技術交流,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/195769.html
標籤:其他
上一篇:QT 開發安卓藍牙 manufacturerData()回傳資訊不全問題
下一篇:二進制尋找毒酒
