cypress调试工具

Cypress附带了一系列调试工具来帮助我们弄明白测试的经过,利于我们更好的调试。
具体这些工具的能力都有啥?

  • 回到每个命令的快照。
  • 可以看到特殊的已发生的page events
  • 接收关于每个命令的额外输出。
  • 在多个命令快照之间 向前/向后 步进。
  • 暂停命令并迭代地逐步执行。
  • 当找到隐藏的或者多个元素时,展示的更形象。

这里继续使用上一章的测试代码,来看下其中的一些具体操作。

describe('My First Test', () => {
    it('Gets, types and asserts', () => {
        cy.visit('https://example.cypress.io')
 
        cy.contains('type').click()
 
        // Should be on a new URL which includes '/commands/actions'
        cy.url().should('include', '/commands/actions')
 
        // Get an input, type into it and verify that the value has been updated
        cy.get('.action-email')
            .type('fake@email.com')
            .should('have.value', 'fake@email.com')
    })
})

一、 Time travel

姑且叫它时间穿梭吧。期初我还有点莫名其妙,后来用了才知道,确实好用。就是当你的鼠标在左侧的命令日志上悬停时,cypress会自动回到那个命令解析时的快照,于是乎,在右侧的预览窗口,就可以看到对应这个命令进行的动作。

二、 快照

在左侧的命令行也是可以交互的,这里就可以点击click命令,点击后就发现变紫色了,说明事情有古怪。

其实这里有3点需要大家关注到(对应图里的1,2,3标记):

  • 固定快照

可以看到有个图钉标记,表示现在锁定了这个快照。这时候鼠标移动到其他命令上,快照也不会切换。

这就方便我们在创建快照时,手动检查被测试应用程序的DOM。

  • 点击事件

由于.click()是一个操作命令,那么在事件发生的坐标处就可以看到一个红色的命中框。

  • 快照菜单面板

这是一个新的菜单面板。一些命令(如操作命令)如果使用多个快照,那么可以通过点击:beforeafter,来回的切换快照。before快照是在触发click事件之前进行的,after快照则是在点击事件发生后立即执行的。

比如现在点击type命令,单击before将以输入框之前的样子,应该显示占位符文本信息。单击after将显示TYPE命令完成后输入的样子,显示fake@email.com

三、errors信息

调试代码,自然少不了看报错的error信息了。

在cypress中,如果发生了错误,会打印如下的信息(对应图里标记的序号阅读):

  1. Error name:这是错误的类型,比如AssertionError, CypressError。
  2. Error message:通常会告诉我们哪里出了问题。它的长度不一,有些很短,而有些很长,可能会告诉我们应该如何准确地修正错误。
  3. Learn more:一些错误消息包含一个Learn more的链接,点击后跳转到相关的Cypress文档。
  4. Code frame file:通常是堆栈跟踪的顶部一行,显示了在下面的代码框架中突出显示的文件、行和列。
  5. Code frame:显示发生故障的代码片段,并突出显示了相关的行和列。
  6. View stack trace:单击此按钮可切换是否展示堆栈跟踪。
  7. Print to console button:单击此按钮将完整的错误打印到DevTools控制台,也就是F12的console。

四、页面事件

命令日志里还有2个看起来很有趣的日志:PAGE LOADNEW URL。这些不需要我们去加,当发生一些重要事件的时候,
cypress自己就会输出这些日志。

具体涉及到自动输出日志的事件有如下:

  • 发送了XHR的请求。
  • url改变。
  • 页面加载
  • 表单提交。

五、控制台的输出

cypress还可以将额外的调试信息输出到控制台。

比如F12打开你的Dev Tools并点击get来获取.action-email类选择器。

我们可以在控制台中看到Cypress输出额外的信息:

  • Command: 已发出的命令。
  • Yielded: 这个命令返回的内容。
  • Elements: 发现的元素数量。
  • Selector:使用的选择器。

六、调试专用命令

除了UI界面上的各种辅助工具之外,还有专门用于调试的命令,例如:

  • cy.pause()
  • cy.debug()

现在,在代码里加上一行cy.pause(),保存。

describe('My First Test', () => {
    it('clicking "type" shows the right headings', () => {
        cy.visit('https://example.cypress.io')
 
        cy.pause()
 
        cy.contains('type').click()
 
        // Should be on a new URL which includes '/commands/actions'
        cy.url().should('include', '/commands/actions')
 
        // Get an input, type into it and verify that the value has been updated
        cy.get('.action-email')
            .type('fake@email.com')
            .should('have.value', 'fake@email.com')
    })
})

可以看到程序运行到cy.pause()就会暂停,可以手动点击继续,进行下一步操作。

以上就是cypress中丰富的调试工具使用方法的详细内容,更多关于cypress调试工具的资料请关注Devmax其它相关文章!

cypress中丰富的调试工具使用方法的更多相关文章

  1. 使用cypress编写第一个测试用例

    这篇文章主要为大家介绍了使用cypress编写第一个测试用例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  2. cypress中丰富的调试工具使用方法

    这篇文章主要为大家介绍了cypress中丰富的调试工具及使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  3. Vue3 vue-devtools 调试工具下载安装使用教程

    vue-devtools是一款基于chrome游览器的插件,用于调试vue应用,这可以极大地提高我们的调试效率,尤其是对于初学vue的朋友来说可谓是一大利器,这篇文章主要介绍了Vue3 vue-devtools 调试工具下载安装,需要的朋友可以参考下

  4. 超详细的Android开发调试工具ADB命令及安装介绍

    这篇文章主要介绍了Android调试工具ADB安装使用技巧,非常详细,有需要的朋友可以借鉴参考下,希望可以有所帮助,祝大家早日升值加薪

  5. Bash脚本无法执行Cypress的NPM脚本

    我制作的bash脚本遇到了问题。对于上下文,我编写了NPM脚本来在命令行上运行Cypress测试。我的目标是有一个bash脚本来运行这些NPM脚本,并在命令行中执行Cypress。我的script.sh位于项目文件夹中,仅供参考。现在,当script.sh运行时,它以代码=1执行,实际上根本不运行Cypress。

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部