<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

      技術(shù)分享:如何用pytest_addoption切換自動化測試環(huán)境?

      0
      分享至

      前言

      在目前互聯(lián)網(wǎng)公司中,都會存在多個測試環(huán)境,那么當(dāng)我們編寫的自動化想要在多套測試環(huán)境下進(jìn)行運行時,如何使用?

      大多數(shù)人想到的可能是通過將我們自動化代碼中的地址修改成不同環(huán)境。

      但是這時候就會增加一些工作量,每次運行不同的環(huán)境,都需要在配置文件中進(jìn)行地址修改,這樣很不方便。

      今天小編介紹一種Pytest的鉤子函數(shù),這個函數(shù)可以幫助我們很容易的解決這個問題。



      pytest_addoption

      pytest_addoption是Pytest的鉤子函數(shù)之一,用于為Pytest添加自定義選項,并將這些選項傳遞給測試用例。

      可以通過修改Pytest的配置文件(pytest.ini)或使用命令行參數(shù)來設(shè)置這些選項。

      pytest_addoption該函數(shù)一般需要和pytest的fixture內(nèi)置函數(shù)request中的request.config.getoption(獲取命令行參數(shù)信息)進(jìn)行結(jié)合使用。

      在上述問題中,我們可以通過在命令行參數(shù)中對測試環(huán)境地址進(jìn)行修改,這樣就可以在不修改配置文件的情況下,只通過命令行參數(shù)進(jìn)行在不同的測試環(huán)境中執(zhí)行相同的自動化代碼。

      def pytest_addoption(parser):

      parser.addoption(

      "--anjing",

      action="store",

      default="dev",

      help="通過'anjing'添加自定義命令行參數(shù)名稱"

      參數(shù)介紹

      pytest_addoption中常用到的一些參數(shù)介紹:

      name:表示自定義命令行參數(shù)的名稱,一般通過“--xxx”來使用;

      action:表示命令行中遇到此參數(shù)時要采取的存儲該參數(shù)對應(yīng)的參數(shù)值的基本操作類型,默認(rèn)為“store”;

      default:表示如何命令行中沒有傳入該參數(shù)的值,則取默認(rèn)值;

      help:對參數(shù)作用的簡介和說明。

      使用方法

      關(guān)于pytest_addoption的一些簡介和用途已經(jīng)介紹完畢了,接下來跟著小編一起查看如何使用pytest_addoption來解決我們的問題。

      1、需要在conftest.py文件中進(jìn)行創(chuàng)建一個pytest_addoption函數(shù),對其進(jìn)行設(shè)置對應(yīng)參數(shù)類型。

      2、通過pytest.fixture創(chuàng)建函數(shù),獲取命令行對應(yīng)參數(shù)值。

      3、通過編寫測試用例中調(diào)用對應(yīng)的函數(shù)名稱。

      4、命令行執(zhí)行時,添加對應(yīng)命令行參數(shù)。

      小編先列舉下conftest.py文件中關(guān)于pytest_addoption的編寫:

      #conftest.py文件

      #coding:utf-8

      import pytest

      def pytest_addoption(parser):

      parser.addoption(

      "--anjing",action="store",default="anjing",help="將'anjing'添加到pytest的配置參數(shù)中"

      parser.addoption(

      "--env",action="store",default="dev",help="env:表示命令行參數(shù)內(nèi)容,不填寫默認(rèn)輸出default的值內(nèi)容"

      @pytest.fixture()

      def anjing(request):

      return request.config.getoption("--anjing")

      @pytest.fixture()

      def env(request):

      return request.config.getoption("--env")

      再根據(jù)conftest.py文件中的內(nèi)容編寫對應(yīng)的測試用例:

      #coding:utf-8

      def test_01(anjing):

      if anjing=='test':

      print('命令行傳參成功!')

      else:

      print('命令行取默認(rèn)值!')

      def test_02(env):

      if env=='test':

      print('傳參成功!')

      else:

      print('傳參失敗!')



      通過cmd執(zhí)行時候,后續(xù)進(jìn)行添加了對應(yīng)的命令行參數(shù)值,這里小編是對兩個命令行參數(shù)都添加了值,那么如果不添加值會怎么樣呢?



      通過執(zhí)行結(jié)果可以看出來,當(dāng)我們沒有添加參數(shù)時,這里小編忘記打印返回值了,其實會實際輸出默認(rèn)值,就是我們在函數(shù)中設(shè)置的default。

      我們上面使用的方法是通過XXX=XXX的格式來輸出的,這里我們也可以通過--xxxx值,參數(shù)和值之間通過空格進(jìn)行輸入,結(jié)果都是一樣的。



      案例展示

      上述小編是介紹了如何使用,那么我們?nèi)绾卧诮涌陧椖恐惺褂媚兀啃【庍@里通過一個簡單的方法通過項目進(jìn)行展示,這里小編通過將默認(rèn)值值變成了請求成功的url地址,添加參數(shù)為錯誤的url地址。

      #conftest.py文件

      #coding:utf-8

      import pytest

      def pytest_addoption(parser):

      parser.addoption(

      "--url",

      action="store",

      default="http://apis.juhe.cn/simpleWeather/query",

      help="將'anjing'添加到pytest的配置參數(shù)中"

      @pytest.fixture()

      def anjing(request):

      return request.config.getoption("--url")

      conftest.py文件中我們將默認(rèn)請求成功的地址寫入到默認(rèn)值中,然后繼續(xù)編寫接口請求地址,在添加一個命令行參數(shù)的函數(shù)。

      #test_01.py文件

      #coding:utf-8

      import requests

      def test_01(anjing):

      data={

      'city':"上海",

      'key':'331eab8f3481f37868378fcdc76cb7cd'

      r=requests.post(anjing,data=data)

      result=r.json()['reason']

      assert result=='查詢成功!'

      通過cmd進(jìn)行運行程序,我們先不添加任何命令行參數(shù),讓其請求默認(rèn)參數(shù)值的內(nèi)容,發(fā)現(xiàn)測試用例請求成功了。



      接下來我們通過隨便在命令行參數(shù)后跟一個不正確的url地址,去模擬請求,這里肯定是無法請求成功的,因為我們請求的百度,不能請求成功(主要模擬測試環(huán)境場景)。



      總結(jié)

      小編通過簡單的方法介紹了如何使用pytest_addoption進(jìn)行來模擬不同測試環(huán)境下,我們?nèi)绾芜M(jìn)行執(zhí)行我們的測試用例。

      當(dāng)然pytest_addoption的用途不僅僅只有這么多,具體如何使用,大家可以根據(jù)自己公司內(nèi)容的項目進(jìn)行結(jié)合使用。

      感謝您的閱讀,希望本篇文章對您有所幫助。

      最后:在我的V:atstudy-js,可以免費領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

      特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關(guān)推薦
      熱點推薦
      0-5!周躍龍完敗希金斯,斯諾克3席4強誕生,小司機搶139萬紅包?

      0-5!周躍龍完敗希金斯,斯諾克3席4強誕生,小司機搶139萬紅包?

      劉姚堯的文字城堡
      2026-02-28 06:14:45
      德黑蘭又傳出兩聲巨大爆炸聲

      德黑蘭又傳出兩聲巨大爆炸聲

      環(huán)球網(wǎng)資訊
      2026-02-28 16:36:21
      被美以轟炸后,伊朗民眾為何不慌?甚至在跳舞歡呼慶祝

      被美以轟炸后,伊朗民眾為何不慌?甚至在跳舞歡呼慶祝

      老馬拉車莫少裝
      2026-02-28 22:43:52
      懸念不大!本賽季具備奪冠資格球隊,滿打滿算有4支,4大豪門出局

      懸念不大!本賽季具備奪冠資格球隊,滿打滿算有4支,4大豪門出局

      毒舌NBA
      2026-02-28 16:46:39
      老板娘說她大腿粗,我該怎么回答?

      老板娘說她大腿粗,我該怎么回答?

      太急張三瘋
      2026-02-28 13:45:03
      男單四強定3席!林昀儒延續(xù)德國老將克星,歷史對決10戰(zhàn)全勝

      男單四強定3席!林昀儒延續(xù)德國老將克星,歷史對決10戰(zhàn)全勝

      燒體壇
      2026-02-28 19:53:14
      用戶反饋谷歌Chrome瀏覽器悄然在C盤下載約4GB本地AI模型文件

      用戶反饋谷歌Chrome瀏覽器悄然在C盤下載約4GB本地AI模型文件

      IT之家
      2026-02-28 08:33:21
      2023年,985女碩士王懿在東京活活餓死,父母拒絕為其收尸

      2023年,985女碩士王懿在東京活活餓死,父母拒絕為其收尸

      談史論天地
      2026-02-18 17:45:40
      江西女子用公驢器官泡酒,三個月后給丈夫喝,不料發(fā)生意外

      江西女子用公驢器官泡酒,三個月后給丈夫喝,不料發(fā)生意外

      古怪奇談錄
      2025-06-28 13:49:02
      江蘇一男子野外意外發(fā)現(xiàn)“比薩斜樓”,進(jìn)去后瞬間感到眩暈,直呼“根本站不穩(wěn)”,網(wǎng)友表示:可能是給消防員訓(xùn)練使用的

      江蘇一男子野外意外發(fā)現(xiàn)“比薩斜樓”,進(jìn)去后瞬間感到眩暈,直呼“根本站不穩(wěn)”,網(wǎng)友表示:可能是給消防員訓(xùn)練使用的

      瀟湘晨報
      2026-02-28 12:34:41
      統(tǒng)一信號出現(xiàn)!臺海巡署罕見向大陸表態(tài),金門將成首個回歸試點地

      統(tǒng)一信號出現(xiàn)!臺海巡署罕見向大陸表態(tài),金門將成首個回歸試點地

      劉拕?wù)f體壇
      2026-02-28 16:48:14
      突發(fā)!以媒曝伊朗核計劃核心人物遇襲身亡,中東局勢徹底引爆

      突發(fā)!以媒曝伊朗核計劃核心人物遇襲身亡,中東局勢徹底引爆

      老馬拉車莫少裝
      2026-02-28 19:33:59
      開戰(zhàn)在即伊朗迎來強援,2500枚導(dǎo)彈在路上,美軍更不敢輕易打!

      開戰(zhàn)在即伊朗迎來強援,2500枚導(dǎo)彈在路上,美軍更不敢輕易打!

      青煙小先生
      2026-02-28 09:59:23
      一汽奧迪Q6L e-tron:德國精工打底+華為智慧加持,就是這么能打

      一汽奧迪Q6L e-tron:德國精工打底+華為智慧加持,就是這么能打

      車界江湖car
      2025-07-27 13:40:49
      火箭記者發(fā)問:場均26+5+4率隊前五的杜蘭特,不配進(jìn)入MVP討論?

      火箭記者發(fā)問:場均26+5+4率隊前五的杜蘭特,不配進(jìn)入MVP討論?

      愛體育
      2026-03-01 00:06:41
      小米上架米家燃?xì)庠?猛火版,到手價899元

      小米上架米家燃?xì)庠?猛火版,到手價899元

      ZAEKE知客
      2026-02-27 12:41:13
      謝賢擔(dān)心事終發(fā)生,張柏芝給口無遮攔CoCo上了一課

      謝賢擔(dān)心事終發(fā)生,張柏芝給口無遮攔CoCo上了一課

      老好人的憤怒
      2026-02-28 10:26:39
      美大兵壓境,中方關(guān)鍵時刻出手,送伊朗殺手锏,為戰(zhàn)爭按下暫停鍵

      美大兵壓境,中方關(guān)鍵時刻出手,送伊朗殺手锏,為戰(zhàn)爭按下暫停鍵

      東極妙嚴(yán)
      2026-02-25 16:41:46
      火箭隊利空出盡,4大理由坐穩(wěn)前三!37歲杜蘭特熬出頭烏度卡開竅

      火箭隊利空出盡,4大理由坐穩(wěn)前三!37歲杜蘭特熬出頭烏度卡開竅

      鍋子籃球
      2026-02-28 19:34:23
      賭中國不會還手?巴拿馬總統(tǒng)被秒打臉,中方第五波反制馬上就到

      賭中國不會還手?巴拿馬總統(tǒng)被秒打臉,中方第五波反制馬上就到

      石江月
      2026-02-28 17:09:34
      2026-03-01 01:03:00
      51Testing軟件測試網(wǎng) incentive-icons
      51Testing軟件測試網(wǎng)
      中國軟件測試人的精神家園
      1528文章數(shù) 13252關(guān)注度
      往期回顧 全部

      科技要聞

      狂攬1100億美元!OpenAI再創(chuàng)融資神話

      頭條要聞

      媒體:美以的真實目標(biāo)已經(jīng)擺上臺面 不達(dá)目的不罷休

      頭條要聞

      媒體:美以的真實目標(biāo)已經(jīng)擺上臺面 不達(dá)目的不罷休

      體育要聞

      球隊主力全報銷?頂風(fēng)擺爛演都不演了

      娛樂要聞

      周杰倫兒子正面照曝光,與父親好像

      財經(jīng)要聞

      沖突爆發(fā) 市場變天?

      汽車要聞

      嵐圖泰山黑武士版3月上市 搭載華為四激光智駕方案

      態(tài)度原創(chuàng)

      時尚
      旅游
      本地
      手機
      親子

      這6款發(fā)色居然這么火?50張圖可以直接給tony

      旅游要聞

      忻州古城×元宵節(jié) | “夯”爆了!看非遺社火解鎖忻州古城的超長年味!

      本地新聞

      津南好·四時總相宜

      手機要聞

      澎湃OS再次公布進(jìn)展通報:10個問題,僅修復(fù)一則!

      親子要聞

      嬰兒吃的“洋”輔食,九成靠代工貼牌?涉及上市公司

      無障礙瀏覽 進(jìn)入關(guān)懷版