diff --git a/packages/integration-tests/suites/tracing/metrics/web-vitals-ttfb/template.hbs b/packages/integration-tests/suites/tracing/metrics/web-vitals-ttfb/template.hbs
new file mode 100644
index 000000000000..c798102c2014
--- /dev/null
+++ b/packages/integration-tests/suites/tracing/metrics/web-vitals-ttfb/template.hbs
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+ Rendered
+
+
diff --git a/packages/integration-tests/suites/tracing/metrics/web-vitals-ttfb/test.ts b/packages/integration-tests/suites/tracing/metrics/web-vitals-ttfb/test.ts
new file mode 100644
index 000000000000..039406974db0
--- /dev/null
+++ b/packages/integration-tests/suites/tracing/metrics/web-vitals-ttfb/test.ts
@@ -0,0 +1,13 @@
+import { expect } from '@playwright/test';
+
+import { sentryTest } from '../../../../utils/fixtures';
+import { getSentryTransactionRequest } from '../../../../utils/helpers';
+
+sentryTest('should capture TTFB vital.', async ({ getLocalTestPath, page }) => {
+ const url = await getLocalTestPath({ testDir: __dirname });
+ const eventData = await getSentryTransactionRequest(page, url);
+
+ expect(eventData.measurements).toBeDefined();
+ expect(eventData.measurements?.ttfb?.value).toBeDefined();
+ expect(eventData.measurements?.['ttfb.requestTime']?.value).toBeDefined();
+});