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

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

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

0
分享至

前言

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

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

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

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

pytest_addoption

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

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

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

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

def pytest_addoption(parser):

parser.addoption(

"--anjing",

action="store",

default="dev",

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

參數(shù)介紹

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

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

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

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

help:對(duì)參數(shù)作用的簡(jiǎn)介和說(shuō)明。

使用方法

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

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

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

3、通過(guò)編寫(xiě)測(cè)試用例中調(diào)用對(duì)應(yīng)的函數(shù)名稱。

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

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

#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)容,不填寫(xiě)默認(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)容編寫(xiě)對(duì)應(yīng)的測(cè)試用例:

#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('傳參失?。?)

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

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

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

案例展示

上述小編是介紹了如何使用,那么我們?nèi)绾卧诮涌陧?xiàng)目中使用呢?小編這里通過(guò)一個(gè)簡(jiǎn)單的方法通過(guò)項(xiàng)目進(jìn)行展示,這里小編通過(guò)將默認(rèn)值值變成了請(qǐng)求成功的url地址,添加參數(shù)為錯(cuò)誤的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)請(qǐng)求成功的地址寫(xiě)入到默認(rèn)值中,然后繼續(xù)編寫(xiě)接口請(qǐng)求地址,在添加一個(gè)命令行參數(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=='查詢成功!'

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

接下來(lái)我們通過(guò)隨便在命令行參數(shù)后跟一個(gè)不正確的url地址,去模擬請(qǐng)求,這里肯定是無(wú)法請(qǐng)求成功的,因?yàn)槲覀冋?qǐng)求的百度,不能請(qǐng)求成功(主要模擬測(cè)試環(huán)境場(chǎng)景)。

總結(jié)

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

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

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

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

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(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)推薦
熱點(diǎn)推薦
2026年即將上映電影盤(pán)點(diǎn):這10部作品里,你最想看哪一部?

2026年即將上映電影盤(pán)點(diǎn):這10部作品里,你最想看哪一部?

葉秋臣
2026-04-17 16:17:47
罰15億!拼多多一員工故意關(guān)門(mén),對(duì)抗調(diào)查,導(dǎo)致執(zhí)法人員手指骨折

罰15億!拼多多一員工故意關(guān)門(mén),對(duì)抗調(diào)查,導(dǎo)致執(zhí)法人員手指骨折

魔都姐姐雜談
2026-04-19 08:03:27
越南的南北鴻溝:一個(gè)國(guó)家,兩個(gè)世界

越南的南北鴻溝:一個(gè)國(guó)家,兩個(gè)世界

民間胡扯老哥
2026-04-03 02:26:57
本田或?qū)㈥P(guān)停廣州、武漢兩座燃油車工廠

本田或?qū)㈥P(guān)停廣州、武漢兩座燃油車工廠

中國(guó)能源網(wǎng)
2026-04-17 14:45:03
藍(lán)思科技稱“打造了支撐榮耀機(jī)器人完賽的‘鋼鐵之軀’”,公司一季度凈利潤(rùn)由盈轉(zhuǎn)虧

藍(lán)思科技稱“打造了支撐榮耀機(jī)器人完賽的‘鋼鐵之軀’”,公司一季度凈利潤(rùn)由盈轉(zhuǎn)虧

紅星資本局
2026-04-19 19:30:42
真實(shí)的酒吧夜店女孩,只是看起來(lái)很漂亮

真實(shí)的酒吧夜店女孩,只是看起來(lái)很漂亮

微微熱評(píng)
2026-04-13 12:18:55
山花爛漫:你不必成為玫瑰,做一朵野花也很好

山花爛漫:你不必成為玫瑰,做一朵野花也很好

疾跑的小蝸牛
2026-04-17 22:13:15
14歲被送上導(dǎo)演的床,17歲拍全裸寫(xiě)真,被操控半生,如今怎樣了?

14歲被送上導(dǎo)演的床,17歲拍全裸寫(xiě)真,被操控半生,如今怎樣了?

不似少年游
2026-04-17 19:31:49
生育大局已定:如不出意外,2026年起中國(guó)人口將迎來(lái)3大變化

生育大局已定:如不出意外,2026年起中國(guó)人口將迎來(lái)3大變化

蜉蝣說(shuō)
2026-03-17 15:58:31
我國(guó)摧毀特大假酒網(wǎng)絡(luò)!查獲侵權(quán)假冒白酒近2萬(wàn)箱

