Skip to content
Browsers & devices · 7 min read

How to test web push notifications

Testing push takes a few minutes if you know where to click. Use a live demo to check your device, DevTools to check your worker and a real send to check the whole chain.

Updated By the Pusharoo team
In short
  • Check your device first with a live demo — it rules out OS settings.
  • Use DevTools’ Push button to test your service worker without a server.
  • Then send a real notification only to your own subscription.
  • Test on desktop, Android and iPhone (from the Home Screen) before launch.

Step 1 — test your device

Before debugging code, confirm your browser and OS can show web push at all. The live demo on our homepage subscribes your browser and sends a real notification from our server in about ten seconds. If that doesn’t appear, the problem is OS or browser settings, not your site (troubleshooting).

Step 2 — test your service worker in DevTools

BrowserWhereWhat to do
Chrome / EdgeDevTools → Application → Service workersEnter a test payload and click Push
Firefoxabout:debugging#/runtime/this-firefoxClick Push next to your worker
Safari (macOS)Develop → Service WorkersInspect the worker console while sending a real push

The Push button fires a push event locally — handy for checking your notification code, though it skips the push service and encryption.

Step 3 — send a real notification to yourself

  1. Subscribe on your own device through your prompt.
  2. In Pusharoo, create a segment that only contains you — for example “joined in the last 1 day” right after subscribing — or use “Send test” on your subscriber.
  3. Send a campaign with a link, image and title of realistic length.
  4. Check how the title truncates, whether the image shows and that the link opens the right page.
nowTest notification 🧪If you can read this, your setup works.

Step 4 — test the platforms that matter

PlatformCheck
Chrome on WindowsImage, buttons, long title
Safari or Chrome on macOSShort title truncation, OS permission
Chrome on AndroidLock screen, image when expanded
iPhone (Home Screen, iOS 16.4+)Install flow, permission after tap, lock screen
FirefoxText-only rendering

Reading worker logs

Service worker console.log output appears in the worker’s own console, not the page’s. In Chrome open DevTools → Application → Service workers → “Inspect” (or chrome://serviceworker-internals); in Firefox use the Inspect link in about:debugging; in Safari choose Develop → Service Workers. Add temporary logs to your push handler to see the payload arrive.

Testing with Pusharoo

create a free account, add a test site (a staging domain works), install the two files and use the dashboard’s test send on your own subscription. The homepage demo is a quick way to confirm a device works before you touch your own code.

Pre-launch checklist

  • https://yoursite.com/sw.js opens and shows JavaScript.
  • The prompt appears after the delay/scroll you set and respects “Not now”.
  • Your subscriber count increases by one in the dashboard.
  • A test campaign arrives on desktop and Android.
  • iPhone: Add to Home Screen → open icon → Allow → test arrives.
  • Notification links carry UTM tags (analytics).

Questions

How can I test push notifications without a server?

Use the Push button in Chrome DevTools (Application → Service workers) or Firefox’s about:debugging. It fires a local push event for your worker.

Can I test web push on localhost?

Yes. Browsers treat http://localhost as secure for service workers and push, so you can develop locally.

Why does the DevTools test work but real pushes don’t?

DevTools skips the push service and encryption. Check your VAPID keys, the subscription’s endpoint and the sender’s response codes.

More in Browsers & devices: Safari push notifications on the Mac · Microsoft Edge push notifications · Web push notifications on Android · PWA push notifications on iOS and Android · How to turn off website notifications · All guides

Free for life. No limits.

Unlimited subscribers, campaigns and automations. No badges. About five minutes to install.