gpt4 book ai didi

cucumber - 在 cucumber 中使用相同的浏览器窗口

转载 作者:行者123 更新时间:2023-12-04 05:17:50 26 4
gpt4 key购买 nike

在我的功能文件中,我有这样的东西:

Background:
Given I am on login screen
Then I log in

Scenario:
Given I am on a random account summary
when I try feature-1
Then I see some output-1

Scenario:
Given I am on account summary
When I try feature-2
Then I see some message

当 cucumber 执行第二个场景时,它重新执行后台。

我的问题是——
是否可以告诉 Cucumber 使用与之前场景相同的浏览器 session /状态?
这将帮助我的测试节省一些执行时间。

最佳答案

Capybara 在每个场景之前重置 session ,因此您应该在每个场景之前明确登录。但是由于您不会在每种情况下都测试登录,因此我建议将此过程自动化。

首先,您可以使您的背景更具说明性:

Background:
Given I'm logged in

this article ,它说明了为什么最好这样做。

然后你可以:
  • 在后端生成新 session
  • 将 session cookie 从后端发送到您的测试
  • 将 cookie 设置为 Capybara。 Capybara 没有用于它的跨驱动程序 API,因此您可以使用:

  • Webdriver :
    page.driver.browser.manage.add_cookie(name: 'name', value: 'value')

    Capybara-webkit :
    page.driver.browser.set_cookie('c_user=asdasdasd; domain=.domain.com')

    Poltergeist :
    page.driver.set_cookie('name', 'value')

    RackTest似乎并不完全支持它。作为解决方法,您可以执行以下操作:
    get new_service_request_path, {}, 'HTTP_COOKIE' => 'name=value'

    关于cucumber - 在 cucumber 中使用相同的浏览器窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027948/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com