如何在TestCafe中定义没有登录页面的角色?

时间:2019-10-15 13:17:03

标签: testing automation roles e2e-testing testcafe

我无法使用此代码使测试稳定。 有人可以给我一些指示吗

我的应用没有登录页面,用户可能会以不同的方式登录,这决定了他们是否被身份验证Cookie阻塞。

因此,我决定通过对身份验证API的直接API调用来定义角色,然后使用用户令牌保存cookie:

select r1.*
from r1 join
     r2
     on r1.a = r2.val
union
select r1.*
from r1 join
     r2
     on r1.b = r2.val;

然后在代码测试中使用如下代码:

export const adminUser = Role('any-page', async t => {
  const loginRequest = await fetch(
    `https://my-auhtentication-api/oauth/token?grant_type=password&username=${userName}&password=${password}`,
    {
      method: 'POST',
    }
  )
  const loginToken = await loginRequest.json()
  await ClientFunction(() => {
    document.cookie = `myAuthCookie=${loginToken.access_token}; Domain=.my-app-domain.com; Path=/`
  })
})

问题是,当我仅运行此测试时,它工作正常,但是当我在其余堆栈中运行该测试时,它变得非常不稳定,有时可以工作,有时却不能。

1 个答案:

答案 0 :(得分:3)

对于端到端测试,最好是测试环境与生产环境相同。您的评论表明您在生产环境中使用父Web应用程序对用户进行身份验证,因此测试身份验证的最佳方法是在测试环境中使用同一父应用程序。