Python最强自动化神器..

1、Playwright介绍

Playwright是一个由Microsoft开发的开源自动化测试工具,它可以用于测试Web应用程序。Playwright支持多种浏览器,包括Chrome、Firefox和WebKit,同时也支持多种编程语言,如JavaScript、TypeScript、Python和C#。

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click 

2、特点、使用场景

Playwright具有以下特点:

  • 支持所有主流浏览器

  • 跨平台:Windows、Linux 和macOS

  • 可用于模拟移动端WEB应用的测试。

  • 支持无头模式(默认)和有头模式

使用场景包括但不限于:

  • 自动化测试:开发人员和测试人员可以使用Playwright来编写自动化测试脚本,验证Web应用程序的功能和性能。

  • 性能测试:Playwright可以模拟多个用户同时访问Web应用程序,帮助测试应用程序在高负载情况下的性能表现。

  • 可访问性测试:Playwright可以模拟用户使用辅助技术(如屏幕阅读器)访问Web应用程序,帮助测试应用程序的可访问性。

  • 网页截图和录制:Playwright可以生成网页截图,也可以录制用户操作过程,帮助开发人员和测试人员分析问题。

总之,Playwright可以用于各种Web应用程序测试场景,帮助团队提高测试效率和测试覆盖率。

3、架构原理

playwright共由三部分组成:

  • client:在客户端是我们用不同的编程语言编写的代码,如JavaScript,Java,Python,C#等。

  • server:Playwright的server通过nodejs构建并负责与client 以及不同的 Web 浏览器引擎进行通信。

  • 通信协议:client通过WebSocket 协议与Playwright server 通信;

Playwright使用 Chrome DevTools 协议(CDP)与 Chromium 通信。触发测试后,client端代码将被转换为JSON格式,然后使用websocket协议发送到服务器。palywright通过单个 websocket 协议连接传达所有请求,该连接将保持不变,直到所有测试执行完成。由于命令是在单个连接上发送的,因此测试失败或不稳定的可能性较小,并且命令可以快速执行。这种架构与Selenium相反,Selenium使用HTTP连接协议,并将每个命令(如浏览器打开,单击,关闭浏览器)作为单独的HTTP请求发送。此外,在Selenium中,服务器和客户端之间的连接将在每次请求后终止,并为下一个请求重新建立。这也是Playwright为什么比selenium快的原因!

4、环境安装

Playwright环境部署简单,不像Selenium那样需要下载浏览器对应版本的驱动程序chromedriver,直接安装即可:

# 1、安装 playwright:pip3 install playwright#  2、安装所需的浏览器 chromium,firefox 和 webkit:playwright install# 3、如何只安装特定的浏览器,比如Chrome: 
playwright install chromium

 如果您在使用 pip3 install playwright 安装 Playwright 时遇到下载速度缓慢的问题,可以尝试以下方法来加速下载:

更换 pip 镜像源

可以使用国内的 pip 镜像源来替代默认的源,例如使用阿里云的 pip 镜像源或者清华大学的镜像源等。可以使用以下命令来更换 pip 镜像源:

pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple/

5、快速开始

Playwright 支持2种运行方式: 同步异步

# 异步代码
from time import sleepfrom playwright.async_api import async_playwright
async def main():async with async_playwright() as driver:browser=await driver.firefox.launch(headless=False)page=await browser.new_page()await page.goto('https://www.example.com')print(await page.title())await browser.close()sleep(10)asyncio.run(main())# 同步执行代码
from playwright.sync_api import sync_playwright
with sync_playwright() as driver:browser=driver.chromium.launch(headless=False)page=browser.new_page()page.goto('https://www.example.com')print(page.title())sleep(10)browser.close()

6、代码自动生成

Playwright自带了一个代码生成器工具,可以帮助你快速生成Playwright自动化测试脚本。通过代码生成器,你可以在浏览器中进行交互式操作,然后自动生成相应的Playwright代码。

使用Playwright代码生成器的基本步骤:

  • 打开Playwright代码生成器网站:https://playwright.dev/docs/codegen/ 或者通过命令行执行:

playwright codegen https://playwright.dev
  • 在网页中,你可以选择要使用的编程语言(如JavaScript、Python、TypeScript),以及要测试的目标网站。

  • 点击“Start recording”按钮,然后在弹出的浏览器窗口中进行交互式操作,如点击按钮、填写表单等。

  • 完成交互式操作后,点击“Stop recording”按钮。

  • 在页面中将生成的代码显示出来,你可以复制并粘贴到你的项目中使用。

通过使用代码生成器,你可以节省大量时间,特别是对于那些不熟悉Playwright API的开发人员来说,这是一个非常有用的工具。生成的代码可以作为起点,然后根据需要进行修改和扩展。

7、追踪查看器

在Playwright中,追踪查看器(Trace Viewer)是一个非常有用的工具,可以帮助你分析和调试自动化测试过程中的性能问题和其他关键信息。通过追踪查看器,你可以查看详细的性能数据、网络请求、页面事件等,以便更好地了解自动化测试的执行过程。

以下是使用追踪查看器的基本步骤:

1、启用追踪:

在Playwright的代码中,你可以通过调用start_tracing方法来启用追踪功能。例如:

