一、生命周期

  • 代表一个测试组的名称和作用域,在 Cypress 中,它叫 describe
  • 代表整个测试组执行前,进行初始化工作的作用域,在 Cypress 中,它叫 before
  • 代表整个测试组执行后,进行收尾清理工作的作用域,在 Cypress 中,它叫 after
  • 代表每个测试用例执行前,进行处理工作的作用域,在 Cypress 中,它叫 beforeEach
  • 代表每个测试用例执行后,进行处理工作的作用域,在 Cypress 中,它叫 afterEach
  • 代表一个测试用例的名称和作用域,在 Cypress 中,它叫 it
    1. describe('测试组名称', () => {
    2. before(() => {
    3. console.log(' --- 在当前 describe 中所有 it 执行前,运行一次 --- ')
    4. })
    5. after(() => {
    6. console.log(' --- 在当前 describe 中所有 it 执行后,运行一次 --- ')
    7. })
    8. beforeEach(() => {
    9. console.log(' --- 在当前 describe 中每个 it 执行前,运行一次 --- ')
    10. })
    11. afterEach(() => {
    12. console.log(' --- 在当前 describe 中每个 it 执行后,运行一次 --- ')
    13. })
    14. it('测试用例1', () => {
    15. // 在这里写测试逻辑...
    16. })
    17. it('测试用例2', () => {
    18. // 在这里写测试逻辑...
    19. })
    20. })

一、常用命令

1,beforeEach:执行测试用例之前操作,一个 describe() 或 context() 内有多少个测试用例 it() ,就会执行几次 beforeEach()
2,visit:在前置钩子函数beforeEach里面访问对应的链接

  1. beforeEach(() => {
  2. cy.visit('cashticket?isdebug=true&userid=pd86068&isskipoauth=true');
  3. cy.wait(waitPageTime);
  4. })

3,get:定位元素,用css selector定位选择器
4,type:输入文本
5,focus:元素聚焦
6,should:断言,hava.value 是元素的value属性值,判断是否为‘某个值’
7,wait:等待数毫秒或等待别名资源解析后,再继续执行下一个命令

  1. it('Package Type', () => {
  2. cy.get('#securityControl',{timeout:timeOut}).
  3. focus().type('10y').wait(waitTime).
  4. type('{enter}').//输入回车键
  5. should('have.value','T 0 5/8 08/15/30 91282CAE1 US91282CAE12');
  6. cy.wait(waitTime1);
  7. cy.get('#packageType>div>div>input').
  8. should('be.visible');
  9. })

8,获取当前页面URL

  1. cy.url()
  2. cy.url().should('contain','link')

9,刷新页面

  1. //等同于F5
  2. cy.reaload()
  3. //等同于ctrl+F5强制刷新
  4. cy.reload(true)

10,设置窗口

  1. cy.viewpoint(1024,768)

11,利用jQuery判断元素是否存在

  1. const btn = '#btn'
  2. Cypress.$(btn).length>0{
  3. cy.get(btn).click()
  4. }

12,获取元素的属性值

  1. cy.get('#btn').then(function(){
  2. const btnTxt = $btn.text()
  3. cy.log(btnTxt)
  4. })

13,清除文本

  1. cy.get('div>a').clear()
  2. cycy.get('div>a').clear().type()

14,操作单选多选按钮

  1. //选中
  2. cy.get('radio').first().check('us')
  3. //取消选中
  4. cy.get('radio').uncheck('us')
  5. //选中所有复选框
  6. cy.get('[type="checkbox"]').check()
  7. //勾选值为’ subscribe ‘和’ accept '的复选框
  8. cy.get('form input').check(['subscribe', 'accept'])

15,操作下拉菜单

  1. cy.get('select').select('下拉选项的值')
  2. cy.get('li').eq(0).click()

16,操作弹出框

  1. cy.get('iframe')
  2. .then(function($iframe){
  3. //定义要查找的元素
  4. const $body = $iframe.contents().find('body')
  5. //在查找到的元素中查找btn并单击
  6. cy.wrap($body).find('#bin').click()
  7. })

17,操作被覆盖的元素

  1. cy.get('#btn').click({force:true})

18,模拟键盘操作

  1. cy.get('input').type('111')
  2. cy.get('input').type('{enter}')

参考:https://www.cnblogs.com/qing-5/p/13725143.html