标签: cypress-session

如何实现 Cypress v10 session() 来保留最初不可用的 cookie

我正在 React 前端上运行 cypress v10,并尝试让我的 cookie 在我的一些测试中持续存在。

我正在测试登录和退出我的应用程序的流程。从 V10 开始,cy.session() 似乎是可行的方法。然而,我见过的大多数例子只是在 beforeEach() 的开头添加一个 cookie 到一个命名会话对象中。

我在测试模块开始时没有最初可用的 cookie,我创建了一些测试(如下所示),在使用 cookie 登录时进行更多测试,然后注销,删除 cookie。

所以我对如何将 session() 实现到以下代码的组合中有点困惑。可以使用一些结构方向,谢谢!

describe('Auth (e2e)', () => {
    
  it('should load and redirect to /login', () => {
    cy.visit('https://localhost:3000/');
    cy.wait(500);
    cy.url().should('include', 'login');
  });
    
  it('login button should be disabled initially', () => {
    cy.get('#btn-login').should('have.attr', 'disabled');
  });
    
  it('login button should be enabled upon enter valid details', () => {
    cy.get('#tbxUsername').click().type('hfisher');
    cy.get('#tbxPassword').click().type('#VS1DEV');
    cy.get('#btn-login').should('not.have.attr', 'disabled');
  });
    
  it('should navigate to the home/dashboard upon logging …
Run Code Online (Sandbox Code Playgroud)

cookies reactjs cypress cypress-session

5
推荐指数
1
解决办法
878
查看次数

在 Cypress 中的多个测试中使用 cy.session

在最新版本的 Cypress 中,Cookie 保留已被弃用,因此我希望使用 cy.session。但是,我无法让它在多个测试中工作,因为 cy.session 需要位于测试“it”内,这是我当前如何设置测试的示例。

    beforeEach(() => {
    Cypress.Cookies.defaults({
    preserve: /somecookie|someOtherCookie|AnotherCookie/
    })
   it('Navigate to URL', () => {
        performance.NavigateToUrl(URL);
    });

    it('Login - Username/Pass', () => {
        performance.LoginUserPass();
    });        
    it('Navigate Order Page', () => {
        performance.Orderpage();
    });
     //And so on............
Run Code Online (Sandbox Code Playgroud)

欢迎任何帮助和建议,因为我真的不想重写测试结构,因为我创建了一份关于当前输出/设计的报告。

在所有测试中保留会话

javascript cypress cypress-session

2
推荐指数
1
解决办法
2533
查看次数

Cypress:是否可以导航到网页并将其保持打开状态以进行下一个测试?

我计划将现有项目的 Cypress 版本从 6.9.1 更新到 12.6.0。

目前,我们正在导航到网页并在 before() 挂钩中使用 ntlm-auth 登录。之后,网页保持打开状态,可用于接下来的所有测试。

在最新的赛普拉斯版本中,似乎在每个测试用例之后都会清除并关闭页面,据我所知,这是拥有更好的测试用例所需的行为。

但是,在最新的 Cypress 版本中,有没有一种方法可以在 before hook 中导航到网页,或者在第一个测试中,将页面保持打开状态,然后在第二个测试用例中与其交互并导航到同一页面的其他部分、保持页面打开等?

现有的代码结构如下所示:

before(() => {

  cy.ntlm(
    ['<url>'],
    <username>,
    <password>
  );

  cy.visit(<url>);

});

it('Test 1', () => {
  cy.contains('something').click();
});

it('Test 2', () => {
  cy.get('#something').type('{enter}');
});
Run Code Online (Sandbox Code Playgroud)

我尝试在 before 钩子中使用 cy.session() 保存会话,我的想法是在下一个测试中恢复会话/页面,但我不确定这是否是正确的方法。

ntlm-authentication cypress cypress-session

1
推荐指数
1
解决办法
1752
查看次数

如何将数据保存在变量中并在 Cypress 的其他块中重用它?

如果可以在 Cypress.io 中将数据保存在变量中并在其他块中重用它例如,我有一个特殊的设备名称。我想接收此数据,然后单击它后,检查新窗口中的标题是否包含设备的特殊名称

我知道它如何使用静态名称,但我尝试创建动态自动测试,我想知道是否可能

javascript jquery cypress cypress-session

0
推荐指数
1
解决办法
572
查看次数