相关疑难解决方法(0)

如何使用赛普拉斯测试文件输入?

如何编写需要与文件Input DOM元素交互的e2e流测试?

如果它是文本输入,我可以与它交互(检查值,设置值)等作为它的DOM组件.但是如果我有一个文件输入元素,我猜测交互是有限的,直到我可以打开对话框来选择文件.我无法前进并选择我要上传的文件,因为对话框是本机的而不是某些浏览器元素.

那么我如何测试用户是否可以从我的网站正确上传文件?我正在使用赛普拉斯编写我的e2e测试.

javascript testing integration-testing e2e-testing cypress

9
推荐指数
6
解决办法
1万
查看次数

Cypress w/graphql - 通过 UI 进行测试时遇到问题。存根突变的更好方法?

因此,如果我在真空中测试页面而没有与后端进行太多交互,那么效果很好。如果它遇到任何类型的服务,我在实际与我的 UI 交互时遇到问题。基本上,没有什么是经过验证的。我尝试以编程方式 setCookie,没有骰子。我试着读饼干,不。顺便说一句,我的整个网站都需要登录。

cy.setCookie('sess', ';askjdfa;skdjfa;skdjfa;skdjfa;skfjd');<-- does not work

cy.getCookie('sess').should('exist') <-- does not work
Run Code Online (Sandbox Code Playgroud)

我在真正“测试”这个的最佳方式上遇到了问题。例如,我有一个帐户部分,用户可以“更新”他们的个人信息。我尝试,填写表单(通过UI测试),但提交被拒绝,没有Auth。即使我刚刚登录(通过 UI 测试)。- 我知道我需要删除它,因为对我网站的每个部分进行 UI-Login 都是不好的做法。

所以,我不知道如何使用 cy.request() 存根 graphql 调用。这是我的突变。

mutation Login($email: Email!, $password: String!) {
  login(email: $email, password: $password) {
    userID
    firstName
    lastName
  }
}
Run Code Online (Sandbox Code Playgroud)
  1. 现在,我正在为我正在测试的站点的每个部分导入登录规范。我知道这是一种反模式。喜欢解决这个问题。

  2. 我的 AUTH (cookie) 没有被设置。即使我尝试以编程方式设置它,也不起作用。

  3. 也许我应该剔除我的 graphql 突变?如何?

  4. 最后,如果我正在剔除我的 graphql 突变,我该如何更新会话(通过我的主会话查询)。如果我可以让这些突变起作用,那么刷新页面将获得我更新的数据,所以我并不完全需要这部分。

有任何想法吗?

cypress

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