博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web前端自动化测试利器puppeteer介绍
阅读量:6873 次
发布时间:2019-06-26

本文共 1618 字,大约阅读时间需要 5 分钟。

web前端自动化测试利器puppeteer介绍

Intro

Chrome59(linux、macos)、 Chrome60(windows)之后,Chrome自带很方便做自动化测试或者爬虫。但是如何和headless模式的Chrome交互则是一个问题。通过启动Chrome时的命令行参数仅能实现简易的启动时初始化操作。Selenium、Webdriver等是一种解决方案,但是往往依赖众多,不够扁平。

puppeteer

Puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。

Github 仓库:

安装

Puppeteer本身依赖6.4以上的Node,但是为了异步超级好用的,推荐使用7.6版本以上的Node。另外headless Chrome本身对服务器依赖的库的版本要求比较高,centos服务器依赖偏稳定,v6很难使用headless Chrome,提升依赖版本可能出现各种服务器问题(包括且不限于无法使用ssh),最好使用高版本服务器。

Puppeteer因为是一个npm的包,所以安装很简单:

npm i puppeteer

或者

yarn add puppeteer

Puppeteer 安装时自带一个最新版本的Chromium,可以通过设置环境变量或者npm config中的PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 跳过下载。如果不下载的话,启动时可以通过puppeteer.launch([options])配置项中的 executablePath 指定Chromium的位置。

Use

用 puppeteer 来做什么

Most things that you can do manually in the browser can be done using Puppeteer! Here are a few examples to get you started:

  • Generate screenshots and PDFs of pages.
  • Crawl a SPA (Single-Page Application) and generate pre-rendered content (i.e. "SSR" (Server-Side Rendering)).
  • Automate form submission, UI testing, keyboard input, etc.
  • Create an up-to-date, automated testing environment. Run your tests directly in the latest version of Chrome using the latest JavaScript and browser features.
  • Capture a  of your site to help diagnose performance issues.
  • Test Chrome Extensions.

大多数在浏览器里手动可以做的事都可以用 puppeteer 来做,比如说:

  • 生成一些网页的截图和 pdf
  • 爬取一个 SPA(单页 WEB 应用)并且生成预渲染内容(比如说过SSR,服务器端渲染)
  • 自动化的表单提交,UI 测试,文本输入等
  • 创建一个现代化的自动化测试环境,在最新版的Chrome 里使用最新的 JavaScript 和浏览器新特性来跑你的测试。
  • 捕获你的网站的 来帮助分析诊断性能问题
  • 测试谷歌扩展插件

你可以在 尝试一些 puppeteer 的功能。

Api 文档:

示例:

Reference

Contact

Contact me:

转载地址:http://hwlfl.baihongyu.com/

你可能感兴趣的文章
WebView加载css样式
查看>>
Web系统权限控制如何设计
查看>>
Java网络编程-NIO
查看>>
16.手写图片加载框架ImageLoader
查看>>
gulp之自动化静态资源压缩合并加版本号
查看>>
JavaScript核心概念之执行上下文和栈
查看>>
队列工厂之(MSMQ)
查看>>
自定义滚动条插件
查看>>
10个对开发者非常有用的设计原则
查看>>
OrangePi Zero 利用 Pi-hole阻止家中所有设备上的广告
查看>>
《Spring Boot开发:从0到1》全书目录结构
查看>>
用PWA构建一个完全离线的网站
查看>>
使用Keras进行深度学习:(三)使用text-CNN处理自然语言(下)
查看>>
函数式编程与面向对象编程[2]: 静态类型语言的表达力 静态类型语言与动态类型语言...
查看>>
辩论界人机大战:IBM 人工智能和人类辩手几乎平手
查看>>
13.12 Spring Boot集成Security中遇到的问题
查看>>
YurunOAuthLogin v2.0.2,第三方 OAuth2 授权一把梭
查看>>
网络技术日新月异,网络架构师工作又在如何演变?
查看>>
Java微信公众平台开发_02_启用服务器配置
查看>>
vSphere Hypervisor 6.5 虚拟机创建和操作系统安装
查看>>