Form testing
WP Foreman fills in a website's forms the way a visitor would and checks the thank-you message shows and the notification email arrives.
Updated Oct 21, 2026
A contact form can look fine and still be broken: a plugin update changes something, the email setup stops working, or a spam filter starts eating real enquiries. Form testing fills in the forms you pick, sends them, and checks that everything that should happen does.
It works with Gravity Forms, WPForms, Contact Form 7 and Fluent Forms, and needs WP Foreman plugin 0.9.0 or newer on the website.
Pick the forms to test
- Open the site and click Form testing in the sidebar. WP Foreman lists the forms it found and the pages they’re on.
- Tick Test this form on the ones that matter (usually the contact and quote forms).
- Check the page under Test on. If a form is on several pages, pick the one visitors use.
- Click Test now. The result appears under the form within a minute or two.
The first time you open the page, a short tour points out each of these.
Ticked forms are then tested every week and a few minutes after updates (see On a schedule). Added a form since? Click Find forms. Forms in popups, widgets or page builder templates aren’t found yet.
What a test checks
- The form sends. Required fields are filled in with test details, and the thank-you message has to appear. A validation error or an error message fails the test.
- The notification email arrives. Each email the form sends is caught by WP Foreman, along with how long it took and whether it passed SPF, DKIM and DMARC (the checks that keep it out of spam).
Some forms send their email a minute or two later in the background. The result shows Sent. Waiting for the email… for up to 10 minutes before deciding.
On a schedule, and after updates
Every ticked form is tested on its own, so you find out about a broken form before a client does. At the top of the Form testing page, choose:
- Test the ticked forms: Every week (the default), Every day, or Off (Test now only).
- A few minutes after WP Foreman updates this site (on by default): after plugin, theme or WordPress updates, the ticked forms are tested again, since an update is the usual reason a form breaks. A form tested in the last 30 minutes is skipped.
Each result shows whether it was scheduled, after updates or Test now.
When a form stops working
- Email: when a scheduled or after-update test fails, everyone on the account gets one email, and one more when it works again. It doesn’t repeat while it stays broken. Test now results show on screen instead. Turn the emails off in Settings › Notifications under Forms that stop working.
- Push: with push notifications on, you get one on your phone too (A form stops working).
- Morning report: a form that’s failing is listed under Needs you until it passes again.
- Rules: start a rule with A form test fails or A form that was failing works again, for example to post to a webhook. See Rules reference.
- Site log: every change from working to failing (and back) is logged under Form tests.
A test that couldn’t run at all (the website was down, or WP Foreman couldn’t reach it) shows Couldn’t test and doesn’t count as the form failing.
In client reports
Client reports have a Form testing section, shown as Forms, tested like a visitor: how many tests ran in the period and how many went through, and for each form its page, tests, passes, latest result and how quickly the email arrived. The highlights at the top say it in one line, for example “We tested your 2 forms 8 times, and every test went through, email included.”
- A form whose latest test failed is also listed under Needs attention.
- Tests that couldn’t run (the website was unreachable) aren’t counted.
- Untick Form testing under Choose what’s in it on the site’s Reports page to leave it out. It’s left out by itself when no form was tested in the period.
What the test doesn’t touch
- No real email goes out unless you ask for a copy (below). The result shows who it would have gone to.
- No outside services are called: CRMs, Zapier, mailing lists and webhooks are skipped for the test, and listed in the result.
- The test entry is deleted, so it doesn’t count as a lead or clutter the form’s entries.
- Only WP Foreman’s test is affected. Each test uses a one-time key that expires after 15 minutes; real visitors never get any of this.
Get a copy of the test email
By default the test email only goes to WP Foreman. To see it land in a real inbox, pick an option under Test emails on the form:
- Also send a copy to the form’s recipients: the website’s own notification address gets it too. Good for proving to a client their inbox receives it.
- Also send a copy to…: one address of your choice, such as your agency’s inbox, so you see every test without bothering the client.
The copy is a real email sent by the website, with [WP Foreman test] at the start of the subject. Every test sends one, scheduled ones included, so pick an inbox that won’t mind. Needs WP Foreman plugin 0.9.6 or newer.
If the copy lands in spam
A test can pass and its copy still land in spam. Spam filters are suspicious of messages that look automated, and a test is exactly that. What tells you more is where the website’s real enquiries land:
- Real enquiries reach the inbox: the website’s email is fine. Add a filter so test copies always do too. In Gmail, search for
subject:"[WP Foreman test]", click Create filter, and tick Never send it to Spam. In Outlook, add a rule for that subject that moves it to the Inbox. - Real enquiries land in spam too: the test found a real problem. Check the result’s SPF, DKIM and DMARC: any that don’t say pass need fixing in the domain’s DNS (your email service’s setup page lists the records). If they all pass, it’s the sending domain’s reputation: a dedicated email service (Mailgun, Postmark, SendGrid) for the website’s mail usually helps, and see Email delivery check.
“Would have marked this as spam”
To get through, a test has to skip the form’s CAPTCHA, honeypot and spam checks (Akismet, Gravity Forms’ own spam filter, and so on); a robot can’t pass them, which is the point of them. When one of those checks would have blocked the test, the result says so, for example “Gravity Forms would have marked this as spam; the test let it through.”
That’s usually fine: the test details look like a robot to a spam filter. It only matters if real visitors are being flagged too. Now and then, look at the form’s spam folder on the website (Gravity Forms: Forms › Entries, then Spam; WPForms: WPForms › Entries, then Spam). Real enquiries there mean the spam settings are too strict.
When a test fails
- The form didn’t send or showed an error: open the screenshot in the result to see what the page showed.
- The thank-you message showed but no email was sent: check the form’s notification settings (is one switched on, and does it have a recipient?).
- The email never arrived: the website’s email is likely broken. See Email delivery check.
Thanks. If something was missing, tell us what.