2017-01-04 22 views
3

WebアプリケーションへのログインにLocustを使用しようとしています。私はイナゴを使い始めています。Locust:Locustログインを使用中のCookie作成の理解

私はアプリケーションへのログインに次のコードを使用しています。

post_data = {'username': username, 'password': password,'Submit':'Login' } 
with self.client.post('/mylogin-url/', post_data, 
            catch_response=True) as response: 
    print response.code 
    print response.content 

この部分は常に、ステータスコード200を返しますが、ソースの応答内容が

私のWebアプリケーションがにクッキーを作成し、リダイレクト、ログイン後の実際のソースと同じではないとしてログインは、成功しませんログイン後のCookieに基づくURL。私はログイン操作がlocustから自動的にこのクッキー作成を行うかどうかを理解しようとしていますか、またはスクリプト自体のクッキー作成ロジックのその部分を追加する必要がありますか?

これに関するご支援をいただければ幸いです。

おかげ

+0

「response.content」から得た値は何ですか?私はちょうどそれを見始めた。ありがとう。 – bhansa

+0

私はイナゴで同じ問題を抱えていました。私は最終的にテストを廃止し、ガトリングに行きました。 これをGatlingで実装したところ、問題はHMACとcsrfトークンが実装されていないことに気がつきました。 – Stelios

答えて

1

あなたはthisを見てする必要があるかもしれません。

ブロックでは、応答を解析して正しい応答が得られるかどうかを確認できます。

はあなたが成功にログインすると、あなたはこのように行うことができますあなたの応答のクッキーにクッキーフィールドを取得する必要がありますと仮定します。

post_data = {'username': username, 'password': password,'Submit':'Login' } 
with self.client.post('/mylogin-url/', post_data, \ 
    catch_response=True) as response: 
    if 'cookie' not in respone.cookies: 
     response.failure('login failed') 
0

HTMLコンテンツ内応答は、ユーザがログインしていないことを伝えているようですその場合、レスポンステキストに失敗メッセージが含まれているかどうかを確認できます。

post_data = {'username': username, 'password': password,'Submit':'Login' } 
with self.client.post('/mylogin-url/', post_data, 
            catch_response=True) as response: 
    if response.text.contains("Login failed"): 
     response.failure('login failed') 
関連する問題