偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Sentry 開發(fā)者貢獻指南 - 瀏覽器 SDK 集成測試

系統(tǒng) 瀏覽器
Sentry 的瀏覽器 SDK 的集成測試在內(nèi)部使用 Playwright。這些測試在 Chromium、Firefox 和 Webkit 的最新穩(wěn)定版本上運行。

Sentry 的瀏覽器 SDK 的集成測試在內(nèi)部使用 Playwright。這些測試在 Chromium、Firefox 和 Webkit 的最新穩(wěn)定版本上運行。

https://playwright.dev/

結(jié)構(gòu)

測試按其范圍分組,例如 breadcrumbs 或 onunhandledrejection。在每組測試中,都有多個包含測試用例及其可選支持資源的文件夾。

每個用例組都有一個名為 template.hbs 的默認 HTML skeleton,以及一個名為 init.js 的默認初始化腳本,其中包含 Sentry.init() 調(diào)用。當特定的 template.hbs 或 init.js 未在用例文件夾中定義時,這些默認值用作后備。

subject.js 包含設(shè)置要測試的環(huán)境的邏輯。它也可以在本地定義并作為組后備。與 template.hbs 和 init.js 不同,它不需要為組定義,因為可能存在不需要 subject 的情況,而是使用 utils/helpers.ts 中的 injectScriptAndGetEvents 注入邏輯。

每個測試用例都需要 test.ts,其中包含斷言(如果需要,還需要腳本注入邏輯)。對于每種情況,任何一組 init.js、template.hbs 和 subject.js 都可以在本地定義,并且它們中的每一個都將優(yōu)先于測試組的默認定義。

suites/
|---- breadcrumbs/
|---- template.hbs [面包屑測試的 fallback 模板]
|---- init.js [面包屑測試的 fallback init]
|---- subject.js [面包屑測試的可選 fallback subject]
|---- click_event_tree/
|---- template.hbs [可選用例特定模板]
|---- init.js [可選的特定于用例的 init]
|---- subject.js [可選案例特定 subject]
|---- test.ts [斷言]

編寫測試

Helpers

utils/helpers.ts 包含可以在斷言中使用的 helper(test.ts)。這些 helper 定義了一個方便可靠的 API 來與 Playwright 的原生 API 進行交互。強烈建議在 helper 中定義所有常見的 Playwright 使用模式。

Fixtures

Fixtures 允許我們在斷言組(test.ts 文件)中定義全局和特定于測試的信息。在當前狀態(tài)下,fixtures.ts 包含對 Playwright 的 test() 函數(shù)的 pure 版本的擴展。所有測試都應(yīng)該從 utils/fixtures.ts 而不是 @playwright/test 導(dǎo)入 sentryTest 函數(shù),以便能夠訪問額外的 fixtures。

??https://playwright.dev/docs/api/class-fixtures??

在本地運行測試

可以使用最新版本的 Chromium 在本地運行測試:

yarn test

要使用不同的瀏覽器(例如 firefox 或 webkit)運行測試:

yarn test --browser='firefox' yarn test --browser='webkit'

或者在所有三個瀏覽器上運行:

yarn test --browser='all'

按 title 過濾測試:

yarn test -g "XMLHttpRequest without any handlers set"

您可以參考 Playwright 文檔了解其他 CLI 選項。

故障排除

除了特定于 Playwright 的問題外,以下是為 Sentry Browser SDK 編寫測試時可能出現(xiàn)的常見問題。

??https://playwright.dev/docs/troubleshooting??

不穩(wěn)定的測試

如果測試隨機失敗,給出 Page Closed、Target Closed 或類似錯誤,大多數(shù)情況下,原因是 subject 中定義的 page action 與 Sentry event/request 的偵聽器之間存在競爭條件。建議首先檢查 utils/helpers.ts 是否可以用其中一個 helper 替換異步邏輯。如果不是,是否可以由 Promise.all 編排等待(或在某些情況下故意非等待)的 Playwright 方法。不建議手動定義等待邏輯,例如超時,并且在大多數(shù)情況下不需要。

??http://mdn.io/promise.all??

構(gòu)建錯誤

在運行之前,每個測試用例的頁面都會在 dist 內(nèi)的 case 文件夾下構(gòu)建。如果頁面構(gòu)建失敗,建議檢查:

  • 測試組是否定義了默認的 template.hbs 和 init.js。
  • 測試用例是否定義了 subject.js。
  • init.js 或 subject.js 中的任何一個是否包含非瀏覽器代碼。
  • webpack 配置是否有效。

實戰(zhàn)

進入 sentry-javascript 項目:

??https://github.com/getsentry/sentry-javascript.git??

安裝依賴

cd sentry-javascript
yarn
yarn lerna bootstrap
yarn build

Playwright 運行集成測試

進入集成測試軟件包 sentry-javascript/packages/integration-tests:

cd packages/integration-tests

# PWDEBUG=1 yarn test -> 打開 Playwright Inspector
yarn test

責任編輯:武曉燕 來源: 黑客下午茶
相關(guān)推薦

2022-01-02 23:26:08

開發(fā)SDK Sentry

2022-01-18 23:26:45

開發(fā)

2022-01-21 21:33:03

開發(fā)JavaScript應(yīng)用

2021-12-25 22:31:55

Sentry 監(jiān)控SDK 開發(fā) 性能監(jiān)控

2021-12-31 18:35:40

監(jiān)控Sentry開發(fā)

2022-01-03 22:59:30

開發(fā)SDK數(shù)據(jù)

2022-01-02 06:59:43

SentrySDK 開發(fā)客戶端報告

2022-01-11 20:42:54

開發(fā)Sentry標志

2022-01-17 19:34:43

SentryWeb APISentry API

2022-01-15 23:33:47

SentryPyCharm配置

2021-12-15 20:06:48

ReactJSSentry開發(fā)者

2022-01-16 22:16:59

數(shù)據(jù)庫Sentry開發(fā)者

2022-01-13 20:13:31

元宇宙搜索引擎

2021-12-16 20:12:37

后端開發(fā)Sentry

2022-01-20 19:49:10

Sentry開發(fā)Scope

2021-12-17 19:15:51

前端蟲洞狀態(tài)

2014-11-11 15:01:04

FirefoxMozilla

2015-10-30 09:32:49

Firebug開發(fā)者工具火狐瀏覽器

2011-07-01 13:11:22

Web

2024-07-25 14:40:35

瀏覽器插件Vimium C瀏覽器
點贊
收藏

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