Playwright自动化测试工具之快速实战

1. 前言

只要说到自动化,测试和开发的朋友们都知道selenium。一个自动化测试的神器工具,写个Python自动化脚本解放双手基本上是常规的操作了。虽然selenium有完备的文档,但也需要一定的学习成本,对于一个纯小白来讲还是有些门槛的。如果你不愿意花大量的时间在学习定位编写脚本上,就可以尝试下今天的主角:微软的一个开源项目「playwright-python」,这个项目是针对Python语言的纯自动化工具,连代码都不用写,就能实现自动功能

1.1基本介绍

Playwright微软开发的e2e测试工具,可以提供比selenium更快更强功能,下一代端到端测试工具。v1.0 在2020年5月6日发布,是node.js的程序。而playwright-python是playwright的python客户端,允许python代码编写用例,调用playwright完成测试

为什么要使用playwright?网上有很多说法,我就不一一列举。最吸引我的就是三个特点:

1. 支持浏览器端的录制,生成自动化脚本,支持无头跑脚本

2. 速度快,基本是selenium的好几倍,且支持浏览器异步运行

3. 自动等待API,可拦截请求,随意mock

2. 快速使用

2.1 安装

项目地址:https://github.com/microsoft/playwright-python

注意:python版本需要时至少3.7 及以上,推荐3.8及以上

安装命令:

pip install playwright(使用阿里源,下载速度快一点)

image.png

备注:pip install playwright==1.9.0 (建议使用1.9.0以后的版本,增加调试,很爽)

 

python -m playwright install (安装chromium、frefox、webkit)

image.png

image.png

备注:不需要像selenium 再单独安装浏览器驱动,它在 pip install 时就会安装浏览器的驱动文件

2.1.1 下载提速方案

第二步的操作,可以看到其主要下载了3个浏览器的内核,直接将提前下载好的对应文件存放到该路径就可以不用下载了。

地址如下:

C:\Windows\System32\config\systemprofile\AppData\Local\ms-playwright

下载包地址:

https://kdocs.cn/l/crj83h6w0YDl

[金山文档] ms-playwright.zip

2.2 录制使用

录制代码:python -m playwright codegen

playwright很强大,在命令行键入 --help 可看到所有选项。

image.png

具体含义:

-h 展示所有的命令

–target 用什么语言去生成

-o 将脚本保存为一个文件

百度一个简单的例子:

python -m playwright codegen --target python -o binyuTest.py' -b chromium https://www.baidu.com

就会打开百度网页,录制的代码都会生成在当前目录下的binyuTest.py文件中,篇幅过长暂不展示,具体的操作可以在https://playwright.dev/上找到详细的doc和api接口文档

2.2.1 录制代码高级使用

–save-storage与–load-storage是个非常实用的命令,可以保存登录状态、加载登录状态

如下使用录制会保存登录状态文件

python -m playwright codegen --target python -o formsavecookie.py -b chromium f.wps.cn/picker --save-storage formTest134

如下使用录制会加载登录状态文件

python -m playwright codegen --target python -o formgetcookie.py -b chromium f.wps.cn/form-list  --load-storage formTest134

2.2.2 录制视频

recordVideo参数设置视频地址和录制屏幕的大小,dir必须存在,否则不能录制;size不填认录制屏幕大小;如果填写,则录取指定长宽的区域

image.png



2.3 编写代码

代码如下:

1. 分别使用chrom、firefox、Sarafi浏览器打开浏览器,然后百度一下,接着对在搜索界面截图,最后关闭浏览器

image.png

注意:

Ø with 上下文管理器,自动关闭浏览器和playwright,Playwright-cli只能启用一个

Ø browser.close() 手动关闭,不必须,但是建议大家手动关闭

Ø 每个Page都是一个实例,解决页面切换的问题,天生POM

2. 结合 asyncio,异步实现同时执行上面的操作。

image.png

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...