この記事の主な内容は、同様のリクエストをバッチで処理する方法です。実際のプロジェクトでは、多くの場合、いくつかの同様の要求をシミュレートする必要があります。特に、同じシナリオで異なるデータを実行します。その目的は主に、さまざまなデータ環境でパフォーマンスが一貫しているかどうかを確認することです。一般的に、パフォーマンスのパフォーマンスがデータによって異なる場合は、パフォーマンスの問題があります。テストデータが異なると、バックエンドのテスト処理セットに一貫性がなくなるかどうかを確認できます。2つの状況があります。
1)バックエンド処理データセットに一貫性がある場合、バックエンドロジックコードのパフォーマンスの安定性が低い可能性があり、コード実行の安定性と効率に注意を払う必要があります。この場合、統計分析のために複数のテスト結果を取得できます。まず、今すぐ判断を確認してから、コードのパフォーマンスの安定性を分析します。
2)バックエンドデータ収集の不整合に対処する方法。まず、実際の状況が実際に一貫性のないデータセットを処理しているかどうかを確認する必要があります。一貫性がない場合、特にパフォーマンス応答の変動が大きすぎる場合は、関連するコードのスケーラビリティを考慮する必要があります。たとえば、処理時間が1秒、処理時間が5秒の場合、パフォーマンスの差は大きいと見なされます。
非常に多くの同様のリクエストの背景を述べたので、説明するケースを取り上げましょう。このケースは、例としてブログ投稿を閲覧し、テストシナリオとして複数のブログ投稿を閲覧し、複数の閲覧リクエストのパフォーマンスを確認することに基づいています。
from locust import HttpUser, task, between
#simulate search from baidu.com
class MyUserBlogs(HttpUser):
wait_time = between(5,10)
def open_index(self):
self.client.get("/")
#https://www.cnblogs.com/ittranslator/p/13561431.html
@task
def search_from_blog(self):
key_words = [13561431,13462874,13215081]
for i in key_words:
self.client.get("/ittranslator/p/%i.html" % i)
#host : https://www.cnblogs.com
次のようにテストコマンドを実行します。
locust --host=https://www.cnblogs.com -f locustfile.py
LocustWebページのスクリーンショットは次のとおりです。