亚洲中文字幕乱码亚洲-蜜桃成熟视频在线观看-免费中文字幕视频在线-中国五十路熟妇洗澡视频-亚洲av伊人啪啪c-国产精品成人一区二区-国产自拍视频一区在线观看-成人一区不卡二区三区四区-亚洲情精品中文字幕99在线

網(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)我們編寫的自動(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ò)編寫測(cè)試用例中調(diào)用對(duì)應(yīng)的函數(shù)名稱。

4、命令行執(zhí)行時(shí),添加對(duì)應(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)容編寫對(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)求成功的地址寫入到默認(rèn)值中,然后繼續(xù)編寫接口請(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)推薦
腸道是否長(zhǎng)息肉,會(huì)有4個(gè)提示,上廁所時(shí)要記的多看一眼!

腸道是否長(zhǎng)息肉,會(huì)有4個(gè)提示,上廁所時(shí)要記的多看一眼!

芹姐說(shuō)生活
2026-04-19 23:32:30
離大譜!大媽沖進(jìn)餐廳強(qiáng)行放生龍蝦,結(jié)果人家是寵物,直接被她救死了...

離大譜!大媽沖進(jìn)餐廳強(qiáng)行放生龍蝦,結(jié)果人家是寵物,直接被她救死了...

英國(guó)那些事兒
2026-04-17 23:25:19
日本突襲!28萬(wàn)億市場(chǎng),中國(guó)被踢出局,高市早苗亮出3張底牌

日本突襲!28萬(wàn)億市場(chǎng),中國(guó)被踢出局,高市早苗亮出3張底牌

瑛派兒老黃
2026-04-20 10:40:36
廣東一酒店女子拆快遞誤甩飛美工刀打到同事脖頸,酒店:沒(méi)有劃到脖子,不是故意的

廣東一酒店女子拆快遞誤甩飛美工刀打到同事脖頸,酒店:沒(méi)有劃到脖子,不是故意的

瀟湘晨報(bào)
2026-04-19 20:49:12
多名院士研究發(fā)現(xiàn):吃一把花生,就等于吃了兩勺黃油,真的假的?

多名院士研究發(fā)現(xiàn):吃一把花生,就等于吃了兩勺黃油,真的假的?

蜉蝣說(shuō)
2026-04-20 10:18:20
為什么在我國(guó)不允許拍鬼片了?看完網(wǎng)友的真實(shí)經(jīng)歷,感覺(jué)禁得好

為什么在我國(guó)不允許拍鬼片了?看完網(wǎng)友的真實(shí)經(jīng)歷,感覺(jué)禁得好

情感大頭說(shuō)說(shuō)
2026-04-20 03:02:35
砸6700億建雄安,面積抵3個(gè)紐約,如今究竟咋樣了?

砸6700億建雄安,面積抵3個(gè)紐約,如今究竟咋樣了?

娛樂(lè)圈的筆娛君
2026-03-26 12:15:32
遲來(lái)的關(guān)心猶如砒霜!網(wǎng)友:快退休了我媽突然擔(dān)心我值班沒(méi)飯吃

遲來(lái)的關(guān)心猶如砒霜!網(wǎng)友:快退休了我媽突然擔(dān)心我值班沒(méi)飯吃

夜深愛(ài)雜談
2026-04-20 09:16:13
徐明聯(lián)手本拉登家族,400億硬剛中石油,帝國(guó)崩塌

徐明聯(lián)手本拉登家族,400億硬剛中石油,帝國(guó)崩塌

圓夢(mèng)的小老頭
2026-04-17 23:52:41
萬(wàn)字長(zhǎng)文!黃仁勛:DeepSeek深度耦合華為,對(duì)美國(guó)來(lái)說(shuō)將是災(zāi)難

萬(wàn)字長(zhǎng)文!黃仁勛:DeepSeek深度耦合華為,對(duì)美國(guó)來(lái)說(shuō)將是災(zāi)難

財(cái)通社
2026-04-19 17:42:25
基辛格談中印戰(zhàn)爭(zhēng):雙方刻意碰撞結(jié)果,中國(guó)借印度給各國(guó)標(biāo)明紅線

