自动化测试,让你上班拥有一杯咖啡的时间 | Day 29 - cypress 最佳实践

此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。

  1. 选取元素

    ⚠️ 避免使用会常常变的selector,如用id, class, tag等方式选取元素

    ⭕️ 建议用 data-* attributes

    <button
      id="main"
      class="btn btn-large"
      name="submission"
      role="button"
      data-cy="submit"
    >
      Submit
    </button>
    
  2. 访问外部网站

    ⚠️ 尝试用 cy.visit() 去访问不在你控制范围的网站

    ⭕️ 尽量避免第三方server,必要时可以使用 cy.request()

    参考文章: https://docs.cypress.io/api/commands/request

  3. 脚本之间的关联

    ⚠️ 每个脚本之间都高度紧密,彼此相互依赖

    ⭕️ 脚本之间是独立运作且可以执行成功的

  4. Creating "tiny" tests with a single assertion

    ⚠️ 写E2E测试时,测试用例过小,且包含许多断言

    ⭕️ 规划一个最小可行的脚本,并适当去断言

  5. 减少不必要的等待

    可以参考此文章:https://ithelp.ithome.com.tw/articles/10278669

  6. 设定 global baseUrl

    ⚠️ 脚本只用 cy.visit(),但没有设定 baseUrl

    ⭕️ 在 cypress.json 档设定 baseUrl 可以让执行脚本时节省一些时间

参考资料:


<<:  Day30 - 终於完赛的心得感言

>>:  Day 30 云端守门员

[Day12] Key Sequence Detection (KONAMI CODE)

[Day12] Key Sequence Detection (KONAMI CODE) 按键序列检...

来画一个视力检查表吧!

前言 今天要来研究的是 canvas~ 踩下去才发现是一个大坑XD,以下先从最基本的开始认识起,最後...

Day13. 有了Blue Prism,谁说办公室恋情影响工作-BP的用途

经历过一连串的Blue Prism实作,今天想让大家与自己都松口气, 看到上面的图案,是否有种机械...

网路的小技巧-2

//兴趣记录一下~希望退休以後可以回味,各位别嫌弃,感谢各位!! //// //VLAN重要性,实作...

初学者跪着学JavaScript Day18 : 物件:new Map()

一日客语:中文:柚子 客语:U欸 是收集资料的类型 主要功用:可以用於快速搜索和查找资料 Map又称...