Cypress 是现代化的前端测试框架,它的设计目标是提高编写、运行和调试测试的效率。Cypress 具有自己的 API 和专用的测试驱动器,可以与每个阶段的测试交互,从测试环境的搭建到结果的可视化展示。Cypress.json 是 Cypress 的配置文件,包含了一些基本配置选项,可以帮助我们集中控制测试环境和行为方式。
Cypress.json 基本结构
Cypress.json 是一个 JSON 格式的配置文件,位于项目的根目录,可以配置多个参数,包含如下结构:
-- -------------------- ---- ------- - ---------- --- -- ------ ---------------- ---- -- ------ ----------------- ---- -- ------ ------------------ ------ -- -------- ------------------------ ----- -- -------- -------- ----- -- ------ ------------------------ ----- -- ----------- -------------------- ------ -- ---- ------ --- -- ------------------------ ------ -- -------- ------------ ------------ -------- -- ----- ------ ----- -- --- -- -
配置选项
baseUrl
baseUrl 是 Cypress 运行测试用例时的主机地址,可以用于跨域访问、跳过测试用例中的访问错误等。
{ "baseUrl": "http://localhost:3000" }
viewportWidth 和 viewportHeight
viewportWidth 和 viewportHeight 是测试用例的默认视窗大小,Cypress 支持自定义视窗大小和多种屏幕分辨率。
{ "viewportWidth": 1440, "viewportHeight": 720 }
pageLoadTimeout 和 defaultCommandTimeout
pageLoadTimeout 是页面加载的超时时间,用来限制页面在多长时间内加载完成。defaultCommandTimeout 是 Cypress 命令的默认超时时间,用来限制某个命令执行的最大时长。
{ "pageLoadTimeout": 15000, "defaultCommandTimeout": 5000 }
video
video 是用来控制 Cypress 是否录制测试用例的视频,Cypress 会将每次运行的视频保存在 video 目录下。
{ "video": false }
trashAssetsBeforeRuns
trashAssetsBeforeRuns 是在运行测试用例前是否清空之前运行遗留下来的文件。
{ "trashAssetsBeforeRuns": false }
chromeWebSecurity
chromeWebSecurity 是控制 Cypress 是否禁用 Chrome 浏览器的 Web 安全,Cypress 默认会禁用 Web 安全,它允许测试不同源之间的通信。
{ "chromeWebSecurity": true }
modifyObstructiveCode
modifyObstructiveCode 是控制 Cypress 是否自动修改一些阻塞代码,用来减少执行自动化测试时的提示和错误信息。
{ "modifyObstructiveCode": true }
userAgent
userAgent 是自定义浏览器用户代理的字符串,用来控制浏览器的一些特性和行为。
{ "userAgent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.63 Safari/537.36" }
示例代码
下面是一个完整的示例,以 cypress.json
文件名称保存在根目录中。
-- -------------------- ---- ------- - ---------- -------------------- ---------------- ----- ----------------- ---- ------------------ ------ ------------------------ ----- -------- ----- ------------------------ ----- -------------------- ------ ------------------------ ------ ------------ ------------ -------- -- ----- ------ ---- ------------------ ------- ---- ------ -------------------- -------------- -
总结
Cypress 的配置选项可以大大改善测试用例的性能和行为方式,我们可以根据需要配置它来满足我们的需求。在实际使用中,可以根据项目需求和测试用例的特性来选择合适的配置方式。同时,我们也可以对 cypress.json 文件的中选项进行自定义扩展,从而实现更加灵活的配置方案。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d316a2b5eee0b525a9f21f