国产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)推薦
熱點推薦
春節(jié)后,這4種蔬菜不要隨便買!菜販子:我從來不吃,顧客搶著買

春節(jié)后,這4種蔬菜不要隨便買!菜販子:我從來不吃,顧客搶著買

阿龍美食記
2026-02-26 10:37:19
西方陣營集體站隊!多國力挺美以行動,伊朗徹底陷入孤立

西方陣營集體站隊!多國力挺美以行動,伊朗徹底陷入孤立

老馬拉車莫少裝
2026-03-01 00:00:55
女孩當小姐,一晚要提供4到5次上門服務(wù),2015年被親人點到不赴約

女孩當小姐,一晚要提供4到5次上門服務(wù),2015年被親人點到不赴約

漢史趣聞
2025-11-08 09:27:32
重慶高速公路集團,穆軍任上被查,曾任兩江新區(qū)最大國企董事長

重慶高速公路集團,穆軍任上被查,曾任兩江新區(qū)最大國企董事長

新浪財經(jīng)
2026-02-28 20:20:04
離婚7年,39歲楊冪高調(diào)宣布喜訊,和前夫劉愷威已經(jīng)拉開距離

離婚7年,39歲楊冪高調(diào)宣布喜訊,和前夫劉愷威已經(jīng)拉開距離

洲洲影視娛評
2026-02-27 13:23:45
單局53-0被逆轉(zhuǎn)!4冠王送大禮,吳宜澤單桿73分逆轉(zhuǎn),追到1-1!

單局53-0被逆轉(zhuǎn)!4冠王送大禮,吳宜澤單桿73分逆轉(zhuǎn),追到1-1!

劉姚堯的文字城堡
2026-02-28 21:57:49
臉都不要了!中國男籃贏球后,裁判身份曝光不簡單,或遭重罰

臉都不要了!中國男籃贏球后,裁判身份曝光不簡單,或遭重罰

輸在感情刀
2026-02-28 01:24:16
特朗普鎖定目標,首個拒絕美國的國家出現(xiàn),哈梅內(nèi)伊安排好了后事

特朗普鎖定目標,首個拒絕美國的國家出現(xiàn),哈梅內(nèi)伊安排好了后事

兵說
2026-02-28 00:20:47
伊朗外長:伊朗已將導(dǎo)彈射程限制在2000公里以內(nèi)

伊朗外長:伊朗已將導(dǎo)彈射程限制在2000公里以內(nèi)

新華社
2026-02-27 10:33:20
黎巴嫩總理:貝魯特不會讓任何人將本國拖入戰(zhàn)爭

黎巴嫩總理:貝魯特不會讓任何人將本國拖入戰(zhàn)爭

參考消息
2026-02-28 17:39:04
馬布里,48歲,剛領(lǐng)著一位中國姑娘去領(lǐng)了證。

馬布里,48歲,剛領(lǐng)著一位中國姑娘去領(lǐng)了證。

南權(quán)先生
2026-02-28 15:50:16
洗草莓時,有人放食鹽,有人放面粉,果農(nóng):都不對,教你正確做法

洗草莓時,有人放食鹽,有人放面粉,果農(nóng):都不對,教你正確做法

阿龍美食記
2026-02-28 10:49:43
中國駐伊朗大使館通報伊朗陸地邊境口岸情況

中國駐伊朗大使館通報伊朗陸地邊境口岸情況

新華社
2026-03-01 00:29:02
浙江一男子口頭勸醉酒朋友別開車后離開,朋友幾分鐘后駕車身亡;法院:死者屬嚴重醉酒狀態(tài),不應(yīng)僅限于口頭提醒,男子被判賠9.5萬余元

浙江一男子口頭勸醉酒朋友別開車后離開,朋友幾分鐘后駕車身亡;法院:死者屬嚴重醉酒狀態(tài),不應(yīng)僅限于口頭提醒,男子被判賠9.5萬余元

揚子晚報
2026-02-28 11:21:00
免去劉忠義的公安部部長助理職務(wù)

免去劉忠義的公安部部長助理職務(wù)

創(chuàng)作者_W4T9
2026-02-27 20:07:55
被罵“后媽式早餐“的她,全網(wǎng)有100萬人在追更!

被罵“后媽式早餐“的她,全網(wǎng)有100萬人在追更!

媽咪OK
2026-02-27 15:16:05
伊朗的投降王牌:只要美國松綁,出賣中國利益絕不會有半點猶豫

伊朗的投降王牌:只要美國松綁,出賣中國利益絕不會有半點猶豫

老范談史
2026-02-28 06:45:51
五角大樓怒了!F-35首席教官去中國打工,難怪我軍總能逮個正著

五角大樓怒了!F-35首席教官去中國打工,難怪我軍總能逮個正著

書紀文譚
2026-02-28 16:48:05
中國借給委內(nèi)瑞拉的650億打了水漂?美財長放話:別想從那拿石油

中國借給委內(nèi)瑞拉的650億打了水漂?美財長放話:別想從那拿石油

王二哥老搞笑
2026-02-28 11:04:45
1歲娃心臟有個大洞,英國醫(yī)生說沒救了!結(jié)果網(wǎng)友眾籌150萬,硬給救活了!

1歲娃心臟有個大洞,英國醫(yī)生說沒救了!結(jié)果網(wǎng)友眾籌150萬,硬給救活了!

英國那些事兒
2026-02-27 23:25:51
2026-03-01 01:19:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

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

頭條要聞

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

頭條要聞

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

體育要聞

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

娛樂要聞

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

財經(jīng)要聞

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

汽車要聞

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

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

健康
旅游
游戲
藝術(shù)
公開課

轉(zhuǎn)頭就暈的耳石癥,能開車上班嗎?

旅游要聞

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

所有人保持嘴角不變!生化危機:安魂曲里昂騷話大盤點

藝術(shù)要聞

驚艷!這位天使般的女子與油畫讓人心動不已!

公開課

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

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