puppeteer UI自动化测试demo(一)
一.简介
这个不大常见,比较常见的是selenium和weddriver;
所以就增加一个说明,来自官网的。
Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议控制 Chromium 或 Chrome。Puppeteer 默认以 headless 模式运行,但是可以通过修改配置文件运行“有头”模式。 你可以在浏览器中手动执行的绝大多数操作都可以使用 Puppeteer 来完成! 下面是一些示例: 生成页面 PDF。
抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。
自动提交表单,进行 UI 测试,键盘输入等。
创建一个时时更新的自动化测试环境。 使用最新的 JavaScript 和浏览器功能直接在最新版本的Chrome中执行测试。
捕获网站的 timeline trace,用来帮助分析性能问题。
测试浏览器扩展。
二.安装
1)node
由上可知,该框架依赖于node,先安装node6+
到该地址 :http://nodejs.cn/download/选择合适的版本进行安装;
安装结束后(比如我是window),在cmd执行:node -v

以上说明安装成功了。
2)puppeteer
同样来源于官网:
安装
在项目中使用 Puppeteer:
npm i puppeteer
# or "yarn add puppeteer"
Note: 当你安装 Puppeteer 时,它会下载最新版本的Chromium(~170MB Mac,~282MB Linux,~280MB Win),以保证可以使用 API。 如果想要跳过下载,请阅读环境变量。
puppeteer-core
自 1.7. 版本以来,我们都会发布一个 puppeteer-core 包,这个包默认不会下载 Chromium。
npm i puppeteer-core
# or "yarn add puppeteer-core"
puppeteer-core 是一个的轻量级的 Puppeteer 版本,用于启动现有浏览器安装或连接到远程安装。
具体见 puppeteer vs puppeteer-core.
三.运行
1)编写example.js脚本
官网都是以默认Chromium执行,我这边以自带的chrome执行。脚本如下:
const puppeteer = require('puppeteer');
(async () => {
  const browser = await puppeteer.launch({executablePath:"C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe"});
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'd:\\example.png'});
  await browser.close();
})();
2)执行example.js
执行命令:node example.js
报错

解决:将该js放置到node puppeteer模块的目录下再执行;


四. 结果
1)在D盘目录,产生example.png文件
2)打开文件,为该url界面的截图
五.缺点
1)该工具是基于Chromium提供出的api,适合Chromium的接口,在chrome上执行未必成功;而我们客户一般是安装chrome,所以,就看涉及到的api了;
附:
官网地址:https://github.com/GoogleChrome/puppeteer
api地址:https://zhaoqize.github.io/puppeteer-api-zh_CN/#/
puppeteer UI自动化测试demo(一)的更多相关文章
- Selenide UI 自动化测试
		
我没有拼写错误,确实不是 Selenium ,但是,只要是 Web UI 自动化测试框架,基本上都是基于Selenium 的.Selenide 也不例外.那为啥不直接用Selenium呢? 因为 ...
 - 数据驱动 vs 关键字驱动:对搭建UI自动化测试框架的探索
		
UI自动化测试用例剖析 让我们先从分析一端自动化测试案例的代码开始我们的旅程.以下是我之前写的一个自动化测试的小Demo.这个Demo基于Selenium与Java.由于现在Selenium在自动化测 ...
 - 使用phantomjs进行无界面UI自动化测试
		
PhantomJS(http://phantomjs.org/) 是一个基于WebKit的服务器端JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM ...
 - 21、uwp UI自动化测试(WinAppDriver)
		
使用 UI自动化测试的好处就是在代码逻辑中写好 case 后,来实现 “一劳永逸” 的作用,并且自动化测试能够模拟人工达不到要求,比如快速切换页面.快速点击按钮等,对于提高软件的稳定性很有帮助. 安装 ...
 - 自动化测试中级篇——LazyAndroid UI自动化测试框架使用指南
		
原文地址https://blog.csdn.net/iamhuanggua/article/details/53104345 简介 一直以来,安卓UI自动化测试都存在以下两个障碍,一是测试工具Mo ...
 - Selenide 阶段性总结介绍(UI自动化测试工具)
		
今天给大家介绍一个比较新的UI自动化测试工具-- Selenide.确实是比较新的,国内应该还没有多少人用它.在百度和google上你只能搜到一个中文帖子简单介绍了一下.如果你想用这个工具,不可避免的 ...
 - 简单Web UI 自动化测试框架 pyse
		
WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动 ...
 - 从一次故障聊聊前端 UI 自动化测试
		
背景 事件的起因在于老板最近的两次"故障",一次去年的,一次最近.共同原因都是脚手架在发布平台发布打包时出错,导致线上应用白屏不可用. 最神奇的是,事后多次 Code Review ...
 - 使用AirtestProject+pytest做支付宝小程序UI自动化测试
		
一,前言 1,背景 因公司业务需要做支付宝小程序的UI自动化测试,于是在网上查找小程序的自动化资料,发现微信小程序是有自己的测试框架的,但几乎找不到支付宝小程序UI自动化测试相关的资料.白piao失败 ...
 
随机推荐
- linux:vim中全选复制
			
全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入V ...
 - Prometheus入门到放弃(3)之Grafana展示监控数据
			
grafana我们这里采用docker方式部署 1.下载镜像 镜像官网地址:https://hub.docker.com/r/grafana/grafana/tags [root@prometheus ...
 - MySQL必知必会1
			
MySQL必知必会  了解SQL 什么是数据库:数据库(database)保存有阻止的数据的容器,可以把数据库想象成一个文件柜. 什么是表:表(table) 某种特定类型结构的结构化清单,数据库中的 ...
 - poj 1095 题解(卡特兰数+递归
			
题目 题意:给出一个二叉树的编号,问形态. 编号依据 1:如果二叉树为空,则编号为0: 2:如果二叉树只有一个节点,则编号为1: 3:所有含有m个节点的二叉树的编号小于所有含有m+1个节点的二叉树的编 ...
 - 简单的3D森林
			
package { import flash.display.Sprite; public class Tree extends Sprite { public var xpos:Number = 0 ...
 - mysql_select  多表查询
			
一.等值连接 原理:将多张单表组成一张逻辑大表 语法: select * from 表A,表B where 表A.主键=表B.外键 and 查询条件 select * from 表A,表B ...
 - Ubuntu 18.04下安装Steam顶级在线游戏平台
			
Ubuntu 18.04下安装Steam顶级在线游戏平台 原创: 聆听世界的鱼 Linux公社 今天 Steam是由Valve公司开发的顶级在线游戏平台,是目前全球最大的综合性数字发行平台之一.它让你 ...
 - 全栈项目|小书架|微信小程序-首页水平轮播实现
			
首页效果 首页功能主要有 搜索(下篇文章介绍) 图书列表 图书列表 分析一波: 列表是水平滑动 点击列表会有按压效果:布局整体缩小 每个布局的信息从上到下排列分别是:图片.书名.作者.出版社 每个布局 ...
 - shell-基础2-字符串文本处理${}
			
一.为什么使用${}引用变量 1.$a和${a}的效果与区别 因为个别特殊字符会影响正常引用,所以需要使用${}引用变量,加花括号是为了帮助解释器识别变量的边界 $a和${a}效果一样,当变量后面连接 ...
 - 阿里云ECS服务器将默认的Ubuntu系统改成桌面版
			
以Ubuntu14.04 64位 为例 1.用自己PC登录阿里云,停止正在运行的实例 2.重装系统 更换系统盘->选择"公共镜像".Ubuntu. Ubuntu14.04 6 ...