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 |
特定項目的路徑 |