网站首页 > 博客文章 正文
作者:刘斌宇(学员)
更多内容可关注公众号:测试帮日记
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(使用阿里源,下载速度快一点)
备注:pip install playwright==1.9.0 (建议使用1.9.0以后的版本,增加调试,很爽)
python -m playwright install (安装chromium、frefox、webkit)
备注:不需要像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 可看到所有选项。
具体含义:
-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不填默认录制屏幕大小;如果填写,则录取指定长宽的区域
2.3 编写代码
代码如下:
1.分别使用chrom、firefox、sarafi浏览器打开浏览器,然后百度一下,接着对在搜索界面截图,最后关闭浏览器
注意:
?with 上下文管理器,自动关闭浏览器和playwright,Playwright-cli只能启用一个
?browser.close() 手动关闭,不必须,但是建议大家手动关闭
?每个Page都是一个实例,解决了页面切换的问题,天生POM
2.结合 asyncio,异步实现同时执行上面的操作。
未完待续
猜你喜欢
- 2025-01-05 【质量保障】E2E 测试中的 Mock API
你 发表评论:
欢迎- 最近发表
-
- 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- SpringBoot实现单点登录(SSO)的4种方案
- 随机密聊 匿名聊天室程序源码(随机匿名聊天在线)
- SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!
- Java 微服务从源码实战开始 | Gitee 项目推荐
- 轻量级埋点sdk搭建,便捷更全面(埋点sdk是什么)
- Spring Boot 实现文件秒传功能(springboot上传文件到指定文件夹)
- 项目中不用redis分布式锁,怎么防止用户重复提交?
- SpringBoot项目日志打印traceId生成
- 如何实现PC端网站扫码登录操作?(网页 扫码)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)