from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch()context = browser.new_context()page = context.new_page()trace_path = 'trace.json'page.start_tracing(path=trace_path)page.goto('https://www.example.com')page.click('button#submit')page.wait_for_navigation()page.stop_tracing()context.close()browser.close()

2、保存追踪数据:在代码中指定追踪数据保存的路径,如上例中的trace_path = 'trace.json'。

3、打开追踪查看器:在浏览器中,打开Playwright追踪查看器网站:https://playwright.dev/docs/trace-viewer/

4、加载追踪数据:在追踪查看器网站中,点击“Load”按钮,然后选择你保存的追踪数据文件(如trace.json)。

5、分析追踪数据:一旦加载了追踪数据,你就可以在追踪查看器中查看各种性能指标、网络请求、页面事件等信息。你可以使用追踪查看器的各种功能和过滤器来深入分析自动化测试的执行过程,找出潜在的性能问题和优化空间。

官网: 

https://playwright.dev/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/188606.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何确保消息不会丢失

本篇文章大家还可以通过浏览我的博客阅读。如何确保消息不会丢失 - 胤凯 (oyto.github.io)很多人刚开始接触消息队列的时候&#xff0c;最经常遇到的一个问题就是丢消息了。<!--more-->对于大部分业务来说&#xff0c;丢消息意味着丢数据&#xff0c;是完全无法接受的。 …

软件测试之接口自动化测试实战

接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中&#xff0c;我们…

DS二叉树的存储

前言 我们上一期已经介绍了树相关的基础知识&#xff0c;了解了树相关的概念和结构、二叉树的概念和结构以及性质、也介绍了他的存储方式&#xff01;本期我们来根据上期介绍的对二叉树的顺序存储和链式存储分别进行实现&#xff01; 本期内容介绍 二叉树的顺序结构 堆的概念…

ADAudit Plus:提升企业安全的不可或缺的审计解决方案

随着信息技术的飞速发展&#xff0c;企业在数字化转型过程中面临着越来越多的安全威胁。为了保护敏感数据、防范内外部攻击&#xff0c;企业需要强大的安全审计解决方案。在这个背景下&#xff0c;ADAudit Plus作为一款强大而全面的安全审计工具&#xff0c;成为了众多企业的首…

动态sql行转列

动态sql行转列 介绍案例转之前转之后 注意 介绍 本篇介绍 根据 时间格式化后行转列的案例讲解动态sql案例的初学 案例 --设置一个动态变量 赋予初始值 SET sql NULL;--获取规范化后需要用到的行头列表 SELECT GROUP_CONCAT(CONCAT(--注意1MAX(IF(date ", date, "…

Pytest+Allure生成自动化测试报告!

前言 在自动化测试中&#xff0c;有unittestHTMLTestRunner自动化测试报告&#xff0c;但是生成的测试报告不够美观详细&#xff0c;今天我们来学习一下PytestAllure生成自动化测试报告。 一&#xff1a;安装python中的allure依赖库 在dos窗口中&#xff0c;输入下面三个命令…

一个UE无法注册的问题

问题场景是环境中只有一个小区&#xff0c;UE在找到这个小区&#xff0c;收到MIB SIB1后一直不发起注册。我想这大概是和S准则不满足有关系了&#xff0c;这个问题基本是又没啥好看的了&#xff0c;太简单了&#xff0c;在SIB1周围找找就解决了&#xff0c;于是我发现了以下log…

世界坐标系,相机坐标系,像素坐标系转换 详细说明(附代码)

几个坐标系介绍,相机内外参的回顾参考此文。 本文主要说明如何在几个坐标系之间转换。 本文涉及: 使用相机内参 在 像素坐标系 和 相机坐标系 之间转换。使用相机外参(位姿)在相机坐标系 和 世界坐标系 之间转换。(qw,qx,qy,qz,tx,ty,tz)形式的外参如何使用。以具体情景为…

mfc140u.dll丢失的解决方法,以及针对每个解决mfc140u.dll丢失办法的优缺点

在使用电脑的过程中&#xff0c;有时会遇到一些与动态链接库文件&#xff08;DLL&#xff09;相关的错误。其中&#xff0c;mfc140u.dll丢失是一种常见的问题&#xff0c;它可能导致应用程序无法正常运行。在本文中&#xff0c;我们将探讨关于mfc140u.dll丢失的解决办法&#x…

全局异常拦截和Spring Security认证异常的拦截的顺序

&#x1f4d1;前言 本文主要全局异常拦截和Spring Security认证异常的顺序&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日…

Excel vlookup 如何使用

Excel vlookup 如何使用 打开WX, 搜索 “程序员奇点” Excel vlookup可以说是利器&#xff0c;非常好用的工具&#xff0c;用来查询 Excel 或者进行数据匹配&#xff0c;十分方便。 VLookuP 如何使用&#xff0c;不常用的同学经常容易忘记&#xff0c;这次做个记录&#xff…

Pikachu漏洞练习平台之SSRF(服务器端请求伪造)

注意区分CSRF和SSRF&#xff1a; CSRF&#xff1a;跨站请求伪造攻击&#xff0c;由客户端发起&#xff1b; SSRF&#xff1a;是服务器端请求伪造&#xff0c;由服务器发起。 SSRF形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能&#xff0c;但又没有对目标…