网站首页 > 技术文章 正文
前言
上一篇我们讲到TestCafe如何进行页面交互,这一篇我们一起来聊聊TestCafe在执行用例的时候如何进行截图和录制测试运行全过程操作的视频
详情可见
超详细的 web 自动化教程 (五)—TestCafe 页面高级操作
一、屏幕截图
通过TestCafe可以在测试运行期间的任何时候对网页页面进行截图,一般我们在用例执行不通过时,对测试网页进行截图,以便后续去查看错误原因。
注意点: 在远程浏览器中运行测试时,是不支持屏幕截图的
1、屏幕截图的前提条件
- windows 系统中,需要安装 .NET 4.0 或更高版本
- Linux 系统中需要安装兼容 ICCCM / EWMH 的窗口管理器?
2、截图的方法
testCafe中内置了两个截图方法,通过调用这两个截图方法,可以在随时在代码进行截图操作。
- t.takeScreenshot:对浏览器窗口页面进行截图
fixture `页面截图`
.page `https://www.baidu.com`;
test('测试01 ', async t => {
await t
.typeText('#kw', '柠檬杯')
.click('#su')
//整个页面截图
.takeScreenshot();
});
- t.takeElementScreenshot:对特定的页面元素进行截图
fixture `页面截图`
.page `https://www.baidu.com`;
test('screenshot ', async t => {
//对百度首页搜索按钮截图
await t.takeElementScreenshot('#su');
});
3、用例失败截图
TestCafe中除了前面那两个截图的方法,还可以再执行测试的时候,通过添加参数实现自动截图。
- 1、通过命令行运行时,只需添加参数 -s takeOnFails=true
testcafe chrome tests/baidu.js -s takeOnFails=true
- 2、通过 runner.screenshots 方法的 takeOnFails 参数
runner.screenshots({
takeOnFails: true
});
- 3、配置文件中的 screenshots.takeOnfails 属性
{
"screenshots": {
"takeOnFails": true
}
}
4、截图的参数选项
选项 | 类型 | 描述 | 默认值 |
path | String | 截图保存到的目录路径 | ./screenshots |
takeOnFails | Boolean | true 在测试失败时拍摄屏幕截图。 | false |
pathPattern | String | 文件名生成的规则 | 参照下面规则介绍 |
fullPage | String | true 捕获整个页面,包括窗口中没有显示出来的内容 | false |
- pathPattern 参数的 占位符规则
占位符 | 描述 |
${DATE} | 当前日期 |
${TIME} | 当前时间 |
${TEST_INDEX} | 用例的索引(第几条用例) |
${FILE_INDEX} | 截图文件的索引(第几个截图) |
${FIXTURE} | fixture 的名称。 |
${TEST} | 测试用例的名称。 |
${USERAGENT} | ${BROWSER},${BROWSER_VERSION},${OS},和 ${OS_VERSION} 的组合 |
${BROWSER} | 浏览器的名称。 |
${BROWSER_VERSION} | 浏览器的版本。 |
${OS} | 操作系统的名称。 |
${OS_VERSION} | 操作系统的版本。 |
通过上述占位符我们可以自己指定生成截图文件名的规则。
5、禁用屏幕截图
TestCafe中也可以通过相关参数来,禁用代码中或用例执行失败时的截屏操作
- 命令行运行时,添加参数 --disable-screenshots 来禁用截屏。
testcafe chrome tests/sample-fixture.js --disable-screenshots
- Runner.run API 方法的 disableScreenshots 选项,
runner.run({
disableScreenshots: true
});
- 配置文件的 disableScreenshots 属性
{
"disableScreenshots": true
}
二、录制视频
TestCafe 在通过 Chrome,Firefox,Edge 浏览器执行测试的时候,支持 对整个测试过程进行录屏,接下来我们一起来看看录屏相关的设置和操作。
1、视频录制的前提条件
要使用TestCafe来录制视频,首先得安装FFmpeg这个库,关于FFmpeg的安装请参照官方文档 https://ffmpeg.org/。
注意点:
1、安装之后需要 将 FFmpeg 安装目录添加到系统的 PATH 环境变量中
2、 视频默认以 .mp4 格式保存。
2、启用录制视频
视频录制和截图一样,有三种开启方式
- 1、命令行运行,通过参数 --video 指定
//testcafe chrome test.js --video 视频保存的目录
testcafe chrome test.js --video videos
- 2、通过 runner.video 这个方法
// runner.video('视频保存的目录');
runner.video('videos');
- 3、在配置文件中添加 videoPath 属性
// videoPath:'视频保存的目录';
{
"videoPath": "videos"
}
3、视频录制选项参数
在开启录屏时还可以添加如下参数,进行相关的配置
选项 | 类型 | 描述 | 默认值 |
failedOnly | Boolean | true 仅记录失败的测试;false 记录所有测试。 | false |
singleFileBoolean | Boolean | true 将整个录音保存为单个文件;false 为每个测试创建一个单独的文件。 | false |
ffmpegPath | String | FFmpeg 编解码器可执行文件的路径。 | |
pathPattern | String | 文件名生成的规则(和截屏是一样的) |
- 命令行运行添加参数,通过 --video-options
- 参数和参数之间用空格隔开
testcafe chrome t.js --video videos --video-options singleFile=true,failedOnly=true,pathPattern=${USERAGENT}/${FILE_INDEX}.mp4
- 通过 Runner.video 方法添加参数
runner.video('artifacts/videos', {
singleFile: true,
failedOnly: true,
pathPattern: '${USERAGENT}/${FILE_INDEX}.mp4'
});
- 通过配置文件设置参数
{
"videoOptions": {
"singleFile": true,
"failedOnly": true,
"pathPattern": "${USERAGENT}/${FILE_INDEX}.mp4"
}
}
关于 TestCafe 的截图和录屏就给大家分享到这里了,后续会持续更新 TestCafe 相关的技术文章。
是不是很简单呢,下面是我整理的一些软件测试资料,有需要的朋友可以关注并私信我关键词“资料”免费领取哟
猜你喜欢
- 2024-10-01 赶超Java,号称迄今最快框架,.NET6带来了什么?
- 2024-10-01 用Android手机和YAMNet ML 模型进行声音分类一
- 2024-10-01 Maven把项目依赖的所有jar包都打到同一个jar中
- 2024-10-01 2024年企业常用的10款图纸加密软件|企业数据防泄密必备
- 2024-10-01 Dev ASP.NET界面开发2020:全新升级图表控件
- 2024-10-01 自己的web服务器项目-request请求和response响应处理
- 2024-10-01 网页在线视频播放代码大全 网页视频源代码怎么找
- 2024-10-01 AB(罗克韦尔)PLC实现简单的DeviceNet网络的配置组态
- 2024-10-01 《理解ASP.NET Core》系列3-依赖注入(Dependency Injection)
- 2024-10-01 孙卫琴《精通Spring》的学习笔记:用WebFlux框架上传和下载文件
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)