LoginSignup
1
0

More than 1 year has passed since last update.

Locust でBasic認証が必要なエンドポイントへ負荷テストを行う

Last updated at Posted at 2021-09-24

はじめに

Locustの公式ページではloginのエンドポイントへPOSTリクエストを投げる例が示されています。

しかし、エンドポイントへのアクセスにBasic認証な場合にLocustでどのようにすればいいのかは記載されておらず調べる必要があったので、調べた内容をメモしておきます。

コード例

locustfile.py
from locust import HttpUser, task, between
from requests.auth import HTTPBasicAuth

class QuickstartUser(HttpUser):

    def on_start(self):
        auth = HTTPBasicAuth(username="hoge", password="hogePass")
        self.client.get("/token", auth=auth)

    @task
        self.client.get("/hoge")

結論としては、上記のように requestsライブラリHTTPBasicAuthでauthオブジェクトを作成して、clientに渡すことで認証できました。(ちなみにclientに利用されている HttpSessionrequests.Sessionを継承しています。)

requestsのAuthenticationの内容を確認すると、HTTPProxyAuthHTTPDigestAuthもあるので、Proxy認証やDigest認証も対応できそうです。

おわり

Locustを使うのは初めてだったのですが、pythonでシナリオが書け、Docker Imageも配布されていて使い勝手が良かったのでこれからも負荷試験する際にはお世話になろうと思います。

それでは、素敵なLocustライフを!

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0