成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自動(dòng)化測(cè)試工具-Playwright(快速上手)

開(kāi)發(fā) 開(kāi)發(fā)工具
本篇將介紹另一款強(qiáng)大而易用的 UI 自動(dòng)化測(cè)試工具-Playwright。

1、前言

一提到 UI 自動(dòng)化測(cè)試工具,首要推薦的必屬是 Selenium,其優(yōu)勢(shì)在于跨平臺(tái)、跨語(yǔ)言、完全開(kāi)源、對(duì)商業(yè)用戶也沒(méi)有任何限制、支持分布式、擁有成熟的社區(qū)與學(xué)習(xí)文檔等,目前已經(jīng)迭代更新到 4 版本。那么缺點(diǎn)也有,比如環(huán)境配置、加載效率低、運(yùn)行速度慢等。

除了 Selenium 就沒(méi)有別的工具推薦了嗎?當(dāng)然不是,還有很多優(yōu)秀的工具,比如 Cypress、Robot Framework 等。

本篇將介紹另一款強(qiáng)大而易用的 UI 自動(dòng)化測(cè)試工具-Playwright。

2、簡(jiǎn)介

微軟開(kāi)源自動(dòng)化測(cè)試工具 Playwright,支持主流瀏覽器,包括:Chrome、Firefox、Safari 等,同時(shí)支持以無(wú)頭模式、有頭模式運(yùn)行,并提供了同步、異步的 API,可以結(jié)合 Pytest 測(cè)試框架使用,并且支持瀏覽器端的自動(dòng)化腳本錄制等功能。

特點(diǎn):

1、跨瀏覽器。Playwright 支持所有現(xiàn)代渲染引擎,包括Chromium、WebKit 和 Firefox。

2、跨平臺(tái)。在 Windows、Linux 和 macOS 上進(jìn)行本地或 CI、無(wú)頭或有頭測(cè)試。

3、跨語(yǔ)言。在 TypeScript、JavaScript、Python、.NET、Java 中使用Playwright API。

4、測(cè)試移動(dòng)網(wǎng)絡(luò)。適用于 Android 和 Mobile Safari 的 Google Chrome 原生移動(dòng)仿真。相同的渲染引擎適用于您的桌面和云端。

官網(wǎng)地址:

https://playwright.dev。

GitHub地址:

https://github.com/microsoft/playwright。

3、安裝

Playwright 支持跨語(yǔ)言,本篇將以 Python 進(jìn)行講解。

首先要安裝 Python(有 Python 環(huán)境)。

之后打開(kāi)命令行,輸入安裝命令即可。

pip install --upgrade pip
pip install playwright
playwright install

4、交互模式

Playwright 支持交互模式,即運(yùn)行單行代碼或者代碼塊,能立即給出運(yùn)行結(jié)果。

由于 Playwright 支持同步和異步的 API,那么應(yīng)先了解一下什么是同步和異步?

同步,可以理解為在執(zhí)行完一個(gè)函數(shù)或方法之后,一直等待系統(tǒng)返回值或消息,這時(shí)程序是出于阻塞的,只有接收到返回的值或消息后才往下執(zhí)行其他的命令。

異步,執(zhí)行完函數(shù)或方法后,不必阻塞性地等待返回值或消息,只需要向系統(tǒng)委托一個(gè)異步過(guò)程,那么當(dāng)系統(tǒng)接收到返回值或消息時(shí),系統(tǒng)會(huì)自動(dòng)觸發(fā)委托的異步過(guò)程,從而完成一個(gè)完整的流程。

下面以操作打開(kāi)瀏覽器,訪問(wèn)百度首頁(yè),關(guān)閉瀏覽器為例。

(1)同步命令

打開(kāi)命令行,輸入 python。

進(jìn)入到 Python 交互模式中,輸入如下命令:

from playwright.sync_api import sync_playwright
playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False)
page = browser.new_page()
page.goto("https://www.baidu.com/")
browser.close()
playwright.stop()

輸入訪問(wèn)百度首頁(yè)命令,瀏覽器頁(yè)面會(huì)同時(shí)跳轉(zhuǎn)到百度首頁(yè),同時(shí)命令行輸出響應(yīng)與請(qǐng)求的信息。

圖片

(2)異步命令

打開(kāi)命令行,輸入 python -m asyncio。

進(jìn)入到 Python 交互模式中,輸入如下命令:

from playwright.async_api import async_playwright
playwright = await async_playwright().start()
browser = await playwright.chromium.launch(headless=False)
page = await browser.new_page()
await page.goto("https://www.baidu.com/")
await browser.close()
await playwright.stop()

輸入訪問(wèn)百度首頁(yè)命令,瀏覽器頁(yè)面也會(huì)同時(shí)跳轉(zhuǎn)到百度首頁(yè),命令行也會(huì)輸出響應(yīng)與請(qǐng)求的信息。

圖片

5、錄制模式

Playwright 帶有命令行工具(錄制功能),可用于記錄用戶交互并生成代碼(Java、Python等)。其實(shí)就是類似于 Selenium IDE。

(1)常規(guī)錄制

打開(kāi)命令行,輸入:

playwright codegen baidu.com

自動(dòng)打開(kāi)瀏覽器,并跳轉(zhuǎn)到百度首頁(yè)。

圖片

同時(shí)也彈出錄制窗口,可以看到是錄制中,腳本語(yǔ)言為 Python。

圖片

通過(guò)操作(點(diǎn)擊、輸入等)瀏覽器頁(yè)面,腳本也會(huì)自動(dòng)增加操作的步驟。

圖片

