Testing io:如何对不同的用户类型使用一个登录测试?

Testing io:如何对不同的用户类型使用一个登录测试?,testing,automated-tests,ui-automation,cypress,Testing,Automated Tests,Ui Automation,Cypress,我正在使用Cypress.io测试第三方页面 我想测试一个登录页面,并有不同的用户。所有用户都可以访问不同的内容。所以我必须检查他们是否找到了正确的页面。我想使用1个测试并将数据传递到此测试 没有变量,我有以下代码: cy.xpath("path) .type('manager') cy.xpath("path") .type('password') cy.xpath('path for login button') .click() 我怎样才能开始这样做?我可以用固定装置吗?如果是,如何进行

我正在使用Cypress.io测试第三方页面

我想测试一个登录页面,并有不同的用户。所有用户都可以访问不同的内容。所以我必须检查他们是否找到了正确的页面。我想使用1个测试并将数据传递到此测试

没有变量,我有以下代码:

cy.xpath("path)
.type('manager')
cy.xpath("path")
.type('password')
cy.xpath('path for login button')
.click()

我怎样才能开始这样做?我可以用固定装置吗?如果是,如何进行?我可以将带有变量的登录名写入命令中,以便在其他测试中使用它吗?

我建议通过
[key,value]
对进行迭代,例如:

describe('Login', () => {
    const userType = new Map([
        ['userX', password],
        ['userY', password],
        ['userZ', password],
    ]);
        for (const [key, value] of userType.entries()) {
            it(`should be logged as ${key}`, () => {
                cy.visit('/login');
                cy.xpath("path).type(key)
                cy.xpath("path").type(value)
                cy.xpath('path_for_login_button').click()
                /* 

                    assert logic here

                 */

                cy.visit('/logout')
        });
    }
});

嗨,谢谢,但是我在哪里可以定义键?用户呢?我试过这个,它对我有效。但是,当我在诸如
if(key=='Manager'){cy.xpath('path').should('contain','Manager')}if(key=='Developer'){cy.xpath('path').should('contain','Developer')}
之类的逻辑中使用“if-else”时,我会收到一条错误消息(超时)。对于开发者来说,它不检查if的情况。我认为这里不需要if/else语句。如果您试图断言的对象包含用户类型、管理员或开发人员,只需执行以下操作:
cy.xpath('path')。应该('contain',key)