cypress中丰富的调试工具使用方法
目录
- cypress调试工具
- 一、 Time travel
- 二、 快照
- 三、errors信息
- 四、页面事件
- 五、控制台的输出
- 六、调试专用命令
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 updatedcy.get('.action-email').type('fake@email.com').should('have.value', 'fake@email.com')})})
一、 Time travel
姑且叫它时间穿梭吧。期初我还有点莫名其妙,后来用了才知道,确实好用。就是当你的鼠标在左侧的命令日志上悬停时,cypress会自动回到那个命令解析时的快照,于是乎,在右侧的预览窗口,就可以看到对应这个命令进行的动作。
文章图片
二、 快照
在左侧的命令行也是可以交互的,这里就可以点击
click
命令,点击后就发现变紫色了,说明事情有古怪。文章图片
其实这里有3点需要大家关注到(对应图里的1,2,3标记):
- 固定快照
这就方便我们在创建快照时,手动检查被测试应用程序的DOM。
- 点击事件
- 快照菜单面板
before
和after
,来回的切换快照。before
快照是在触发click
事件之前进行的,after
快照则是在点击事件发生后立即执行的。比如现在点击
type
命令,单击before将以输入框之前的样子,应该显示占位符文本信息。单击after将显示TYPE命令完成后输入的样子,显示fake@email.com
。文章图片
三、errors信息
【cypress中丰富的调试工具使用方法】调试代码,自然少不了看报错的error信息了。
文章图片
在cypress中,如果发生了错误,会打印如下的信息(对应图里标记的序号阅读):
- Error name:这是错误的类型,比如AssertionError, CypressError。
- Error message:通常会告诉我们哪里出了问题。它的长度不一,有些很短,而有些很长,可能会告诉我们应该如何准确地修正错误。
- Learn more:一些错误消息包含一个Learn more的链接,点击后跳转到相关的Cypress文档。
- Code frame file:通常是堆栈跟踪的顶部一行,显示了在下面的代码框架中突出显示的文件、行和列。
- Code frame:显示发生故障的代码片段,并突出显示了相关的行和列。
- View stack trace:单击此按钮可切换是否展示堆栈跟踪。
- Print to console button:单击此按钮将完整的错误打印到DevTools控制台,也就是F12的console。
四、页面事件
命令日志里还有2个看起来很有趣的日志:
PAGE LOAD
、NEW 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 updatedcy.get('.action-email').type('fake@email.com').should('have.value', 'fake@email.com')})})
可以看到程序运行到
cy.pause()
就会暂停,可以手动点击继续,进行下一步操作。文章图片
以上就是cypress中丰富的调试工具使用方法的详细内容,更多关于cypress调试工具的资料请关注脚本之家其它相关文章!
推荐阅读
- 使用cypress编写第一个测试用例
- #私藏项目实操分享#分布式技术专题「OSS中间件系列」Minio的文件服务的存储模型及整合Java客户端访问的实战指南
- #私藏项目实操分享#?Alibaba中间件技术系列「EasyExcel实战案例」实战研究一下EasyExcel如何从指定文件位置进行读取数据
- wordpress在主题样式中显示自定义菜单
- React-Redux的使用
- 聊聊|聊聊 C# 中的多态底层 (虚方法调用) 是怎么玩的
- WordPress比率主题。博客内容需要居中
- 投稿|做时间的朋友,搜狐风雨之中锚定α收益
- 如何在 Linux 中使用 apt 命令管理包
- WordPress页面模板选项未显示在仪表板中()