基辛格談中印戰(zhàn)爭(zhēng):雙方刻意碰撞結(jié)果,中國(guó)借印度給各國(guó)標(biāo)明紅線

談史論天地
2026-04-19 07:59:55
聰明又招財(cái)!2026年這3個(gè)生肖人緣好到爆,財(cái)富接不完

聰明又招財(cái)!2026年這3個(gè)生肖人緣好到爆,財(cái)富接不完

毅談生肖
2026-04-20 10:49:51
第185場(chǎng)!1995年至今:詹姆斯季后賽勝場(chǎng)超越馬刺排名第一

第185場(chǎng)!1995年至今:詹姆斯季后賽勝場(chǎng)超越馬刺排名第一

北青網(wǎng)-北京青年報(bào)
2026-04-19 20:20:14
考古:大明湖挖出文物證實(shí),濟(jì)南是中國(guó)唯一5000年連續(xù)建城的城市

考古:大明湖挖出文物證實(shí),濟(jì)南是中國(guó)唯一5000年連續(xù)建城的城市

文史達(dá)觀
2026-03-27 16:15:00
戀愛(ài)腦的女人能有多離譜?看完評(píng)論區(qū)我愣住了,這些事真的存在嗎

戀愛(ài)腦的女人能有多離譜?看完評(píng)論區(qū)我愣住了,這些事真的存在嗎

夜深愛(ài)雜談
2026-04-19 09:56:53
內(nèi)維爾:阿森納已經(jīng)盡力做到最好,但瓜帥和曼城是一臺(tái)機(jī)器

內(nèi)維爾:阿森納已經(jīng)盡力做到最好,但瓜帥和曼城是一臺(tái)機(jī)器

懂球帝
2026-04-20 07:07:06
蘋果斷崖式領(lǐng)先,華為緊隨其后,小米第三

蘋果斷崖式領(lǐng)先,華為緊隨其后,小米第三

科技鋒說(shuō)
2026-04-19 09:32:52
隨著曼城2-1槍手,利物浦2-1,英超最新排名出爐!槍手70分領(lǐng)跑

隨著曼城2-1槍手,利物浦2-1,英超最新排名出爐!槍手70分領(lǐng)跑

薇說(shuō)體育
2026-04-20 10:52:44
愛(ài)德華茲:整場(chǎng)追著穆雷跑真的很累 他幾乎參與了每一次進(jìn)攻戰(zhàn)術(shù)

愛(ài)德華茲:整場(chǎng)追著穆雷跑真的很累 他幾乎參與了每一次進(jìn)攻戰(zhàn)術(shù)

北青網(wǎng)-北京青年報(bào)
2026-04-19 20:20:35
魯尼要去美國(guó)報(bào)道世界杯,科琳希望與他保持距離&分開(kāi)冷靜

魯尼要去美國(guó)報(bào)道世界杯,科琳希望與他保持距離&分開(kāi)冷靜

喜歡歷史的阿繁
2026-04-20 10:48:28
2026-04-20 11:24:49
51Testing軟件測(cè)試網(wǎng) incentive-icons
51Testing軟件測(cè)試網(wǎng)
中國(guó)軟件測(cè)試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

藍(lán)色起源一級(jí)火箭完美回收 客戶衛(wèi)星未入軌

頭條要聞

失蹤女老板被找到 嫌犯曾改名整容還催警察"還我清白"

頭條要聞

失蹤女老板被找到 嫌犯曾改名整容還催警察"還我清白"

體育要聞

七大獎(jiǎng)項(xiàng)候選官宣!文班或全票DPOY

娛樂(lè)要聞

章子怡!增重20斤素顏拍新片

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

月之暗面IPO迷局

汽車要聞

外觀非常驚艷 全新一代寶馬6系有望回歸

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

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

本地新聞

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

房產(chǎn)要聞

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

干細(xì)胞抗衰4大誤區(qū),90%的人都中招

手機(jī)要聞

上市還沒(méi)半年!三星三折疊屏手機(jī)面臨退市 友商跟華為差距太遠(yuǎn)

公開(kāi)課

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

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