我國(guó)摧毀特大假酒網(wǎng)絡(luò)!查獲侵權(quán)假冒白酒近2萬(wàn)箱

21世紀(jì)經(jīng)濟(jì)報(bào)道
2026-04-19 13:41:58
全網(wǎng)唱衰的下嫁!嫁普通人5年,前任是法拉利總裁,終究還是輸了

全網(wǎng)唱衰的下嫁!嫁普通人5年,前任是法拉利總裁,終究還是輸了

橙星文娛
2026-04-18 16:42:58
A股:大家做好準(zhǔn)備,不出意外,明天周一,4月20日,很可能這樣走

A股:大家做好準(zhǔn)備,不出意外,明天周一,4月20日,很可能這樣走

云鵬敘事
2026-04-19 09:14:33
郭富城與方媛曬結(jié)婚紀(jì)念日合照,雙雙曬照定制水晶擺件撒糖

郭富城與方媛曬結(jié)婚紀(jì)念日合照,雙雙曬照定制水晶擺件撒糖

眼底星碎
2026-04-19 18:40:18
21歲女子懷孕閃婚生活7天后想離婚! 女方:生理性厭惡,不想過(guò)了

21歲女子懷孕閃婚生活7天后想離婚! 女方:生理性厭惡,不想過(guò)了

半島晨報(bào)
2026-04-18 13:40:48
徐冬冬尹子維官宣生娃:不辦婚禮不曬娃,這屆明星終于活明白了

徐冬冬尹子維官宣生娃:不辦婚禮不曬娃,這屆明星終于活明白了

小貓娛樂(lè)叭叭
2026-04-18 17:34:18
欠他們一句道歉!5位被毀掉的外援:瞎眼、欠薪、斷腿,巔峰全廢

欠他們一句道歉!5位被毀掉的外援:瞎眼、欠薪、斷腿,巔峰全廢

圣西羅的太陽(yáng)
2026-04-19 10:08:28
天安門(mén)前的華表柱,是用來(lái)干什么的?看完不禁感嘆古人的智慧

天安門(mén)前的華表柱,是用來(lái)干什么的?看完不禁感嘆古人的智慧

抽象派大師
2026-04-19 15:45:34
馬斯克來(lái)抖音賣(mài)老干媽了??

馬斯克來(lái)抖音賣(mài)老干媽了??

量子位
2026-04-19 12:48:21
何潤(rùn)東“西楚霸王項(xiàng)羽”造型亮相沒(méi)騎馬引熱議,本人回應(yīng)

何潤(rùn)東“西楚霸王項(xiàng)羽”造型亮相沒(méi)騎馬引熱議,本人回應(yīng)

韓小娛
2026-04-19 08:56:44
上任就掀桌,匈牙利新總理當(dāng)面逼宮羞辱總統(tǒng),要讓歐爾班翻不了身

上任就掀桌,匈牙利新總理當(dāng)面逼宮羞辱總統(tǒng),要讓歐爾班翻不了身

軒逸阿II
2026-04-20 00:04:38
2026-04-20 00:51:00
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

50分26秒破人類紀(jì)錄!300臺(tái)機(jī)器人狂飆半馬

頭條要聞

半年下沉22厘米 女子家中坐擁價(jià)值上億別墅卻沒(méi)法住人

頭條要聞

半年下沉22厘米 女子家中坐擁價(jià)值上億別墅卻沒(méi)法住人

體育要聞

湖人1比0火箭:老詹比烏度卡像教練

娛樂(lè)要聞

何潤(rùn)東漲粉百萬(wàn)!內(nèi)娛隔空掀桌第一人

財(cái)經(jīng)要聞

華誼兄弟,8年虧光85億

汽車要聞

29分鐘大定破萬(wàn) 極氪8X為什么這么多人買(mǎi)?

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

手機(jī)
親子
本地
房產(chǎn)
公開(kāi)課

手機(jī)要聞

8.8英寸小鋼炮!REDMI K Pad 2核心配置揭曉

親子要聞

孩子總打噴嚏、起疹子,時(shí)過(guò)敏嗎?

本地新聞

12噸巧克力有難,全網(wǎng)化身超級(jí)偵探添亂

房產(chǎn)要聞

官宣簽約最強(qiáng)城更!海口樓市,突然殺入神秘房企!

公開(kāi)課

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

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