我是一個(gè)前端開發(fā)工程師窑滞,由于沒有自動(dòng)化測試這塊,一直都是人工去測电爹,不免太耗時(shí)蔫仙。所以想試試Cypress,希望能有收獲丐箩。
我在selenium和cypress這兩個(gè)框架中糾結(jié)摇邦,最后選擇這個(gè)框架的初心很簡單恤煞,老公推薦的,哈哈施籍,我信他居扒。然后就開始了我的自動(dòng)化測試之旅。
首先丑慎,還是得安裝環(huán)境喜喂,因?yàn)閚odejs和npm早就ready,我只需要新創(chuàng)建一個(gè)文件夾竿裂,在該文件夾下執(zhí)行命令npm install cypress
,然后等待大概十分鐘左右玉吁,安裝完成!
那就嘗試下手動(dòng)添加package.json
{
"name": "Cypress_project",
"version": "1.0.0",
"dependencies": {
},
"scripts": {
"cypress": "cypress open"
}
}
執(zhí)行npm run cypress
在原項(xiàng)目中也可添加cypress腻异,最近npm install cypress
不成功进副,改為cnpm install cypress
快多了,安裝完悔常,沒有生產(chǎn)cypress目錄影斑,在package.json中的“script”中添加"cypress": "cypress open" ,執(zhí)行npm run cypress
机打,第一次執(zhí)行矫户,會(huì)自動(dòng)創(chuàng)建cypress目錄。
examples下面是Cypress提供的demo残邀,點(diǎn)擊即可運(yùn)行皆辽。運(yùn)行時(shí)一直刷刷刷的在跑案例跑網(wǎng)頁,這種感覺罐旗,就跟上了高速一般~~
暗暗發(fā)誓膳汪,一定要用好這個(gè)玩意兒唯蝶,解放雙手九秀,翻身農(nóng)奴把歌唱~~
-
Cypress._
:Lodash -
Cypress.$
:jQuery -
Cypress.Blob
:blob-utli -
Cypress.minimatch()
:minimatch -
Cypress.moment()
:moment.js -
new Cypress.Promise(fn)
:Bluebird
Cypress 中內(nèi)置的斷言 包含了幾種類型:
-
Chai:斷言
-
expect('test').to.be.a('string')
:BDD 風(fēng)格 -
assert.equal(3, 3, 'vals equal')
:TDD 風(fēng)格
-
-
Chai jQuery:關(guān)于 DOM 的斷言
expect(\$el).to.have.attr('foo', 'bar')
-
Sinon-Chai:關(guān)于函數(shù)調(diào)用情況的斷言
expect(spy).to.be.called
-
.should()
:在 Cypress 中封裝了以上所有可用斷言-
cy.get('li.selected').should('have.length', 3)
:should -
cy.get('div').should(($div) => { expect($div)... })
:BDD
-
注意到 Cypress 使用 Mocha BDD 風(fēng)格的生命周期,
不同測試的命名風(fēng)格:
Mocha BDD | Mocha TDD | Jest |
---|---|---|
describe /context
|
suite |
describe |
specify /it
|
test |
test /it
|
before |
setup |
beforeAll |
after |
teardown |
afterAll |
beforeEach |
suiteSetup |
before |
afterEach |
suiteTeardown |
after |