欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一款強(qiáng)大的端到端測(cè)試工具Playwright介紹

 更新時(shí)間:2023年01月29日 15:55:51   作者:KooFE  
這篇文章主要為大家介紹了一款強(qiáng)大的端到端測(cè)試工具Playwright介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Playwright

Playwright 是微軟公司開源的一款 UI 自動(dòng)化測(cè)試工具,它的第一個(gè)版本 v0.10.0 發(fā)布于 2020 年 2 月初,目前的最新版本是 v1.18.0,版本的迭代速度還是很快的。

作為一款端到端的測(cè)試工具,在過去短短的兩年時(shí)間里,Playwright 已經(jīng)贏得了越來越多開發(fā)人員的青睞。Best of JS 網(wǎng)站對(duì)比了各個(gè)測(cè)試框架 2021 年在 GitHub 新增的 star 數(shù)量,Playwright 位于榜首位置,其受歡迎的程度可見一斑。本文將對(duì) Playwright 的特點(diǎn)做一些的介紹。

跨瀏覽器

Playwright 支持了所有現(xiàn)代的瀏覽器內(nèi)核,包括 Chromium, WebKit 和 Firefox,因此幾大主流的瀏覽器 Chrome、Edge、Firefox、Opera 以及 Opera 都支持。如果要對(duì)頁面做兼容性方面的測(cè)試,Playwright 是一個(gè)很好的選擇,畢竟 Puppeteer 支持的瀏覽器比較少。

支持多編程語言

Playwright 提供了多種編程語言的 API,包括 TypeScript、JavaScript、Python、.NET 和 Java,除了前端之外的其他工程師,也可以選擇自己熟悉的語言開發(fā)功能。比如,測(cè)試工程師可能對(duì) Python 更為熟悉。在語言的支持方面,Puppeteer 做得也不是很好,很多人在抱怨它的 Python API 很難用。

const { chromium, firefox, webkit } = require('playwright');
(async () => {
  const browser = await chromium.launch();  // Or 'firefox' or 'webkit'.
  const page = await browser.newPage();
  await page.goto('http://example.com');
  // other actions...
  await browser.close();
})();

保存登錄信息

在測(cè)試中,經(jīng)常會(huì)有頁面登陸的場(chǎng)景,在單元測(cè)試中為了提高效率避免多次登陸,Playwright 提供了保存登陸上下文信息的功能。只需要將已保存的登陸信息,重新加載到頁面中,即可恢復(fù)到用戶已登陸的狀態(tài)。

執(zhí)行環(huán)境的隔離

Playwright 新增 Context 的概念,它能夠在單個(gè)瀏覽器實(shí)例中提供相互隔離的執(zhí)行環(huán)境。特別是在同時(shí)測(cè)試多個(gè)頁面時(shí),這個(gè)特性是非常有用的,很方便的實(shí)現(xiàn)網(wǎng)頁頻繁切換。每個(gè)頁面在各自的 Context 中執(zhí)行,頁面之間不會(huì)產(chǎn)生干擾,包括 Cookies 等信息都是隔離的。

const { chromium } = require('playwright');
// Create a Chromium browser instance
const browser = await chromium.launch();
// Create two isolated browser contexts
const userContext = await browser.newContext();
const adminContext = await browser.newContext();
// Create pages and interact with contexts independently

選擇器

Playwright 支持多種元素定位方式,比如 CSS 選擇器、XPath 選擇器等,而且使用起來比較友好。

// Clicks a <button> that has either a "Log in" or "Sign in" text.
await page.locator('button:has-text("Log in"), button:has-text("Sign in")').click();

自動(dòng)等待

Playwright 在與元素交互操作(如點(diǎn)擊操作)之前,會(huì)進(jìn)行一系列可操作性檢查,以確保這些行動(dòng)按預(yù)期運(yùn)行。它會(huì)自動(dòng)等待所有相關(guān)檢查通過,然后才執(zhí)行相關(guān)的操作。這樣可以避免元素因?yàn)闆]有渲染,而導(dǎo)致交互操作的失敗。在其他的一些測(cè)試框架中,需要開發(fā)人員自己手動(dòng)設(shè)置等待時(shí)間,而且手動(dòng)設(shè)置的時(shí)間往往也是不精確的。

