最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一款強大的端到端測試工具Playwright介紹

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

Playwright

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

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

跨瀏覽器

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

支持多編程語言

Playwright 提供了多種編程語言的 API,包括 TypeScript、JavaScript、Python、.NET 和 Java,除了前端之外的其他工程師,也可以選擇自己熟悉的語言開發(fā)功能。比如,測試工程師可能對 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();
})();

保存登錄信息

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

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

Playwright 新增 Context 的概念,它能夠在單個瀏覽器實例中提供相互隔離的執(zhí)行環(huán)境。特別是在同時測試多個頁面時,這個特性是非常有用的,很方便的實現(xiàn)網(wǎng)頁頻繁切換。每個頁面在各自的 Context 中執(zhí)行,頁面之間不會產(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();

自動等待

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

測試框架

Playwright 作為一個測試框架,集成了斷言、API 測試、測試注解等功能。在測試領(lǐng)域,Playwright 對標的應(yīng)該是 Selenium,并且在測試領(lǐng)域中會有更多的應(yīng)用場景。在開發(fā)體驗和運行效率方面,Playwright 可謂是后來居上,新技術(shù)的應(yīng)用使其遠遠優(yōu)于 Selenium。另外,在對移動端的支持、以及腳本錄制等方面,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');
});

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

相關(guān)文章

  • Python操作MySQL數(shù)據(jù)庫的簡單步驟分享

    Python操作MySQL數(shù)據(jù)庫的簡單步驟分享

    這篇文章主要給大家介紹了關(guān)于Python操作MySQL數(shù)據(jù)庫的簡單步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 深入理解pytorch庫的dockerfile

    深入理解pytorch庫的dockerfile

    這篇文章主要介紹了pytorch庫的dockerfile,主要包括dockerfile命令,使用指令的注意點及存在的一些問題,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • Keras實現(xiàn)DenseNet結(jié)構(gòu)操作

    Keras實現(xiàn)DenseNet結(jié)構(gòu)操作

    這篇文章主要介紹了Keras實現(xiàn)DenseNet結(jié)構(gòu)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 查看Django和flask版本的方法

    查看Django和flask版本的方法

    今天小編就為大家分享一篇查看Django和flask版本的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Python中利用Scipy包的SIFT方法進行圖片識別的實例教程

    Python中利用Scipy包的SIFT方法進行圖片識別的實例教程

    SIFT算法可以檢測圖片中的局部特征,算法原理相當復(fù)雜...但是!Python強大的第三方包Scipy中帶有實現(xiàn)SIFT算法的SIFT方法,我們只要拿來用就可以了,下面就為大家?guī)鞵ython中利用Scipy包的SIFT方法進行圖片識別的實例教程.
    2016-06-06
  • Python調(diào)用接口合并Excel表代碼實例

    Python調(diào)用接口合并Excel表代碼實例

    這篇文章主要介紹了Python調(diào)用接口合并Excel表代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

    Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n]

    這篇文章主要介紹了Python中的X[:,0]、X[:,1]、X[:,:,0]、X[:,:,1]、X[:,m:n]和X[:,:,m:n],文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python OpenCV直方圖均衡化詳解

    Python OpenCV直方圖均衡化詳解

    本文中將介紹如何使用OpenCV函數(shù)執(zhí)行直方圖均衡,并將其應(yīng)用于灰度和彩色圖像,以及將亮度歸一化并提高圖像的對比度。感興趣的小伙伴可以了解一下
    2022-02-02
  • Python根據(jù)字符串語義相似度計算的多種實現(xiàn)算法

    Python根據(jù)字符串語義相似度計算的多種實現(xiàn)算法

    這篇文章主要介紹了Python根據(jù)字符串語義相似度計算的多種實現(xiàn)算法,以下是幾種基于語義的字符串相似度計算方法,每種方法都會返回0.0到1.0之間的相似度分數(shù)(保留一位小數(shù)),需要的朋友可以參考下
    2025-07-07
  • 淺談pytest中重試機制的多種方法

    淺談pytest中重試機制的多種方法

    這篇文章主要介紹了淺談pytest中重試機制,包括常用插件pytest-rerunfailures、靈活插件pytest-retry、自定義鉤子及裝飾器,具有一定的參考價值,感興趣的可以了解一下
    2025-06-06

最新評論

天水市| 东阳市| 四川省| 尚义县| 亚东县| 长宁区| 元谋县| 萝北县| 巨野县| 犍为县| 铜川市| 阿瓦提县| 恩平市| 府谷县| 罗城| 承德市| 栖霞市| 龙游县| 佳木斯市| 衡东县| 咸丰县| 邛崃市| 郸城县| 福鼎市| 汨罗市| 长垣县| 宜城市| 宿松县| 托克托县| 天津市| 丰台区| 仁寿县| 汶上县| 安徽省| 新宁县| 嵊泗县| 富川| 施秉县| 慈利县| 恩施市| 抚远县|