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

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

系統 瀏覽器
Sentry 的瀏覽器 SDK 的集成測試在內部使用 Playwright。這些測試在 Chromium、Firefox 和 Webkit 的最新穩定版本上運行。

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

https://playwright.dev/

結構

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

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

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

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

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 文件)中定義全局和特定于測試的信息。在當前狀態下,fixtures.ts 包含對 Playwright 的 test() 函數的 pure 版本的擴展。所有測試都應該從 utils/fixtures.ts 而不是 @playwright/test 導入 sentryTest 函數,以便能夠訪問額外的 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 編寫測試時可能出現的常見問題。

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

不穩定的測試

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

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

構建錯誤

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

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

實戰

進入 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

責任編輯:武曉燕 來源: 黑客下午茶
相關推薦

2022-01-02 23:26:08

開發SDK Sentry

2022-01-18 23:26:45

開發

2022-01-21 21:33:03

開發JavaScript應用

2021-12-25 22:31:55

Sentry 監控SDK 開發 性能監控

2021-12-31 18:35:40

監控Sentry開發

2022-01-03 22:59:30

開發SDK數據

2022-01-02 06:59:43

SentrySDK 開發客戶端報告

2022-01-11 20:42:54

開發Sentry標志

2022-01-17 19:34:43

SentryWeb APISentry API

2022-01-15 23:33:47

SentryPyCharm配置

2021-12-15 20:06:48

ReactJSSentry開發者

2022-01-16 22:16:59

數據庫Sentry開發者

2022-01-13 20:13:31

元宇宙搜索引擎

2021-12-16 20:12:37

后端開發Sentry

2022-01-20 19:49:10

Sentry開發Scope

2021-12-17 19:15:51

前端蟲洞狀態

2014-11-11 15:01:04

FirefoxMozilla

2015-10-30 09:32:49

Firebug開發者工具火狐瀏覽器

2011-07-01 13:11:22

Web

2024-07-25 14:40:35

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

51CTO技術棧公眾號

主站蜘蛛池模板: 日日碰狠狠躁久久躁96avv | 精品视频一区二区三区在线观看 | 中文字幕在线第二页 | 一级欧美一级日韩片 | 国产一区二区三区www | 一级电影免费看 | 国产免费av在线 | 99re热精品视频 | 最新免费av网站 | 中文字幕日韩欧美一区二区三区 | 午夜小电影 | 欧美日韩综合视频 | 精品福利视频一区二区三区 | 免费观看一级特黄欧美大片 | 国产高清久久 | 久久午夜电影 | 亚洲一区二区三区在线 | 伊人伊人| 久久久无码精品亚洲日韩按摩 | 黄色大片在线视频 | 久久成人精品 | 亚洲成人精品免费 | 日日干夜夜操 | 日日夜夜草 | 亚洲精品一区二三区不卡 | 欧美日韩视频在线 | 91视频a| 岛国毛片| av在线免费观看网站 | 国产高清视频在线 | 中文日本在线 | 亚洲第一视频网站 | 中文字幕av在线 | 欧美一极视频 | 精品美女视频在线观看免费软件 | 国产精品看片 | 免费九九视频 | 成人一区二 | 99中文字幕 | 91成人在线| 日韩精品免费视频 |