Pytest プラグインを介して自動テストの環境アドレスを簡単に切り替えるにはどうすればよいですか?

序文

以前のエディタでは、Pytestプラグインを使用して自動テスト環境を切り替える方法を紹介しましたが、そのときはフック関数でコマンドラインパラメータの値を取得し、事前に設定されたパラメータでテスト環境のアドレスを切り替える方法を使用していました。 。VX を追加してください: atstudy-js 「テスト」と返信して、自動テスト学習交換グループに参加してください~~

今日、エディターは Pytest プラグイン pytest-base-url を通じて実現されるメソッドを再度紹介します。

pytest-base-url

pytest-base-url は Pytest のサードパーティ プラグインであり、主にテスト環境のアドレスを切り替えるために使用されます。構成方法は 2 つあり、1 つはコマンド ラインに URL パラメーターを直接追加する方法で、もう 1 つは、 pytest.ini メソッドを渡して事前にテスト環境のアドレスを保存し、エディタに従って 2 つのメソッドがどのように実装されているかを確認します。

コマンドラインパラメータを渡します

コマンドラインパラメータが渡されます。ここでは、渡す必要があるテストケースに事前にbase-urlのパラメータ名を追加する必要があります。これにより、後続のコマンドラインでパラメータを直接渡すことが便利になります。

#test_01.py

#coding:utf-8

インポートリクエスト

def test_01(base_url):

データ={

'都市': "上海",

「キー」:「xxxxxxxxxx」

}

r=requests.post(base_url,data=データ)

結果=r.json()['理由']

print(r.json())

アサート結果=='クエリは成功しました!'

テスト ケースを作成した後、コマンド ラインを開き、対応するコマンドを実行します。通常、正常に実行するには pytest-vs 実行プログラムを追加するだけですが、ここではテスト環境である新しいパラメーターを追加する必要があります。住所。

pytest-vs--base-url テスト環境アドレス実行プログラム。

pytest-vs--base-url http://apis.juhe.cn/simpleWeather/query test_01.py

実行後、テスト ケースが正常に実行されたことがわかります。

コマンドラインから実行したくない場合は、Pytest 実行プログラムにコマンドライン パラメータを直接書き込むこともできます。

#coding:utf-8

pytestをインポートする

インポートリクエスト

def test_01(base_url):

データ={

'都市': "上海",

「キー」:「xxxxxxxxx」

}

r=requests.post(base_url,data=データ)

結果=r.json()['理由']

print(r.json())

アサート結果=='クエリは成功しました!'

if__name__=='__main__':

pytest.main(['-vs','--base-url','http://apis.juhe.cn/simpleWeather/query',])

注: ここにコマンド ラインを記述するときは、必ず --base-url とテスト環境のアドレスを別々に記述してください。そうしないと、プログラムがエラーを報告します。

pytest.ini方法

その中で、pytest.ini は主に Pytest の構成ファイル ツールに属し、いくつかの簡単なパラメータをこのファイルに保存できます。後で pytest.ini ファイルを通じてテスト環境を保存する必要があります。

pytest.ini ファイルを作成し、そのbase_url パラメータを次の場所に保存します。

[パイテスト]

base_url=http://apis.juhe.cn/simpleWeather/query

構成ファイルを作成した後は、トップコードから直接実行します。対応する URL アドレスと Base_url コマンドをコマンド ライン パラメーターに追加する必要はありません。

#coding:utf-8

pytestをインポートする

インポートリクエスト

def test_01(base_url):

データ={

'都市': "上海",

'キー':'xxxxxxxx'

}

r=requests.post(base_url,data=データ)

結果=r.json()['理由']

print(r.json())

アサート結果=='クエリは成功しました!'

ここにいる友人の中には、複数のテスト環境にどうやって対処すればよいのか、ここでどのように切り替えるべきなのか、と尋ねる人もいるでしょう。これは簡単です。pytest.ini 構成ファイルを実行することでこの機能を実現し、pytest.ini 構成ファイルにパラメータ addopts パラメータを追加します。そして、それぞれ 2 つのテスト環境を表す 2 つの ini ファイルを作成する必要があります。

pytest_dev.ini ファイル:

#pytest_dev.ini

[パイテスト]

addopts=--base-url=https://test.anjing.com

pytest_qa.ini ファイル:

#pytest_qa.ini

[パイテスト]

addopts=--base-url=https://qa.anjing.com

次に、必要なパラメータが正常に渡されたかどうかを判断するためのアサーションを記述するだけです。

#coding:utf-8

def test_home_page(base_url):

print(base_url)

アサートbase_url=="https://test.anjing.com"

次に、コマンド ライン パラメーターを使用して実行を続けますが、この時点では -o パラメーターを追加する必要があります。いわゆる -o パラメーターは、さまざまな ini ファイルの構成情報を読み取るためのものです。最初に pytest_dev.ini 構成を読み取りますファイルを確認し、実行プログラムが正常であることを確認します。

次に、pytest_qa.ini の構成ファイルを読み取ったところ、プログラム アサーションが失敗し、2 つのテスト環境のアドレスが一致していないことがわかりました。

要約する

編集部では、自動テストの際にテスト環境を切り替える方法を2つの簡単な方法で紹介していますが、もちろん方法が決まっているわけではなく、プロジェクトに合わせて柔軟に使いこなすことがポイントです。

最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それほど価値のあるものではありませんが、必要な場合はそれを取り上げることができます。

 

 これらの資料は、 [ソフトウェア テスト] の友人にとって最も包括的で完全な準備倉庫である必要があります。この倉庫は、最も困難な旅を乗り越える何万人もの。お役に立てれば幸いです。テスト エンジニア 

おすすめ

転載: blog.csdn.net/qq_73332379/article/details/132691206