測(cè)試框架

Playwright 作為一個(gè)測(cè)試框架,集成了斷言、API 測(cè)試、測(cè)試注解等功能。在測(cè)試領(lǐng)域,Playwright 對(duì)標(biāo)的應(yīng)該是 Selenium,并且在測(cè)試領(lǐng)域中會(huì)有更多的應(yīng)用場(chǎng)景。在開發(fā)體驗(yàn)和運(yùn)行效率方面,Playwright 可謂是后來居上,新技術(shù)的應(yīng)用使其遠(yuǎn)遠(yuǎn)優(yōu)于 Selenium。另外,在對(duì)移動(dòng)端的支持、以及腳本錄制等方面,Playwright 也是有很好的表現(xiàn)。

import { test, expect } from '@playwright/test';
test('basic test', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  const title = page.locator('.navbar__inner .navbar__title');
  await expect(title).toHaveText('Playwright');
});

本文只對(duì) Playwright 做了一些簡單的介紹,并未深入的展開,從當(dāng)前的使用的趨勢(shì)和熱度來看,還是有必要對(duì)它進(jìn)行一定的了解和關(guān)注,更多關(guān)于端到端測(cè)試工具Playwright的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python錯(cuò)誤處理詳解

    python錯(cuò)誤處理詳解

    這篇文章主要介紹了python錯(cuò)誤處理詳解,本文講解了try語句、錯(cuò)誤堆棧、記錄錯(cuò)誤、拋出錯(cuò)誤等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • pytorch固定BN層參數(shù)的操作

    pytorch固定BN層參數(shù)的操作

    這篇文章主要介紹了pytorch固定BN層參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Django日志模塊logging的配置詳解

    Django日志模塊logging的配置詳解

    日志在程序開發(fā)中是少不了的,通過日志我們可以分析到錯(cuò)誤在什么地方,有什么異常。在生產(chǎn)環(huán)境下有很大的用處。在java 開發(fā)中通常用 log4j,logback 等三方組件。下面這篇文章主要介紹了Django日志模塊logging的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • python保留兩位小數(shù)的3種方法實(shí)例

    python保留兩位小數(shù)的3種方法實(shí)例

    保留小數(shù)位是我們經(jīng)常會(huì)碰到的問題,尤其是刷題過程中,下面這篇文章主要給大家介紹了關(guān)于python保留兩位小數(shù)的3種方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別

    圖解Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別

    這篇文章主要介紹了Python中淺拷貝copy()和深拷貝deepcopy()的區(qū)別,淺拷貝和深拷貝想必大家在學(xué)習(xí)中遇到很多次,這也是面試中常常被問到的問題,本文就帶你詳細(xì)了解一下
    2023-05-05
  • python Shapely使用指南詳解

    python Shapely使用指南詳解

    這篇文章主要介紹了python Shapely使用指南詳解,需要的朋友可以參考下
    2020-02-02
  • Python?常見的配置文件寫法梳理匯總

    Python?常見的配置文件寫法梳理匯總

    這篇文章主要介紹了Python?常見的配置文件寫法梳理匯總,文章圍繞主題展開主題相關(guān)梳理總結(jié),需要的朋友可以參考一下
    2022-07-07
  • 淺析Python編寫函數(shù)裝飾器

    淺析Python編寫函數(shù)裝飾器

    這篇文章主要介紹了Python編寫函數(shù)裝飾器的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • PyQt轉(zhuǎn)換路徑中的斜杠(斜杠(/)與反斜杠(\)轉(zhuǎn)換)

    PyQt轉(zhuǎn)換路徑中的斜杠(斜杠(/)與反斜杠(\)轉(zhuǎn)換)

    本文主要介紹了PyQt轉(zhuǎn)換路徑中的斜杠(斜杠(/)與反斜杠(\)轉(zhuǎn)換),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Python BeautifulSoup中文亂碼問題的2種解決方法

    Python BeautifulSoup中文亂碼問題的2種解決方法

    這篇文章主要介紹了Python BeautifulSoup中文亂碼問題的2種解決方法,需要的朋友可以參考下
    2014-04-04

最新評(píng)論