2017-01-04 8 views
3

Я пытаюсь использовать саранчу для входа в мое веб-приложение. Я в самом начале использования саранчи.Саранча: Понимание создания файла 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, но Логин не успешно, а содержание ответа источника не совпадает с действительным источником после регистрации

Мой веб-приложение создает куки и перенаправления на URL-адрес на основе cookie после входа в систему. Я пытаюсь понять, автоматически ли эта операция создания файла cookie автоматически создается из саранчи или мне нужно добавить эту часть логики создания cookie в самом скрипте.

Любая помощь относительно этого очень ценится.

Благодаря

+0

Какое значение вы получили от 'response.content'. Я только начал смотреть на него. Благодарю. – bhansa

+0

У меня была такая же проблема в саранче. Я, в конце концов, отказался от теста и отправился в Гэтлинг. Внедрив его в Gatling, я понял, что проблема связана с тем, что токены HMAC и csrf не реализованы. – Stelios

ответ

1

Вам может понадобиться, чтобы посмотреть на this.

В блоке with вы можете проанализировать ответ и проверить, правильно ли вы получили ответ.

Предположим, что вы должны получить поле куки в ваших куки ответа, если вы войти в успех, то вы можете сделать так:

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') 

 Смежные вопросы

  • Нет связанных вопросов^_^