微软自动化测试工具palywright
前言
我们介绍许多e2e的自动化测试工具
一类是基于 Selenium 的测试框架:
- robot framework
- gauge
- SeleniumBase
- seldom(我自己维护的)
另一类是基于JS语言的测试工具:
- cypress
- puppeteer
前都本身就是基于Selenium的自动化测试工具,后者在测试人员这个圈子也是未能撼动Selenium的地位,我认为有两个原因,一是Selenium是一个非常成熟的自动化测试工具,有大量的学习资料;另一方面selenium支持Python,没错Python以其简单的语法已经成为了测试人员学习编程语言的不二之选。
好了,介绍个新的自动化测试工具还要铺垫这么多?这是因为我看了palywright的文档之后,觉得这工具大概率能在测试人员这个群体中流行起来。
playwright 介绍
介绍
Playwright enables fast, reliable and capable automation across all modern browsers.
支持平台&浏览器
| Linux | macOS | Windows | |
|---|---|---|---|
| Chromium 89.0.4344.0 | |||
| WebKit 14.1 | |||
| Firefox 84.0b9 |
支持语言
- JavaScript and TypeScript: https://github.com/microsoft/playwright
- Java: https://github.com/microsoft/playwright-java
- Python: https://github.com/microsoft/playwright-python
- C#: https://github.com/microsoft/playwright-sharp
从支持的平台、语言和浏览器来看,是不是有Selenium的味道。这是微软爸爸的项目,从微软这几年拥抱开源的态度来看,这个工具应该会得到持续的支持。
安装
不同的语言安装方式不同,根据上面的链接,到对应的项目下面查看安装方式。本文以Python为例。
安装plywright
> pip install playwright
安装浏览器
> python -m playwright install
Downloading chromium v827102 - 89.4 Mb [====================] 100% 0.0s
chromium v827102 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\chromium-827102
Downloading firefox v1205 - 74.9 Mb [====================] 100% 0.0s
firefox v1205 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\firefox-1205
Downloading webkit v1383 - 51.4 Mb [====================] 100% 0.0s
webkit v1383 downloaded to C:\Users\fnngj\AppData\Local\ms-playwright\webkit-1383
录制脚本
plywright可以在浏览器中记录用户的互动并生成代码。
执行命令
> python -m playwright codegen
视频
接下来,对录制的脚本做简单的修饰。
from time import sleep
from playwright import sync_playwright
def run(playwright):
pw = playwright().start()
browser = pw.chromium.launch(headless=False)
context = browser.newContext()
# Open new page
page = context.newPage()
# Go to https://www.baidu.com/
page.goto("https://www.baidu.com/")
# Fill input[name="wd"]
page.fill('input[name="wd"]', "playwright")
# Click input[type="submit"]
page.click('input[type="submit"]')
sleep(2)
# assert title
assert page.title() == "playwright_百度搜索"
# ---------------------
context.close()
browser.close()
if __name__ == '__main__':
run(sync_playwright)
从API来看,和大多数自动化工具都差不多。
异步的写法
playwright官方例子中给出的异步的写法。 从它提供的API sync_playwright 的命名也可以看出,它很喜欢异步。
import asyncio
from playwright import async_playwright
async def main():
async with async_playwright() as p:
for browser_type in [p.chromium, p.firefox, p.webkit]:
browser = await browser_type.launch(headless=False)
page = await browser.newPage()
await page.goto('https://www.baidu.com')
await page.screenshot(path=f'example-{browser_type.name}.png')
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
后续:
- playwrigth 与其他自动化工具的比较
- playwright API介绍
- playwright 与单元测试框架unittest/pytest的使用
微软自动化测试工具palywright的更多相关文章
- 自动化测试工具QTP和SilkTest横向PK(转)
转自:http://www.uml.org.cn/Test/201405212.asp?artid=1686 众所周知,自动化测试工具曾几何时三足鼎立,Mercury QTP/WinRunner系.I ...
- 常用自动化测试工具介绍(支持B/S、C/S)
一.功能测试工具1.QTP测试工具 全名HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 11.0 QTP是qui ...
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...
- 手机GUI自动化测试工具选择
(Graphical User Interface,简称 GUI,又称图形用户接口) 我们需要针对自身产品的需求,从中选取一款合适的工具来实现自动化.对于移动客户端GUI的自动化而言,需要保证选取的工 ...
- Android 手机自动化测试工具有哪几种?
1.Monkey是Android SDK自带的测试工具,在测试过程中会向系统发送伪随机的用户事件流,如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试,也有日志输出.实际上该工 ...
- 前端自动化测试工具doh学习总结(二)
一.robot简介 robot是dojo框架中用来进行前端自动化测试的工具,doh主要目的在于单元测试,而robot可以用来模仿用户操作来测试UI.总所周知,Selenium也是一款比较流行的前端自动 ...
- 前端自动化测试工具doh学习总结(一)
前言 项目中需要用到前端自动化测试,自己被当作一个探针研究了下目前用的比较多的web自动化测试工具.一开始研究的是的selenium,但由于项目使用了大量的dijit控件,写起testCase来很费劲 ...
- 录制简单的自动化测试工具SlikMobile初体验
今天朋友推荐了款自动化测试工具SlikMobile,下载了个试用了下,感觉还是很容易入门和上手的,感觉和testin的工具差不多,跨平台,多语言支持,支持图片.文本和Native Class三种对象方 ...
- 老李分享:android app自动化测试工具合集
老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...
随机推荐
- java编写规范及注意事项
java编写规范及注意事项 1.注释 常见注释有三种 // /**/ /****/ 如何才能写出漂亮的注释呢,注释的目的就是为了使你的代码让人更容易理解和维护,写一手好的注释是一个优秀码农的基本 ...
- Arduion学习(一)点亮三色发光二极管
这是我接触Arduion以来第一个小实验 实验准备: 1.查阅相关资料,了解本次实验所用到的引脚.接口的相关知识. 2.准备Arduion板(本次实验所用到的型号为mega2560).三色发光二极管. ...
- 16.java设计模式之迭代器模式
基本需求: 展示一个学校的结构,比如一个学校下面有多个学院,学院下面有多个系,对其节点主要是遍历,与组合模式略有不同 传统方案: 学校<-学院<-系 依次继承 这种方式,在一个页面中展示出 ...
- Fiddler 4 (利用Fiddler模拟恶劣网络环境)
1.模拟弱网环境 打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多 解决办法去掉勾选的地方网 ...
- mysql索引原理以及优化
一.常见查找算法: 1.顺序查找: 最基础的查找方法,对比每一个元素进行查找.在数据量很大的时候效率相当的慢. 数据结构:有序或者无需的队列 时间复杂度:O(n) 2.二分查找: 二分查找首先要求数组 ...
- 学JAVA的艰难之路
周五回家了,这两天也没有更新代码系列,很抱歉,之后会补上.今天刚到宿舍,写了会代码,想用一个数组的从键盘输入,再也弄不好了,最终在我不断的翻之前写的代码,终于是找到了一个例子,真的不容易,编程这东西, ...
- ASP.NET 漂亮美观的验证码
效果预览: 1.随机码和图片流生成 public class ValidateCode { /// <summary> /// 產生圖形驗證碼. /// </summary> ...
- 基于.NET的程序读取Excel文件的解决方案
目录 0. 前言 1. 使用NPOI库读取Excel文件 2. 使用OleDbConnection 3. 相关参考 shanzm-2020年12月8日 23:48:11 0. 前言 以前基于 .NET ...
- 半夜删你代码队 Day1冲刺
一.团队信息 1.团队项目:Midnight聊天室 2.团队名称:半夜删你代码队 3.队员信息: 职务 项目经理 主开发团队 测试人员 姓名 陈惠霖 周楚池 侯晓龙 余金龙 胡兆禧 林涛 二.Alph ...
- vue functional函数式组件
第1种写法 test.vue <template functional> <div class="test"> {{props.test.name}} &l ...