簡體   English   中英

如何使用django-behave在Given步驟中登錄用戶

[英]How to login user during Given step using django-behave

我正在使用django-behave在Django項目中運行行為測試。 在我的功能文件中,我在幾個場景中有這個給定的步驟:

 Given I am logged in

到目前為止我一直在做的是使用Selenium手動完成登錄過程。 但這需要很長時間,而不是我現在正在測試的。 加上行為文件說:

請求/斜紋/ Selenium交互等應該主要進入步驟

那么在給定的步驟中我該如何登錄用戶呢? 有沒有辦法使用django.test.Client.login()? 我可以把一個會話放到一個夾具中嗎?

好的,使用這個答案來解決另一個問題 ,我已經去了:

@given('I am logged in')
def impl(context):
    client = context.test.client
    client.login(email='test@email.com', password='password')

    cookie = client.cookies['sessionid']

    # Selenium will set cookie domain based on current page domain.
    context.browser.get(context.get_url('/404-loads-fastest/'))
    context.browser.add_cookie({
        'name': 'sessionid',
        'value': cookie.value,
        'secure': False,
        'path': '/',
    })

但它似乎仍然是間接的。

我是django-behave的原作者。 我已經打開了一張票,以改進有關如何登錄的文檔。

https://github.com/django-behave/django-behave/issues/65

我根據被測試的django系統做了不同的方式:在一個站點上,它使用標准的Django登錄,在另一個站點上,登錄是通過Ajax調用完成的,在3日,我正在使用第三方系統用於身份驗證

所以沒有單一的方法; 我像你一樣為每個系統編寫一個邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM