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

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

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

0
分享至

前言

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

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

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

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

pytest_addoption

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

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

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

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

def pytest_addoption(parser):

parser.addoption(

"--anjing",

action="store",

default="dev",

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

參數(shù)介紹

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

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

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

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

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

使用方法

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

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

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

3、通過編寫測試用例中調(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)的測試用例:

#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í)行時(shí)候,后續(xù)進(jìn)行添加了對(duì)應(yīng)的命令行參數(shù)值,這里小編是對(duì)兩個(gè)命令行參數(shù)都添加了值,那么如果不添加值會(huì)怎么樣呢?

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

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

案例展示

上述小編是介紹了如何使用,那么我們?nèi)绾卧诮涌陧?xiàng)目中使用呢?小編這里通過一個(gè)簡單的方法通過項(xiàng)目進(jìn)行展示,這里小編通過將默認(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=='查詢成功!'

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

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

總結(jié)

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

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

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

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

特別聲明:以上內(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)推薦
Anthropic妥協(xié)了

Anthropic妥協(xié)了

虎嗅APP
2026-02-27 06:00:07
77年李德生探望葉劍英,席間葉帥突然提點(diǎn):你去看看你們的老政委

77年李德生探望葉劍英,席間葉帥突然提點(diǎn):你去看看你們的老政委

談古論今歷史有道
2026-02-28 08:15:03
日本防長的會(huì)議剛結(jié)束,馬來西亞發(fā)話:南海問題將無視中方的主張

日本防長的會(huì)議剛結(jié)束,馬來西亞發(fā)話:南海問題將無視中方的主張

吃貨的分享
2026-03-01 09:17:14
34歲東北姑娘拿下81歲全球首富,長的很漂亮,一年抱倆娃身價(jià)上億

34歲東北姑娘拿下81歲全球首富,長的很漂亮,一年抱倆娃身價(jià)上億

云舟史策
2025-09-13 07:37:04
【李國豪】南京長江大橋設(shè)計(jì)時(shí),他主張6車道,當(dāng)?shù)卣畧?jiān)持4車道

【李國豪】南京長江大橋設(shè)計(jì)時(shí),他主張6車道,當(dāng)?shù)卣畧?jiān)持4車道

年之父
2026-02-23 09:10:06
中美局勢可能發(fā)生大反轉(zhuǎn),最先超過美國的竟不是經(jīng)濟(jì)

中美局勢可能發(fā)生大反轉(zhuǎn),最先超過美國的竟不是經(jīng)濟(jì)

華人星光
2026-01-07 13:32:47
一夜過去,美伊最新戰(zhàn)事進(jìn)展匯總

一夜過去,美伊最新戰(zhàn)事進(jìn)展匯總

起喜電影
2026-03-01 09:18:01
伊朗伊斯蘭革命衛(wèi)隊(duì)指揮官:伊朗目前使用的只是“廢舊導(dǎo)彈”

伊朗伊斯蘭革命衛(wèi)隊(duì)指揮官:伊朗目前使用的只是“廢舊導(dǎo)彈”

參考消息
2026-03-01 01:29:04
巴拿馬總統(tǒng)警告中國不要反制,否則報(bào)復(fù),結(jié)果中國反手就是三連擊

巴拿馬總統(tǒng)警告中國不要反制,否則報(bào)復(fù),結(jié)果中國反手就是三連擊

時(shí)尚的弄潮
2026-03-01 08:51:10
王曼昱贏了球,卻用一句話讓對(duì)手紅了眼眶!這才是大將風(fēng)范!

王曼昱贏了球,卻用一句話讓對(duì)手紅了眼眶!這才是大將風(fēng)范!

眼界縱橫
2026-02-28 20:58:39
神算子大伯料事如神,住我家16年,卻不愿將本事傳我,多年后釋然

神算子大伯料事如神,住我家16年,卻不愿將本事傳我,多年后釋然

人間百態(tài)大全
2026-02-28 06:40:03
億萬國人破防!90歲院士平靜宣布,中國導(dǎo)彈從此沒有任何死角!

億萬國人破防!90歲院士平靜宣布,中國導(dǎo)彈從此沒有任何死角!

Thurman在昆明
2026-02-28 20:53:27
慘烈的仗,要打到2030年?

慘烈的仗,要打到2030年?

中國新聞周刊
2026-02-26 22:44:14
18連勝!孫穎莎4-2擊敗早田希娜!賽后日本媒體集體陷入驚恐,發(fā)出一陣陣哀鳴

18連勝!孫穎莎4-2擊敗早田希娜!賽后日本媒體集體陷入驚恐,發(fā)出一陣陣哀鳴

寒律
2026-03-01 02:01:28
史詩級(jí)封殺!2000萬網(wǎng)紅“聽風(fēng)的蠶”徹底涼了

史詩級(jí)封殺!2000萬網(wǎng)紅“聽風(fēng)的蠶”徹底涼了

互聯(lián)網(wǎng)品牌官
2026-02-12 01:17:23
“農(nóng)村太子爺含金量堪比兩斤雞屎!”6個(gè)姐姐給弟弟征婚,被群嘲

“農(nóng)村太子爺含金量堪比兩斤雞屎!”6個(gè)姐姐給弟弟征婚,被群嘲

妍妍教育日記
2026-02-26 19:52:39
天道好輪回!馬筱梅生子后首表態(tài),小S怒罵,前夫里子面子都丟了

天道好輪回!馬筱梅生子后首表態(tài),小S怒罵,前夫里子面子都丟了

有范又有料
2026-02-28 14:43:18
山姆被曝大降價(jià)!深圳門店最新回應(yīng)

山姆被曝大降價(jià)!深圳門店最新回應(yīng)

深圳晚報(bào)
2026-02-28 14:40:56
毛岸英究竟怎么犧牲的?2020年彭德懷發(fā)的絕密電報(bào)公開,寫了什么

毛岸英究竟怎么犧牲的?2020年彭德懷發(fā)的絕密電報(bào)公開,寫了什么

楚風(fēng)說歷史
2026-02-18 07:25:03
武漢嵐圖汽車的公積金工資曝光!

武漢嵐圖汽車的公積金工資曝光!

趣味萌寵的日常
2026-02-28 21:00:18
2026-03-01 10:32:49
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1528文章數(shù) 13252關(guān)注度
往期回顧 全部

科技要聞

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

頭條要聞

牛彈琴:中東大戰(zhàn)開始 有三個(gè)可怕的后果

頭條要聞

牛彈琴:中東大戰(zhàn)開始 有三個(gè)可怕的后果

體育要聞

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

娛樂要聞

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

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

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

汽車要聞

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

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

健康
家居
本地
手機(jī)
房產(chǎn)

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

家居要聞

素色肌理 品意式格調(diào)

本地新聞

津南好·四時(shí)總相宜

手機(jī)要聞

更新包超10GB:華為鴻蒙HarmonyOS 6.0.0.328花粉Beta版開推

房產(chǎn)要聞

濱江九小也來了!集齊海僑北+哈羅、寰島...江東教育要炸了!

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