首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Playwright进行Web页面UI自动化测试

使用Playwright进行Web页面UI自动化测试

作者头像
coffee1
发布于 2024-10-12 04:28:37
发布于 2024-10-12 04:28:37
6520
举报

使用Playwright进行UI自动化测试实践尝试

官方参考文档:Getting started - VS Code | Playwright

操作步骤:

1.安装VS code
2.VS code安装Playwright Test for VSCode插件
3.添加测试文件夹和文件

创建用于UI自动化测试的文件夹,并在VS code中的file--open folder打开这个文件夹

vscode中间上方的搜索框点击选择Show and Run Commands

输入Install Playwright,选择Test:Install Playwright

浏览器选择Chromium和WebKit(Firefox根据需要选择),不勾选Use JavaScript,选中Add GitHub Actions workflow, 点击OK

这时,已经创建示例测试文件,切换到Explorer, 可以在tests目录下可以看到example.spec.ts文件,可以基于这个文件修改,也可以在tests目录下新建测试文件

4.运行

点击切换到Testing

有多个浏览器时,点击TEST EXPLORER后面的运行按钮下拉框,选择浏览器,点击这里的运行按钮,运行。

只有一个浏览器时,直接点击运行

5. 测试代码

(1)playwright.config.ts文件内容, 有中文注释的是新增或修改的内容

import { defineConfig, devices } from '@playwright/test';

/**

* Read environment variables from file.

* https://github.com/motdotla/dotenv

*/

// require('dotenv').config();

/**

* See https://playwright.dev/docs/test-configuration.

*/

export default defineConfig({

testDir: './tests',

/* Run tests in files in parallel */

fullyParallel: true,

/* Fail the build on CI if you accidentally left test.only in the source code. */

forbidOnly: !!process.env.CI,

/* Retry on CI only */

retries: process.env.CI ? 2 : 0,

/* Opt out of parallel tests on CI. */

workers: process.env.CI ? 1 : undefined,

/* Reporter to use. See https://playwright.dev/docs/test-reporters */

reporter: 'html',

/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */

use: {

/* Base URL to use in actions like `await page.goto('/')`. */

/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */

trace: 'on-first-retry',

launchOptions: {

//设置chronium全屏,窗口最大化

args: ['--start-maximized'],

//设置操作步骤等待时间为5秒

slowMo: 5000,

},

//失败时截图

screenshot: 'only-on-failure',

//开启录屏,失败时录屏 选项是 'retain-on-failure'

video: {

mode: 'on',

size: { width: 1920, height: 1080 }

},

contextOptions: { recordVideo: { dir: 'test-results/videos/' } }

},

/* Configure projects for major browsers */

projects: [

//添加setup

// Setup project

{ name: 'setup', testMatch: /.*\.setup\.ts/,

use: {

//分辨率使用全屏设置,注释下面的devices语句

//...devices['Desktop Chrome'],

viewport: null,

},

},

{

name: 'chromium',

use: {

//分辨率使用全屏设置,注释下面的devices语句

//...devices['Desktop Chrome'],

storageState: 'playwright/.auth/user.json',

viewport: null,

},

dependencies: ['setup'],

},

{

name: 'firefox',

use: { ...devices['Desktop Firefox'] },

},

{

name: 'webkit',

use: { ...devices['Desktop Safari'] },

},

/* Test against mobile viewports. */

// {

// name: 'Mobile Chrome',

// use: { ...devices['Pixel 5'] },

// },

// {

// name: 'Mobile Safari',

// use: { ...devices['iPhone 12'] },

// },

/* Test against branded browsers. */

// {

// name: 'Microsoft Edge',

// use: { ...devices['Desktop Edge'], channel: 'msedge' },

// },

// {

// name: 'Google Chrome',

// use: { ...devices['Desktop Chrome'], channel: 'chrome' },

// },

],

/* Run your local dev server before starting the tests */

// webServer: {

// command: 'npm run start',

// url: 'http://127.0.0.1:3000',

// reuseExistingServer: !process.env.CI,

// },

//设置事件超时时间

timeout: 120000,

globalTimeout: 600000,

});

(2)test目录下的.spec.ts文件, 内容:

import { test, expect } from '@playwright/test';

test('visit aix', async ({ page }) => {

await page.goto('页面链接1');

await expect(page).toHaveTitle(/title/);

});

(3)登录,保存登录信息

在项目文件夹根目录下创建文件夹 playwright/.auth,把playwright/.auth添加到.gitignore文件

在tests目录下创建auth.setup.ts文件

