JMeter と Python を使用して非同期インターフェイス テストを実装する場合は、次の手順に従うことができます。
1. JMeter と Java Development Kit (JDK) をインストールします。
JMeter (https://jmeter.apache.org/download_jmeter.cgi) とオペレーティング システム用の JDK をダウンロードしてインストールします。
2. JMX テスト計画ファイルを作成します。
JMeter GUI を使用してテスト計画を作成および構成します。JMeter を開き、[ファイル] > [テンプレート] > [Web テスト計画の構築] > [作成] をクリックして新しいテスト計画を作成します。次に、以下の手順に従って構成します。
スレッドグループ: スレッド数、同時ユーザー数、ループ数などを設定します。
非同期HTTPリクエスト:URL、リクエストメソッド、パラメータなどを設定します。
アサーション: アサーション ルールを設定して、インターフェイスから返された結果が期待どおりかどうかを検証します。
結果ツリーの表示: インターフェイスの応答と結果を表示するために使用されます。
3. JMX ファイルを保存します。
[ファイル] > [テスト計画を名前を付けて保存] をクリックして、テスト計画を JMX ファイルとして保存します。
4. Python スクリプトを作成します。
Python スクリプトを使用してJMeter テスト計画を実行します。サンプルコードは次のとおりです。
import subprocess
jmeter_path = "/path/to/jmeter" # 替换为你的JMeter路径
jmeter_test_plan = "/path/to/your_test_plan.jmx" # 替换为你的测试计划文件路径
def run_jmeter_test_plan():
cmd = [jmeter_path, "-n", "-t", jmeter_test_plan, "-l", "/path/to/result.jtl"]
try:
subprocess.check_call(cmd)
print("JMeter test plan executed successfully.")
except subprocess.CalledProcessError as e:
print("JMeter test plan execution failed:", e)
run_jmeter_test_plan()
Python スクリプトでは、jmeter_path 変数と jmeter_test_plan 変数を実際のパスとファイル名に置き換える必要があります。-l オプションは、結果ファイルの出力パスを指定するために使用されます。
5. Python スクリプトを実行します。
上記の Python スクリプトを実行すると、JMeter コマンド ラインが呼び出され、テスト計画が実行され、結果が指定された JTL ファイルに保存されます。
6. テスト結果を分析します。
Python を使用して JMeter テスト結果ファイルを解析し、対応する応答時間やエラー情報などを取得します。Python の pandas ライブラリまたはその他の関連ライブラリを使用して、CSV または JTL 形式のテスト結果ファイルを処理できます。
import pandas as pd
def parse_results():
results = pd.read_csv(result_file, delimiter=",", skiprows=1)
# 获取响应时间信息
response_times = results['Latency'].tolist()
# 获取错误信息
errors = results.loc[results['Success'] == False, 'ResponseMessage'].tolist()
# 输出结果
print("Response Times:", response_times)
print("Errors:", errors)
parse_results()
この例では、パンダ ライブラリを使用して CSV ファイルを読み取り、最初の行のヘッダー行をスキップします (skiprows=1)。次に、対応する列にアクセスして、応答時間とエラー情報を取得します。追加情報は、実際のニーズと結果ファイルの構造に基づいて解析および処理できます。pandas ライブラリは豊富なデータ処理機能を提供し、その柔軟なメソッドと関数を使用して JMeter テスト結果を処理できます。
上記は基本的なフレームワークを提供するだけであり、実際の実装は特定のニーズやテスト計画に応じて調整する必要がある場合があります。非同期リクエストをシミュレートするには、アサーションの追加、タイマーの設定など、追加の構成が必要になる場合があります。
最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それほど価値のあるものではありませんが、使用できる場合は、直接受け取ることができます。
この情報は、[ソフトウェア テスト] の友人にとって最も包括的かつ完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。また、皆さんのお役に立てれば幸いです。