国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

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

0
分享至

前言

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

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

但是這時候就會增加一些工作量,每次運行不同的環(huá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ù)信息)進行結(jié)合使用。

在上述問題中,我們可以通過在命令行參數(shù)中對測試環(huán)境地址進行修改,這樣就可以在不修改配置文件的情況下,只通過命令行參數(shù)進行在不同的測試環(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ù)值的基本操作類型,默認為“store”;

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

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

使用方法

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

1、需要在conftest.py文件中進行創(chuàng)建一個pytest_addoption函數(shù),對其進行設(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)容,不填寫默認輸出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('命令行取默認值!')

def test_02(env):

if env=='test':

print('傳參成功!')

else:

print('傳參失??!')

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

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

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

案例展示

上述小編是介紹了如何使用,那么我們?nèi)绾卧诮涌陧椖恐惺褂媚??小編這里通過一個簡單的方法通過項目進行展示,這里小編通過將默認值值變成了請求成功的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文件中我們將默認請求成功的地址寫入到默認值中,然后繼續(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進行運行程序,我們先不添加任何命令行參數(shù),讓其請求默認參數(shù)值的內(nèi)容,發(fā)現(xiàn)測試用例請求成功了。

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

總結(jié)

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

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

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

最后:在我的V:atstudy-js,可以免費領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-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)推薦
熱點推薦
大數(shù)據(jù)分析,在中國,找個身高1米7年入20萬的老公,到底有多難?

大數(shù)據(jù)分析,在中國,找個身高1米7年入20萬的老公,到底有多難?

深度報
2026-04-18 23:37:27
烏克蘭基輔槍擊事件已致5人死亡 槍手身份公布

烏克蘭基輔槍擊事件已致5人死亡 槍手身份公布

財聯(lián)社
2026-04-19 00:18:15
河北山東等9省區(qū)市部分地區(qū)有10級以上雷暴大風(fēng)

河北山東等9省區(qū)市部分地區(qū)有10級以上雷暴大風(fēng)

界面新聞
2026-04-19 08:27:33
網(wǎng)友稱山西一酒店回訪電話暴露其行程致家庭破碎,酒店回應(yīng):正?;卦L,但電話沒接通

網(wǎng)友稱山西一酒店回訪電話暴露其行程致家庭破碎,酒店回應(yīng):正常回訪,但電話沒接通

瀟湘晨報
2026-04-18 22:04:11
新型啃老正在流行,68歲老人哭訴:你們的孝順讓我有苦說不出

新型啃老正在流行,68歲老人哭訴:你們的孝順讓我有苦說不出

蟬吟槐蕊
2026-04-18 08:26:05
比賽進行中,現(xiàn)場近2萬人,觀眾突然喊話:懂不懂人情世故?

比賽進行中,現(xiàn)場近2萬人,觀眾突然喊話:懂不懂人情世故?

極目新聞
2026-04-19 10:17:37
10萬港人擠爆深圳!月租3000住公寓,網(wǎng)友:風(fēng)水怎么輪流轉(zhuǎn)了?

10萬港人擠爆深圳!月租3000住公寓,網(wǎng)友:風(fēng)水怎么輪流轉(zhuǎn)了?

風(fēng)風(fēng)順
2026-04-19 02:05:03
罕見!北約30國駐布魯塞爾大使集體訪日

罕見!北約30國駐布魯塞爾大使集體訪日

參考消息
2026-04-18 17:59:50
coco 曝光張柏芝三胎生父后,再爆謝賢猛料,半分體面都不留

coco 曝光張柏芝三胎生父后,再爆謝賢猛料,半分體面都不留

橙星文娛
2026-04-19 06:54:10
在氣質(zhì)面前,年輕真的不值一提。

在氣質(zhì)面前,年輕真的不值一提。

小椰的奶奶
2026-04-19 01:52:39
上海中環(huán)擁堵愈演愈烈!南北高架段通行驟降,職住失衡成核心誘因

