一、生命周期
- 代表一个测试组的名称和作用域,在 Cypress 中,它叫 describe
- 代表整个测试组执行前,进行初始化工作的作用域,在 Cypress 中,它叫 before
- 代表整个测试组执行后,进行收尾清理工作的作用域,在 Cypress 中,它叫 after
- 代表每个测试用例执行前,进行处理工作的作用域,在 Cypress 中,它叫 beforeEach
- 代表每个测试用例执行后,进行处理工作的作用域,在 Cypress 中,它叫 afterEach
- 代表一个测试用例的名称和作用域,在 Cypress 中,它叫 it
describe('测试组名称', () => {
before(() => {
console.log(' --- 在当前 describe 中所有 it 执行前,运行一次 --- ')
})
after(() => {
console.log(' --- 在当前 describe 中所有 it 执行后,运行一次 --- ')
})
beforeEach(() => {
console.log(' --- 在当前 describe 中每个 it 执行前,运行一次 --- ')
})
afterEach(() => {
console.log(' --- 在当前 describe 中每个 it 执行后,运行一次 --- ')
})
it('测试用例1', () => {
// 在这里写测试逻辑...
})
it('测试用例2', () => {
// 在这里写测试逻辑...
})
})
一、常用命令
1,beforeEach:执行测试用例之前操作,一个 describe() 或 context() 内有多少个测试用例 it() ,就会执行几次 beforeEach()
2,visit:在前置钩子函数beforeEach里面访问对应的链接
beforeEach(() => {
cy.visit('cashticket?isdebug=true&userid=pd86068&isskipoauth=true');
cy.wait(waitPageTime);
})
3,get:定位元素,用css selector定位选择器
4,type:输入文本
5,focus:元素聚焦
6,should:断言,hava.value 是元素的value属性值,判断是否为‘某个值’
7,wait:等待数毫秒或等待别名资源解析后,再继续执行下一个命令
it('Package Type', () => {
cy.get('#securityControl',{timeout:timeOut}).
focus().type('10y').wait(waitTime).
type('{enter}').//输入回车键
should('have.value','T 0 5/8 08/15/30 91282CAE1 US91282CAE12');
cy.wait(waitTime1);
cy.get('#packageType>div>div>input').
should('be.visible');
})
8,获取当前页面URL
cy.url()
cy.url().should('contain','link')
9,刷新页面
//等同于F5
cy.reaload()
//等同于ctrl+F5强制刷新
cy.reload(true)
10,设置窗口
cy.viewpoint(1024,768)
11,利用jQuery判断元素是否存在
const btn = '#btn'
Cypress.$(btn).length>0{
cy.get(btn).click()
}
12,获取元素的属性值
cy.get('#btn').then(function(){
const btnTxt = $btn.text()
cy.log(btnTxt)
})
13,清除文本
cy.get('div>a').clear()
cycy.get('div>a').clear().type()
14,操作单选多选按钮
//选中
cy.get('radio').first().check('us')
//取消选中
cy.get('radio').uncheck('us')
//选中所有复选框
cy.get('[type="checkbox"]').check()
//勾选值为’ subscribe ‘和’ accept '的复选框
cy.get('form input').check(['subscribe', 'accept'])
15,操作下拉菜单
cy.get('select').select('下拉选项的值')
cy.get('li').eq(0).click()
16,操作弹出框
cy.get('iframe')
.then(function($iframe){
//定义要查找的元素
const $body = $iframe.contents().find('body')
//在查找到的元素中查找btn并单击
cy.wrap($body).find('#bin').click()
})
17,操作被覆盖的元素
cy.get('#btn').click({force:true})
18,模拟键盘操作
cy.get('input').type('111')
cy.get('input').type('{enter}')