Gahing's blog Gahing's blog
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Gahing / francecil

To be best
首页
知识体系
  • 前端基础
  • 应用框架
  • 工程能力
  • 应用基础
  • 专业领域
  • 业务场景
  • 前端晋升 (opens new window)
  • Git
  • 网络基础
  • 算法
  • 数据结构
  • 编程范式
  • 编解码
  • Linux
  • AIGC
  • 其他领域

    • 客户端
    • 服务端
    • 产品设计
软素质
  • 面试经验
  • 人生总结
  • 个人简历
  • 知识卡片
  • 灵感记录
  • 实用技巧
  • 知识科普
  • 友情链接
  • 美食推荐 (opens new window)
  • 收藏夹

    • 优质前端信息源 (opens new window)
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前端基础

  • 应用框架

  • 工程能力

    • 工程效率

    • 编译构建

    • 工程管理

    • JS 模块化

    • CSS 模块化

    • 工程质量

    • 前端测试

      • E2E

        • Puppeteer

          • chromium sandbox 配置
          • puppeteer 内部执行过程
          • puppeteer 升级 playwright 实践
          • puppeteer 在 Electron 上的实践
          • puppeteer 检测与绕过
          • puppeteer优化实践
          • puppeteer笔记
          • 插件系统 与 puppeteer-extra 浅析
          • puppeteer初探-测试webrtc
            • 介绍
            • 安装
            • 运行
            • 测试webrtc应用
        • 浅谈前端自动化测试
        • 浏览器自动化工具
      • 单元测试

    • CI&CD

  • 应用基础

  • 专业领域

  • 业务场景

  • 大前端
  • 工程能力
  • 前端测试
  • E2E
  • Puppeteer
gahing
2018-02-07
目录

puppeteer初探-测试webrtc

# 介绍

puppeteer是什么?

它是一个nodejs的库,支持调用Chrome的API来操纵Web 它的dom操作可以完全在内存中进行模拟而不打开浏览器

功能强大,可用于截图、pdf生成、UI测试、表单提交、数据爬取、性能诊断...

官方接口地址:https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md

# 安装

通过npm i puppeteer安装

正常是会报错的。

解法方法1:

1.采用cnpm i puppeteer

解法方法2:

1.使用npm i --save puppeteer --ignore-scripts安装并忽略chromium的下载 2.自行下载 chromium 或 采用本地chrome (后面会说明这样的好处)

参考:https://www.jianshu.com/p/a89d8d6c007b

# 运行

新建index.js,代码

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://y.qq.com');
    await page.screenshot({path: 'yqq.png'});
    browser.close();
})();
1
2
3
4
5
6
7
8
9

使用node index.js运行

若出现async/await 问题,检测node版本是否在7.6以上 否则的话重新安装即可

正常应该是可以获得截图了。

# 测试webrtc应用

puppeteer.launch() 可以填入参数{headless: false} 这样就可以打开浏览器测试,默认是只在内存跑

首先采用 chromium 测试我们的webrtc应用,发现画面没有显示,采用chrome://webrtc-internals发现本地只支持VP8,而我们的webrtc服务端只传H.264的流。

百度查看了下 chrome 和 chromium 的区别,chromium 会比chrome 少一些音视频的格式支持,包括h264,acc

那么本地的chrome能否支持呢?测试结果发现是可以支持的。(没下的话记得下

使用也很简单。

找到chrome的安装目录。我这里是C:/Program Files (x86)/Google/Chrome/Application/chrome.exe

然后launch方法中传入executablePath: 'C:/Program Files (x86)/Google/Chrome/Application/chrome.exe'

测试成功。

完整测试代码:

const puppeteer = require('puppeteer');
function timeout(ms) {
  return new Promise((resolve) => {
    setTimeout(resolve, ms);
  });
}
console.log(process.argv)
puppeteer.launch({
  // headless: false,
  executablePath: './chrome/chrome.exe',
}).then(async browser => {
  const page = await browser.newPage();
  await page.goto('http://10.8.116.11:8081/tryplay-h5/#/main?....');
  await timeout(10000);
  await page.screenshot({ path: 'rtc.png' });
  await browser.close();
  console.log('end')
}).catch(e => {
  console.error(e)
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
编辑 (opens new window)
#puppeteer#前端测试
上次更新: 2024/09/01, 23:56:56
插件系统 与 puppeteer-extra 浅析
浅谈前端自动化测试

← 插件系统 与 puppeteer-extra 浅析 浅谈前端自动化测试→

最近更新
01
浅谈代码质量与量化指标
08-27
02
快速理解 JS 装饰器
08-26
03
Vue 项目中的 data-v-xxx 是怎么生成的
09-19
更多文章>
Theme by Vdoing | Copyright © 2016-2024 Gahing | 闽ICP备19024221号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式