上海中環(huán)擁堵愈演愈烈!南北高架段通行驟降,職住失衡成核心誘因

媛來這樣
2026-04-19 00:01:46
攤主好心借手機被逼下跪后續(xù):家長真容曝光,孩子被處分全校社死

攤主好心借手機被逼下跪后續(xù):家長真容曝光,孩子被處分全校社死

奇思妙想草葉君
2026-04-19 00:15:57
拼多多抗法細節(jié)曝光:執(zhí)法人員手指被夾斷

拼多多抗法細節(jié)曝光:執(zhí)法人員手指被夾斷

大廠觀察
2026-04-19 08:51:09
面多加水,水多加面?外媒痛批:電車3噸重,填鴨式造車不可取!

少數(shù)派報告Report
2026-04-17 07:03:05

1951年毛澤東宴請志愿軍四大軍長,開席前:吳信泉同志,坐我旁邊

1951年毛澤東宴請志愿軍四大軍長,開席前:吳信泉同志,坐我旁邊

大運河時空
2026-04-18 09:50:03
恒大超級蛀蟲劉永灼:甚至比許家印還能攬財,狂燒千億終落法網(wǎng)

恒大超級蛀蟲劉永灼:甚至比許家印還能攬財,狂燒千億終落法網(wǎng)

小曙說娛
2026-04-19 00:27:45
何潤東回應(yīng)亮相“蘇超”為何不騎馬:10年前一定騎馬,現(xiàn)在50多歲了,“一摔下來就幻滅,對項羽不太尊重,想給大家留下美好印象”

何潤東回應(yīng)亮相“蘇超”為何不騎馬:10年前一定騎馬,現(xiàn)在50多歲了,“一摔下來就幻滅,對項羽不太尊重,想給大家留下美好印象”

揚子晚報
2026-04-19 09:12:34
肯納德27分湖人戰(zhàn)勝火箭贏下G1,杜蘭特缺陣火箭一片藍領(lǐng)

肯納德27分湖人戰(zhàn)勝火箭贏下G1,杜蘭特缺陣火箭一片藍領(lǐng)

李廣專業(yè)體育評論
2026-04-19 11:24:51
“外軍飛機就在旁邊……”南部沿海一線,飛行員最新披露!

“外軍飛機就在旁邊……”南部沿海一線,飛行員最新披露!

環(huán)球網(wǎng)資訊
2026-04-19 09:53:02
哈登價值盡顯!騎士季后賽喜迎開門紅,一戰(zhàn)完美印證引援抉擇!

哈登價值盡顯!騎士季后賽喜迎開門紅,一戰(zhàn)完美印證引援抉擇!

田先生籃球
2026-04-19 05:19:57
2026-04-19 11:47:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

50分26秒破人類紀錄!300臺機器人狂飆半馬

頭條要聞

牛彈琴:伊朗遭到特朗普"羞辱"被激怒 結(jié)果印度遭了殃

頭條要聞

牛彈琴:伊朗遭到特朗普"羞辱"被激怒 結(jié)果印度遭了殃

體育要聞

掘金擒狼開門紅:五花肉與小辣椒

娛樂要聞

張?zhí)鞇墼u論區(qū)淪陷!被曝卷入小三風(fēng)波

財經(jīng)要聞

華誼兄弟,8年虧光85億

汽車要聞

29分鐘大定破萬 極氪8X為什么這么多人買?

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

游戲
教育
旅游
藝術(shù)
公開課

輿論徹底失控后首度發(fā)聲!Ruler回應(yīng)逃稅爭議

教育要聞

出國留學(xué)的人多少回國了?

旅游要聞

太原直飛莫斯科旅游包機復(fù)航

藝術(shù)要聞

鄭麗文大陸之行引發(fā)熱議,孫中山贈對聯(lián)成焦點!

公開課

李玫瑾:為什么性格比能力更重要?

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