<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      手把手搭建Python+Pytest+Selenium自動(dòng)化環(huán)境,從零開始一點(diǎn)都不難!

      今天給大家?guī)?lái)一篇純干貨教程,保證小白也能看懂學(xué)會(huì)!

      最近很多朋友在問(wèn):“二黑,我想學(xué)自動(dòng)化測(cè)試,但環(huán)境都搭不起來(lái),老是報(bào)錯(cuò)怎么辦?”別擔(dān)心,今天我就手把手教你搭建Python+Pytest+Selenium自動(dòng)化測(cè)試環(huán)境,從安裝到第一個(gè)腳本運(yùn)行,每個(gè)步驟都配了詳細(xì)的截圖,跟著做絕對(duì)沒問(wèn)題!

      01 為什么要選這個(gè)技術(shù)棧?

      先簡(jiǎn)單說(shuō)說(shuō)為什么推薦這個(gè)組合:

      Python:語(yǔ)法簡(jiǎn)單,上手快,社區(qū)資源豐富,絕對(duì)是自動(dòng)化測(cè)試的首選語(yǔ)言
      Pytest:比unittest更強(qiáng)大、更靈活的測(cè)試框架,插件多,寫法簡(jiǎn)單
      Selenium:Web自動(dòng)化測(cè)試的老大哥,支持多種瀏覽器,功能強(qiáng)大

      這三個(gè)加起來(lái),簡(jiǎn)直就是自動(dòng)化測(cè)試的“黃金組合”!

      02 環(huán)境搭建詳細(xì)步驟

      好了,廢話不多說(shuō),我們直接進(jìn)入正題!

      第一步:安裝Python

      Python是我們的基礎(chǔ),必須首先安裝。

      1. 下載Python

      訪問(wèn)Python官網(wǎng):https://www.python.org/downloads/

      https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
      Python官網(wǎng)下載頁(yè)面

      建議下載Python 3.8及以上版本,我這里以Python 3.9為例。記得要勾選"Add Python to PATH"!

      2. 驗(yàn)證安裝

      安裝完成后,打開命令行(Win+R,輸入cmd),輸入:

      python --version

      如果顯示Python版本號(hào),說(shuō)明安裝成功!

      https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
      驗(yàn)證Python安裝

      遇到問(wèn)題怎么辦?

      如果提示"python不是內(nèi)部或外部命令",說(shuō)明環(huán)境變量沒配置好。手動(dòng)添加一下:

      • 右鍵"此電腦"→"屬性"→"高級(jí)系統(tǒng)設(shè)置"→"環(huán)境變量"

      • 在系統(tǒng)變量中找到Path,雙擊編輯

      • 添加Python的安裝路徑和Scripts路徑,比如:

      C:\Python39\C:\Python39\Scripts\

      第二步:安裝Pytest

      Pytest是我們的測(cè)試框架,安裝超簡(jiǎn)單。

      1. 使用pip安裝

      在命令行中輸入:

      pip install pytest

      2. 驗(yàn)證安裝

      安裝完成后,輸入:

      pytest --version

      會(huì)顯示pytest的版本信息,這樣就OK了!

      3. 安裝常用插件

      為了后面用著更方便,我們可以一次性安裝幾個(gè)常用插件:

      pip install pytest-html        # 生成HTML報(bào)告pip install pytest-xdist       # 分布式測(cè)試pip install pytest-rerunfailures  # 失敗重試pip install pytest-ordering    # 控制用例執(zhí)行順序

      第三步:安裝Selenium

      Selenium是重頭戲,用來(lái)控制瀏覽器進(jìn)行自動(dòng)化測(cè)試。

      1. 安裝Selenium庫(kù)

      在命令行中輸入:

      pip install selenium

      2. 下載瀏覽器驅(qū)動(dòng)

      Selenium需要瀏覽器驅(qū)動(dòng)才能工作,以Chrome為例:

      • 查看Chrome版本:在瀏覽器地址欄輸入chrome://version/

      • 訪問(wèn)ChromeDriver官網(wǎng):https://chromedriver.chromium.org/

      • 下載對(duì)應(yīng)版本的驅(qū)動(dòng)

      https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
      ChromeDriver下載頁(yè)面

      3. 配置瀏覽器驅(qū)動(dòng)

      有三種配置方法,推薦第一種:

      方法一:放到Python安裝目錄下

      直接把下載的chromedriver.exe放到Python的Scripts目錄下,這樣最簡(jiǎn)單。

      方法二:配置環(huán)境變量

      把chromedriver所在目錄添加到系統(tǒng)Path環(huán)境變量中。

      方法三:代碼中指定路徑

      在代碼中指定驅(qū)動(dòng)路徑(后面會(huì)演示)。

      03 驗(yàn)證環(huán)境是否成功

      環(huán)境裝好了,我們來(lái)寫個(gè)簡(jiǎn)單的測(cè)試腳本驗(yàn)證一下。

      創(chuàng)建一個(gè)名為test_demo.py的文件,輸入以下代碼:

      import pytestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport timeclassTestBaidu:    """百度搜索測(cè)試用例"""
          defsetup_method(self):        """每個(gè)測(cè)試方法前執(zhí)行"""        # 創(chuàng)建瀏覽器驅(qū)動(dòng)        self.driver = webdriver.Chrome()  # 如果驅(qū)動(dòng)在PATH中,可以直接這樣寫        self.driver.implicitly_wait(10)   # 隱式等待10秒        self.driver.maximize_window()     # 最大化窗口
          defteardown_method(self):        """每個(gè)測(cè)試方法后執(zhí)行"""        # 關(guān)閉瀏覽器        self.driver.quit()
          deftest_baidu_search(self):        """測(cè)試百度搜索功能"""        # 打開百度        self.driver.get("https://www.baidu.com")
              # 定位搜索框并輸入關(guān)鍵詞        search_box = self.driver.find_element(By.ID, "kw")        search_box.send_keys("自動(dòng)化測(cè)試")
              # 定位搜索按鈕并點(diǎn)擊        search_btn = self.driver.find_element(By.ID, "su")        search_btn.click()
              # 驗(yàn)證搜索結(jié)果        time.sleep(2)  # 等待頁(yè)面加載        assert"自動(dòng)化測(cè)試"in self.driver.title        print("測(cè)試通過(guò)!")if __name__ == "__main__":    pytest.main(["-v", "test_demo.py"])

      保存文件,在命令行中運(yùn)行:

      pytest test_demo.py -v

      如果看到瀏覽器自動(dòng)打開,完成搜索操作然后關(guān)閉,并且命令行顯示測(cè)試通過(guò),恭喜你,環(huán)境搭建成功!

      https://img-blog.csdnimg.cn/direct/1234567890abcdef.png
      測(cè)試運(yùn)行結(jié)果

      04 常見問(wèn)題及解決方案

      大家在搭建環(huán)境時(shí)可能會(huì)遇到一些問(wèn)題,這里整理了幾個(gè)常見的:

      問(wèn)題一:瀏覽器驅(qū)動(dòng)版本不匹配

      現(xiàn)象:報(bào)錯(cuò)提示"This version of ChromeDriver only supports Chrome version XX"

      解決:確保ChromeDriver版本與Chrome瀏覽器版本匹配,最好都使用最新版。

      問(wèn)題二:找不到瀏覽器驅(qū)動(dòng)

      現(xiàn)象:報(bào)錯(cuò)提示"WebDriver exception: 'chromedriver' executable needs to be in PATH"

      解決

      1. 檢查chromedriver是否在Python的Scripts目錄下

      2. 或者在代碼中指定驅(qū)動(dòng)路徑:

      from selenium.webdriver.chrome.service import Serviceservice = Service(r"C:\path\to\chromedriver.exe")driver = webdriver.Chrome(service=service)

       

      問(wèn)題三:瀏覽器被安全策略阻止

      現(xiàn)象:瀏覽器啟動(dòng)時(shí)提示"受到自動(dòng)化軟件控制"

      解決:添加選項(xiàng)繞過(guò)這個(gè)提示:

      from selenium.webdriver.chrome.options import Optionsoptions = Options()options.add_experimental_option("excludeSwitches", ["enable-automation"])options.add_experimental_option('useAutomationExtension', False)driver = webdriver.Chrome(options=options)

      05 進(jìn)階配置:讓框架更好用

      基礎(chǔ)環(huán)境搭好了,我們?cè)倥渲靡恍?shí)用的功能。

      1. 生成測(cè)試報(bào)告

      安裝pytest-html后,可以生成漂亮的HTML報(bào)告:

      pytest test_demo.py --html=report.html

      2. 并發(fā)執(zhí)行測(cè)試

      安裝pytest-xdist后,可以并行運(yùn)行測(cè)試用例,大大提高執(zhí)行速度:

      pytest test_demo.py -n 2  # 使用2個(gè)CPU核心

      3. 失敗重試

      安裝pytest-rerunfailures后,可以讓失敗的用例自動(dòng)重試:

      pytest test_demo.py --reruns 2  # 失敗重試2次

      06 項(xiàng)目結(jié)構(gòu)規(guī)劃

      一個(gè)良好的項(xiàng)目結(jié)構(gòu)很重要,推薦這樣組織你的自動(dòng)化項(xiàng)目:

      project_name/├── tests/                    # 測(cè)試用例目錄│   ├── test_login.py        # 登錄測(cè)試│   ├── test_search.py       # 搜索測(cè)試│   └── conftest.py          # pytest配置文件├── pages/                   # 頁(yè)面對(duì)象目錄│   ├── login_page.py        # 登錄頁(yè)面│   └── search_page.py       # 搜索頁(yè)面├── utils/                   # 工具類目錄│   ├── driver_manager.py    # 瀏覽器管理│   └── config_reader.py     # 配置讀取├── reports/                 # 測(cè)試報(bào)告目錄├── logs/                    # 日志目錄└── requirements.txt         # 依賴包列表

      07 編寫一個(gè)完整的測(cè)試用例

      讓我們寫一個(gè)更完整的例子,使用頁(yè)面對(duì)象模式:

      1. 首先創(chuàng)建頁(yè)面類pages/baidu_page.py

      from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECclassBaiduPage:    def__init__(self, driver):        self.driver = driver        self.wait = WebDriverWait(driver, 10)
          defopen_baidu(self):        """打開百度首頁(yè)"""        self.driver.get("https://www.baidu.com")        return self
          defsearch(self, keyword):        """執(zhí)行搜索"""        # 等待搜索框可見        search_box = self.wait.until(            EC.visibility_of_element_located((By.ID, "kw"))        )        search_box.clear()        search_box.send_keys(keyword)
              # 點(diǎn)擊搜索按鈕        search_btn = self.driver.find_element(By.ID, "su")        search_btn.click()
              return self
          defget_title(self):        """獲取頁(yè)面標(biāo)題"""        return self.driver.title

      2. 然后創(chuàng)建測(cè)試用例tests/test_baidu_search.py

      import pytestfrom pages.baidu_page import BaiduPageclassTestBaiduSearch:    """百度搜索測(cè)試類"""
          @pytest.fixture(autouse=True)    defsetup(self, driver):        """初始化"""        self.driver = driver        self.baidu_page = BaiduPage(driver)
          deftest_search_python(self):        """測(cè)試搜索Python"""        self.baidu_page.open_baidu().search("Python教程")        assert"Python教程"in self.baidu_page.get_title()
          deftest_search_automation(self):        """測(cè)試搜索自動(dòng)化測(cè)試"""        self.baidu_page.open_baidu().search("自動(dòng)化測(cè)試")        assert"自動(dòng)化測(cè)試"in self.baidu_page.get_title()

      3. 創(chuàng)建配置文件tests/conftest.py

      import pytestfrom selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.chrome.options import Options@pytest.fixture(scope="session")defdriver():    """創(chuàng)建瀏覽器驅(qū)動(dòng),整個(gè)測(cè)試會(huì)話只執(zhí)行一次"""
          # 配置Chrome選項(xiàng)    chrome_options = Options()    chrome_options.add_argument("--disable-blink-features=AutomationControlled")    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
          # 創(chuàng)建驅(qū)動(dòng)實(shí)例    driver = webdriver.Chrome(options=chrome_options)    driver.implicitly_wait(10)    driver.maximize_window()
          yield driver
          # 測(cè)試結(jié)束后關(guān)閉瀏覽器    driver.quit()

      運(yùn)行測(cè)試:

      pytest tests/test_baidu_search.py -v --html=reports/report.html

      08 學(xué)習(xí)建議和下一步

      環(huán)境搭好了,接下來(lái)該怎么學(xué)?給大家?guī)c(diǎn)建議:

      1. 先掌握基礎(chǔ)知識(shí)

      • Python基礎(chǔ)語(yǔ)法

      • Selenium常用API(元素定位、頁(yè)面操作等)

      • Pytest斷言和夾具使用

      2. 然后學(xué)習(xí)進(jìn)階內(nèi)容

      • 頁(yè)面對(duì)象模式(Page Object Model)

      • 數(shù)據(jù)驅(qū)動(dòng)測(cè)試

      • 測(cè)試報(bào)告優(yōu)化

      • 持續(xù)集成

      3. 實(shí)戰(zhàn)項(xiàng)目練習(xí)

      • 找一個(gè)熟悉的網(wǎng)站進(jìn)行自動(dòng)化練習(xí)

      • 從簡(jiǎn)單的登錄、搜索功能開始

      • 逐步擴(kuò)展到復(fù)雜業(yè)務(wù)流程

      09 總結(jié)

      好了,今天的內(nèi)容就到這里。我們完整地走了一遍Python+Pytest+Selenium環(huán)境搭建的過(guò)程,包括:

      • ? Python安裝和配置

      • ? Pytest安裝和插件配置

      • ? Selenium安裝和驅(qū)動(dòng)配置

      • ? 第一個(gè)自動(dòng)化腳本編寫和運(yùn)行

      • ? 常見問(wèn)題解決

      • ? 項(xiàng)目結(jié)構(gòu)規(guī)劃

      • ? 完整測(cè)試用例示例

      環(huán)境搭建是自動(dòng)化測(cè)試的第一步,也是很多新手容易卡住的地方。希望這篇教程能幫你順利邁出第一步!

      如果在搭建過(guò)程中遇到什么問(wèn)題,歡迎在評(píng)論區(qū)留言,我會(huì)盡力幫大家解決!

      本文原創(chuàng)于【程序員二黑】公眾號(hào),轉(zhuǎn)載請(qǐng)注明出處!

      歡迎大家關(guān)注筆者的公眾號(hào):程序員二黑,專注于軟件測(cè)試干活分享,全套測(cè)試資源可免費(fèi)分享!

      最后如果你想學(xué)習(xí)軟件測(cè)試,歡迎加入筆者的交流群:946094265,里面會(huì)有很多資源和大佬答疑解惑,我們一起交流一起學(xué)習(xí)!

       

      posted @ 2025-11-03 17:05  程序員二黑  閱讀(102)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 熟女人妻aⅴ一区二区三区电影| 久久精品一本到东京热| 日日猛噜噜狠狠扒开双腿小说| 国产精品普通话国语对白露脸 | 人人超人人超碰超国产| 亚洲国产欧美在线人成| 免费国产高清在线精品一区| 青青青久热国产精品视频| 国产+亚洲+制服| 无码伊人66久久大杳蕉网站谷歌 | 日韩精品 中文字幕 视频在线| 激情的视频一区二区三区| 中国熟女仑乱hd| 汉川市| 啊轻点灬大JI巴太粗太长了在线 | 一本久道久久综合狠狠躁av| 中文字幕日韩熟女av| 日本一区二区不卡精品| 丝袜a∨在线一区二区三区不卡| 自偷自拍亚洲综合精品| 少妇人妻偷人精品免费视频| 最新精品国产自偷在自线| 一区二区国产高清视频在线| 成人午夜国产内射主播| 精品国产中文字幕在线看| 国产成人精品无人区一区| 最新的精品亚洲一区二区| 亚洲精品日本久久久中文字幕 | 99网友自拍视频在线| 国产中文字幕一区二区| 亚洲欧洲日韩精品在线| 午夜福利伦伦电影理论片在线观看| 国产免费视频一区二区 | 老熟妇乱子交视频一区| 亚洲国产中文在线有精品| 中文字幕国产精品二区| 中国凸偷窥xxxx自由视频| 亚洲少妇人妻无码视频| 红桃视频成人传媒| 一级片一区二区中文字幕| 久久精品蜜芽亚洲国产av |