我是一个前端开发工程师,由于没有自动化测试这块,一直都是人工去测,不免太耗时。所以想试试Cypress,希望能有收获。
我在selenium和cypress这两个框架中纠结,最后选择这个框架的初心很简单,老公推荐的,哈哈,我信他。然后就开始了我的自动化测试之旅。
首先,还是得安装环境,因为nodejs和npm早就ready,我只需要新创建一个文件夹,在该文件夹下执行命令npm install cypress
,然后等待大概十分钟左右,安装完成!
那就尝试下手动添加package.json
{
"name": "Cypress_project",
"version": "1.0.0",
"dependencies": {
},
"scripts": {
"cypress": "cypress open"
}
}
执行npm run cypress
在原项目中也可添加cypress,最近npm install cypress
不成功,改为cnpm install cypress
快多了,安装完,没有生产cypress目录,在package.json中的“script”中添加"cypress": "cypress open" ,执行npm run cypress
,第一次执行,会自动创建cypress目录。
examples下面是Cypress提供的demo,点击即可运行。运行时一直刷刷刷的在跑案例跑网页,这种感觉,就跟上了高速一般~~
暗暗发誓,一定要用好这个玩意儿,解放双手,翻身农奴把歌唱~~
-
Cypress._
:Lodash -
Cypress.$
:jQuery -
Cypress.Blob
:blob-utli -
Cypress.minimatch()
:minimatch -
Cypress.moment()
:moment.js -
new Cypress.Promise(fn)
:Bluebird
Cypress 中内置的断言 包含了几种类型:
-
Chai:断言
-
expect('test').to.be.a('string')
:BDD 风格 -
assert.equal(3, 3, 'vals equal')
:TDD 风格
-
-
Chai jQuery:关于 DOM 的断言
expect(\$el).to.have.attr('foo', 'bar')
-
Sinon-Chai:关于函数调用情况的断言
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 风格的生命周期,
不同测试的命名风格:
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 |