cypress e2e 测试神器 安装使用及语法

cypress 我们直接去Cypress的官网,根据教程我们先进入我们项目的根目录,执行npm install cypress --save-dev,在安装完成之后是没有任何的动静的,除了我们的package.json中会多一个版本号的记录,在这里我们根据指引在控制台中输入node_modules/.bin/cypress open这一条命令主要是让我们进入这个目录后去执行cypress的一个可执行文件,在等待片刻后页面上会弹出一个熟悉的控制台,在控制台中会有一个Alert,我们点击按钮got it 就可以看到我们项目的根目录中生成了一个cypress.json文件和一个Cpress的文件夹,在文件夹的intergration中会有一些默认写好的spec,这些用例是框架在找不到指定路径时就会默认生成这么一个目录去提供整体结构的示例的,在cypress\integration 文件夹下写测试用例,可根据情况分文件夹存放 然后我们在cypress.json中填入我们需要修改的信息

{
  "projectId": "pza7eq",
  "baseUrl": "http://localhost:3000",
  "viewportHeight": 768,
  "viewportWidth": 1366
}

然后我们在package.json的scripts项下面加一条启动命令:"test:e2e": 'cypress open',下次启动直接运行这条命令就可以了。然后根据我们修改后的json在我们希望的目录下创建一系列的文件,这样我们就可以愉快的在cypress\integration 文件夹下写用例了

语法

describe('这里写用例的名字,分组使用', function() {
 it('动作的名字,可以理解为二级分组', function() {
   干嘛干嘛的写在这里
 })
 it('动作的名字,可以理解为二级分组', function() {
    干嘛干嘛的写在这里
 })
})
语法 释义 用法 备注
cy.visit() 访问一个路径 cy.visit(URL)
cy.get() 选择一个元素 cy.get('.action-email') 支持css选择器
cy.type() 在所选输入中输入文本 cy.type('输入的文本')
cy.pause() 暂停 放在要断点调试的位置 暂停,以逐步测试
cy.debug() 调试 放在要断点调试的位置 调试

cypress.run()

配置项

选项 描述
browser 指定不同的浏览器以运行测试
ciBuildId 为运行指定唯一标识符以启用分组并行化
config 指定配置
env 指定环境变量
group 集团在一次运行中一起记录测试
headed 显示Electron浏览器而不是无头地运行
key 指定您的秘密记录密钥
noExit 在所有测试运行后保持赛普拉斯开放
parallel 在多台计算机上并行运行录制的规格
port 覆盖默认端口
project 特定项目的路径
record 是否记录测试运行
reporter 指定一个mocha记者
reporterOptions 指定mocha报告选项
spec 指定要运行的规范

实例

const cypress = require('cypress')

cypress.run({
  reporter: 'junit',
  browser: 'chrome',
  config: {
    baseUrl: 'http://localhost:8080',
    chromeWebSecurity: false,
  },
  env: {
    foo: 'bar',
    baz: 'quux',
  }
})
const cypress = require('cypress')

cypress.run({
  spec: './cypress/integration/examples/actions.spec.js'
})
.then((results) => {
  console.log(results)
})
.catch((err) => {
  console.error(err)
})

cypress.run() 返回内容示例

{
  "cypressVersion": "3.0.2",
  "endedTestsAt": "2018-07-11T17:53:35.675Z",
  "browserName": "electron",
  "browserPath": "path/to/browser",
  "browserVersion": "59.0.3071.115",
  "config": {...},
  "osName": "darwin",
  "osVersion": "14.5.0",
  "runs": [{
    "error": null,
    "hooks": [...],
    "reporter": "spec",
    "reporterStats": {...},
    "screenshots": [],
    "shouldUploadVideo": true,
    "spec": {...},
    "stats": {...},
    "tests": [...],
    "video": "User/janelane/my-app/cypress/videos/abc123.mp4"
  }],
  "runUrl": "https://dashboard.cypress.io/projects/def456/runs/12",
  "startedTestsAt": "2018-07-11T17:53:35.463Z",
  "totalDuration": 212,
  "totalFailed": 1,
  "totalPassed": 0,
  "totalPending": 0,
  "totalSkipped": 12,
  "totalSuites": 8,
  "totalTests": 13,
}

cypress.open()

选项 描述
config 指定配置
detached 以分离模式打开赛普拉斯
env 指定环境变量
global 以全局模式运行
port 覆盖默认端口
project 特定项目的路径
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容