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 |
特定项目的路径 |