此外,錄制工具還可以獲取元素的定位。點(diǎn)擊停止錄制,之后再點(diǎn)擊 Explore 后,在頁(yè)面點(diǎn)擊想要定位的元素,即可獲取到該元素定位的值。

圖片

最后將錄制的腳本復(fù)制出來(lái),可做適當(dāng)?shù)恼{(diào)整。

調(diào)整后的腳本代碼:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公眾號(hào):AllTests軟件測(cè)試
from playwright.sync_api import Playwright, sync_playwright, expect
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
# Open new page
page = context.new_page()
# Go to https://www.baidu.com/
page.goto("https://www.baidu.com/")
# Click input[name="wd"]
page.locator("input[name=\"wd\"]").click()
# Fill input[name="wd"]
page.locator("input[name=\"wd\"]").fill("自動(dòng)化測(cè)試")
# Click text=百度一下
page.locator("text=百度一下").click()
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)

(2)模擬移動(dòng)設(shè)備錄制

open 可以模擬移動(dòng)設(shè)備和平板設(shè)備。

例如模擬 iPhone 13 訪問(wèn)作者的 CSDN。

playwright open --device="iPhone 13" blog.csdn.net/wangmcn

如圖:模擬 iPhone 13 打開(kāi)瀏覽器的效果。

圖片

6、編寫模式

使用 IDE(如 PyCharm、Visual Studio Code 等) 進(jìn)行編寫代碼并運(yùn)行程序。

(1)啟動(dòng)瀏覽器(無(wú)頭模式)

Playwright 可以啟動(dòng)三種瀏覽器中的 chromium、firefox、webkit 任何一種。

示例操作如下,打開(kāi)瀏覽器、跳轉(zhuǎn)百度、屏幕截圖、輸出頁(yè)面標(biāo)題、關(guān)閉瀏覽器。

腳本代碼:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公眾號(hào):AllTests軟件測(cè)試
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://www.baidu.com/")
page.screenshot(path="example.png")
print(page.title())
browser.close()

運(yùn)行結(jié)果:控制臺(tái)輸出頁(yè)面標(biāo)題。

圖片

(2)啟動(dòng)瀏覽器(有頭模式)

默認(rèn)情況下,Playwright 以無(wú)頭模式運(yùn)行瀏覽器。要查看瀏覽器 UI(有頭模式),請(qǐng)?jiān)趩?dòng)瀏覽器時(shí)傳遞 headless=False 標(biāo)志,還可以使用 slow_mo 來(lái)減慢執(zhí)行速度。

腳本代碼:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公眾號(hào):AllTests軟件測(cè)試
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False, slow_mo=50)
page = browser.new_page()
page.goto("https://www.baidu.com/")
page.screenshot(path="example.png")
print(page.title())
browser.close()

(3)異步

Playwright 支持 API 的兩種變體:同步和異步。

支持異步,如果你的項(xiàng)目使用 asyncio,則應(yīng)該使用 async API。

腳本代碼:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公眾號(hào):AllTests軟件測(cè)試
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
await page.goto("https://www.baidu.com/")
print(await page.title())
await browser.close()

asyncio.run(main())
責(zé)任編輯:姜華 來(lái)源: AllTests軟件測(cè)試
相關(guān)推薦

2012-12-24 22:54:31

2014-11-12 09:24:00

2011-05-30 17:50:23

分布式測(cè)試

2011-05-31 18:17:07

分布式測(cè)試

2009-07-06 10:08:03

Flex自動(dòng)化

2011-11-18 09:11:21

Web

2022-08-08 07:35:37

云測(cè)試工具云存儲(chǔ)云計(jì)算

2010-08-10 14:25:42

SilkTestFlex

2011-06-08 17:15:46

QTP腳本

2021-12-17 10:01:52

人工智能測(cè)試工具

2022-06-02 09:00:00

人工智能工具自動(dòng)化測(cè)試

2010-08-10 14:34:37

QTPFlex

2015-04-15 13:30:54

2022-12-04 23:52:11

iOS自動(dòng)化工具

2010-08-10 14:18:15

RationalFunFlex

2019-01-23 09:00:00

2012-09-17 13:21:22

iOSAndroid自動(dòng)化測(cè)試工具

2020-04-09 13:16:48

自動(dòng)化工具腳本

2016-11-11 14:34:46

開(kāi)源開(kāi)源工具

2020-08-07 08:10:25

開(kāi)源技術(shù) 工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 男女午夜激情视频 | 久久久久亚洲视频 | av特级毛片| 日本一区二区三区四区 | 中文字幕在线免费视频 | 欧美美乳 | 欧美性久久久 | 欧美日韩综合视频 | 无码国模国产在线观看 | 国产一二区视频 | 国产成人99久久亚洲综合精品 | 中文字幕日韩在线 | 极品销魂美女一区二区 | 久色视频在线观看 | av在线免费观看网站 | 国产一区二区三区在线免费观看 | 日本一级淫片免费啪啪3 | 中文字幕一区二区三区四区五区 | 欧美白人做受xxxx视频 | ririsao久久精品一区 | 日本国产精品视频 | 亚洲一区视频在线 | 亚洲精品国产成人 | 色综合网站 | 成年人免费网站 | 久久在线看 | 亚洲国产精品99久久久久久久久 | 国产精品久久久久一区二区三区 | 中文字幕一区二区三区在线观看 | 黄色免费av | 日韩视频精品 | 午夜专区 | 亚洲欧美一区二区三区情侣bbw | 亚洲国产欧美在线人成 | www.国产.com | 精品久久影院 | 精品国产18久久久久久二百 | 日一日操一操 | 在线视频国产一区 | 搞av.com | 狠狠干网站 |