Cypress 之坑:解决 "net::ERR_CERT_AUTHORITY_INVALID" 错误

阅读时长 3 分钟读完

近年来,前端自动化测试工具 Cypress 的应用越来越广泛。不过,有时候我们可能会在使用 Cypress 进行测试时遇到 "net::ERR_CERT_AUTHORITY_INVALID" 错误。如果你也遇到了这个问题,那么不要担心,本文将会详细介绍这个问题以及如何解决它。

什么是 "net::ERR_CERT_AUTHORITY_INVALID" 错误

"net::ERR_CERT_AUTHORITY_INVALID" 错误通常是由于未信任的 SSL 证书导致的。在进行 HTTPS 通信时,SSL 证书用于验证服务器的身份,如果 SSL 证书是无效的或者未信任的,那么就会出现 "net::ERR_CERT_AUTHORITY_INVALID" 错误。

在使用 Cypress 进行 E2E 测试时,我们通常会使用 Cypress 的一些插件来模拟进行到服务器的网络请求。这些插件可能默认使用了 https 协议,所以当我们进行 E2E 测试时可能会碰到 "net::ERR_CERT_AUTHORITY_INVALID" 错误。

如何解决 "net::ERR_CERT_AUTHORITY_INVALID" 错误

方法一:信任无效证书

一种解决办法是信任无效证书。可以在 Cypress 的配置文件 cypress.json 中添加以下内容:

这会让 Cypress 在启动浏览器时禁用 SSL 证书的验证,这样就可以信任无效证书。但是需要注意的是,这种解决办法并不是最佳实践,不应该在生产环境中使用。

方法二:使用有效证书

另一种解决办法是使用有效证书。可以向你的后端开发人员要求提供有效的 SSL 证书,并使用这个证书来进行 HTTPS 通信。这种方法比较安全可靠,但需要进行一些额外的工作。

方法三:忽略域名校验

还有一种解决办法是忽略域名校验。可以在 Cypress 的插件中使用 NODE_TLS_REJECT_UNAUTHORIZED 环境变量,并将其设置为 0,从而忽略 SSL 证书的校验。下面是一个示例代码:

-- -------------------- ---- -------
----- ----- - -----------------
---------------------------------------- - ----

----- ------- - ---------------
  --------- --------------
  ----- ----
  ----- ----
  ------- ------
-- ---------- -- -
  ---------------------------------
---

--------------

总结

当你在使用 Cypress 进行测试时遇到 "net::ERR_CERT_AUTHORITY_INVALID" 错误时,可以使用上述方法进行解决。其中,信任无效证书和忽略域名校验这两种方法并不是最佳实践,建议在生产环境中使用有效证书。希望本文对你有所帮助,若有不足之处,烦请指出,一起学习进步!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ed8bcaf6b2d6eab37b12cb

纠错
反馈