auth.setup.ts文件内容:

import { test as setup, expect, chromium } from '@playwright/test';

const authFile = 'playwright/.auth/user.json';

setup('authenticate', async ({ page }) => {

// Perform authentication steps. Replace these actions with your own.

await page.goto('页面地址0');

await page.click("xpath1");

await page.fill("#username", "xxxxxx");

await page.fill("#password", "xxxxxx");

await page.click("//button[@type='submit']");

// Wait until the page receives the cookies.

// Sometimes login flow sets cookies in the process of several redirects.

// Wait for the final URL to ensure that the cookies are actually set.

await page.waitForURL('页面地址1');

await expect(page.locator("//div[contains(@class, 'username')]/span")).toHaveText('xxx');

// End of authentication steps.

await page.context().storageState({ path: authFile });

});

2. 学习成本

Vs code, typescript, xpath

3. 优点与缺点

对比Python+Selenium+Webdriver方案,

优点:(1)有官方IDE支持,使用较为简便,不需要使用Webdriver (2)支持的元素查找、定位方式更多 (3)加载时可以自动等待,操作事件的间隔时间可以统一配置

缺点:学习成本略高

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Playwright前端自动化测试
我们可以验证一下效果,将 test 环境中的 url 设置为码云,将 production 环境中的 url 设置为 Github:
一起重学前端
2024/10/03
4110
微软开源最强Python自动化神器Playwright!不用写一行代码!自动生成代码还竟然如此流畅!妈妈再也不用担心我不会写代码了!
使用Playwright无需写一行代码,我们只需手动操作浏览器,它会录制我们的操作,然后自动生成代码脚本。 下面就是录制的命令codegen,仅仅一行。
川川菜鸟
2021/10/18
3.2K0
Playwright测试步骤封装,使用Typescript实现在测试case文件中调用另一个文件中的方法
可以参考官方文档:https://playwright.dev/docs/getting-started-vscode
coffee1
2024/11/09
4330
《最新出炉》系列初窥篇-Python+Playwright自动化测试-2-playwright的API及其他知识
上一篇宏哥已经将Python+Playwright的环境搭建好了,而且也简单的演示了一下三款浏览器的启动和关闭,是不是很简单啊。今天主要是把一篇的中的代码进行一次详细的注释,然后说一下playwright的API和其他相关知识点。那么首先将上一篇中的代码进行一下详细的解释。
北京-宏哥
2023/06/10
1.6K1
《最新出炉》系列初窥篇-Python+Playwright自动化测试-2-playwright的API及其他知识
《最新出炉》系列初窥篇-Python+Playwright自动化测试-1-环境准备与搭建
有很多人私信留言宏哥问能不能介绍一下Playwright这款自动化神器的相关知识,现在网上的资料太少了。其实在各大博客和公众号也看到过其相关的介绍和讲解。要不就是不全面、不系统,要不就是系统全面但是人家是收费的。当然了宏哥接下来也可能介绍的不全面或者不系统,能力有限望大家理解。
北京-宏哥
2023/05/31
18K5
《最新出炉》系列初窥篇-Python+Playwright自动化测试-1-环境准备与搭建
playwright基础教程
Playwright是一个由Microsoft开发的自动化测试工具,可以用来测试Web应用程序。它支持多种编程语言和多个浏览器,包括Chrome,Firefox和WebKit。它通过提供一组API,使得开发人员可以在浏览器中模拟用户行为,例如单击,输入文本和导航到不同的页面,同时还能捕捉截图和视频。
梦无矶小仔
2023/08/03
9310
playwright基础教程
推荐一款最强 Python 自动化神器!不用写一行代码!
搞过自动化测试的小伙伴,相信都知道,在Web自动化测试中,有一款自动化测试神器工具: selenium。结合标准的WebDriver API来编写Python自动化脚本,可以实现解放双手,让脚本代替人工在Web浏览器上完成指定的操作。
测试开发技术
2020/12/18
2K0
推荐一款最强 Python 自动化神器!不用写一行代码!
自动化测试工具-Playwright(快速上手)
一提到 UI 自动化测试工具,首要推荐的必属是 Selenium,其优势在于跨平台、跨语言、完全开源、对商业用户也没有任何限制、支持分布式、拥有成熟的社区与学习文档等,目前已经迭代更新到 4 版本。那么缺点也有,比如环境配置、加载效率低、运行速度慢等。
wangmcn
2022/07/26
3.4K0
自动化测试工具-Playwright(快速上手)
推荐几款常用Web自动化测试神器!
Web自动化测试在保证质量、提升效率、软件开发加速迭代上起到关键作用,它已经成为现代软件测试中不可或缺的一部分,今天给大家介绍推荐几款常用的Web自动化测试工具。
测试开发技术
2023/09/11
5K0
推荐几款常用Web自动化测试神器!
《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本
各种自动化框架都会有脚本录制功能, playwright这么牛叉当然也不例外。很早之前的selenium、Jmeter工具,发展到每种浏览器都有对应的录制插件。今天我们就来看下微软自动化框架playwright是如何录制脚本的。很多小伙伴或者童鞋们会觉得奇怪,怎么现在才将录制生成脚本啊,要是早点讲解和分享,我还费什么劲,揪头发写代码啊。宏哥这里说一下:这么做的目的就是为了录制生成脚本打基础的。要不然开始直接上手就录制了,就算生成脚本你也不知道什么意思,更不用说脚本中有错误需要你调试修改脚本了。playwright 可以支持自动录制生成脚本,也就是说只需要在页面上点点点,就可以自动生成对应的脚本了。
北京-宏哥
2024/04/25
5490
《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本
Web UI自动化利器-Playwright
一、安装 1、官方文档:https://playwright.dev/python/docs/intro 2、Git:https://github.com/Microsoft/playwright-python 3、pypi:https://pypi.org/project/playwright/ 4、安装 依赖:Python 3.7 版本及以上 安装过程中会自动安装对应的浏览器和驱动,不需要额外配置 WebDriver (1)通过pip安装 pip install --upgrade pip pip i
沈宥
2022/12/05
7700
Web UI自动化利器-Playwright
不写一行代码来实现自动化
由于技术的进步,各行各业的门槛越来越低。 以前别人说会selenium就是会自动化。好像很高大上的样子。现在会selenium估计是基本的。大家都忙着内卷,各种轮子越来越多,自动化的门槛也越来越低。
赵云龙龙
2021/03/16
8990
微软开源最强Python自动化神器Playwright!不用写一行代码!
相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具。写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑。
Python之道
2020/12/25
1.7K0
强大易用!新一代爬虫利器 Playwright 的介绍
Playwright 是微软在 2020 年初开源的新一代自动化测试工具,它的功能类似于 Selenium、Pyppeteer 等,都可以驱动浏览器进行各种自动化操作。它的功能也非常强大,对市面上的主流浏览器都提供了支持,API 功能简洁又强大。虽然诞生比较晚,但是现在发展得非常火热。
崔庆才
2021/12/10
7.6K0
强大易用!新一代爬虫利器 Playwright 的介绍
【学员作品】Playwright自动化测试工具之元素定位实战
https://playwright.dev/python/docs/api/class-elementhandle/#element_handleis_visible
IT苦逼一枚
2021/04/16
3.1K0
【学员作品】Playwright自动化测试工具之元素定位实战
前端自动化测试革命:Playwright如何一统端到端测试?
💡 "每次上线都要手工测试到凌晨?" 这是某大厂前端团队在凌晨3点的会议室发出的灵魂拷问。直到他们全面接入Playwright后,端到端测试耗时从8小时→20分钟,测试覆盖率从37%→89%。今天我们就来揭秘这个微软开源的测试神器如何重新定义前端自动化测试。
Jimaks
2025/05/18
2580
前端自动化测试革命:Playwright如何一统端到端测试?
Electron自动化测试技术选型调研
Electron简介 Electron是一个开源的框架,用于构建跨平台的桌面应用程序。它由GitHub开发并于2013年首次发布。Electron允许开发人员使用Web技术(如HTML、CSS和JavaScript)来构建桌面应用程序,同时可以在Windows、macOS和Linux等操作系统上运行。
zx钟
2023/09/24
1.9K0
Electron自动化测试技术选型调研
微软推出的浏览器自动化工具 playwright
提供同步(阻塞)API 和异步 API。它们在功能方面是相同的,并且仅在使用 API 的方式上有所不同。
叉叉敌
2021/12/06
4590
专为 Claude Code 设计的基于 YAML 的 Playwright MCP自动化测试
专为 Claude Code 和 Playwright MCP 打造的 YAML 配置如何改变了我们的测试工作流程,让自动化测试变得人人可用
terryso
2025/06/20
1150
快速进行UI自动化
最近团队少了好些人,有点忙不过来,虽然是有覆盖好多API测试,但是端到端的测试,还是少不了UI。
赵云龙龙
2024/01/15
3750
快速进行UI自动化
推荐阅读
相关推荐
Playwright前端自动化测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档