World’s largest virtual agentic engineering & quality conference

WHENAUG 19-21
WHEREVirtual · Global
Register Now
Product Use CasesAI Testing

How to Test a WhatsApp Bot Without Code (2026 Guide)

How to test a WhatsApp bot without code: AI evaluators message it like real customers and score every conversation across nine quality metrics.

Author

Sushrut Kumar Mishra

Author

Author

Aman Chopra

Reviewer

Last Updated on: July 23, 2026

A support lead forwarded me one screenshot and a single line of context. A customer had written that their order was late for the third time, and the WhatsApp bot answered with a bright greeting and a link to the returns FAQ. Nothing errored. No status code went red. The bot simply read the room wrong, and the customer never wrote back.

So I blocked out an afternoon to work out how to test a WhatsApp bot properly, without standing up a test framework first. What follows is the whole session, from connecting the bot to gating it in a pipeline. The short version is that I described conversations in plain English and let a set of AI evaluators from TestMu AI play the customer, message the bot, and score every reply across nine quality metrics, the same way you would when testing a chatbot without code on any other channel.

Opening the session and connecting the bot

There was no SDK to install and no browser extension to deploy. I connected the bot by pasting its chat endpoint, then uploaded the two documents that already existed for it: a short PRD and the knowledge base the support team maintains. The platform parsed both and pulled out the policies the bot follows, the topics it covers, and a set of scenario seeds.

The one input that took real thought was the agent-under-evaluation prompt, a plain description of what good behavior looks like. I wrote a few lines: the bot is a customer service agent for an online store, it helps with orders and returns, it stays concise and empathetic, and it must never invent policies or delivery dates. That prompt becomes the baseline the evaluators grade against. The whole setup ran under thirty minutes, and none of it needed a line of code.

Writing the first conversation to check

I started with the dull happy path, because if that breaks nothing else matters. A customer asks to track an order, the bot asks for the number, the customer gives it, the bot returns a status. Had I scripted that against the WhatsApp Business API, it would have looked like this:

const url = "https://graph.facebook.com/v20.0/" + PHONE_NUMBER_ID + "/messages";
const send = await axios.post(url, {
  messaging_product: "whatsapp",
  to: "15551234567",
  type: "text",
  text: { body: "I need to track my order" }
}, { headers: { Authorization: "Bearer " + WHATSAPP_TOKEN } });

const reply = await waitForWebhookReply(send.data.messages[0].id);
assert.strictEqual(
  reply.text.body,
  "Sure! Please share your 5-digit order number and I will look it up."
);

A dozen lines, and fragile before it even runs. The assertion demands one exact sentence, but the bot is generative, so the wording moves every run and a perfectly correct answer fails the check. On top of that I would own the webhook plumbing, a dedicated WhatsApp test number, and a growing pile of string matches, plus someone on the team who reads JavaScript. Instead, I described the same exchange as steps the evaluators follow:

  • Open the way a customer would, with something like, I want to track my order
  • Expect the bot to ask for an order number
  • Send the order number 48213
  • Expect a current status and an estimated delivery date in return
  • Watch that the bot stays polite and on brand across the exchange
  • Grade the conversation for completeness, context awareness, and tone

With TestMu AI chatbot testing, that description is the check. The evaluators message the bot the way a real customer would and grade the exchange by meaning rather than by matching a fixed string. When the wording changes but the intent holds, it passes. When the bot forgets the order number or invents a policy, it fails, and the exact turn that went wrong comes attached.

Watching the evaluators message the bot

Running it looked less like a test suite and more like watching a shift of testers work at once. Behind the single check, more than fifteen specialized testing agents ran in parallel, each probing a different failure mode, and each scored the reply against the nine quality metrics. The order-tracking path came back clean.

What made the result usable was the evidence next to every score. Each metric carried a confidence level of High, Medium, or Low, plus an excerpt from the conversation that drove the verdict, so I could open the exact turn behind any number instead of trusting a figure in a vacuum. All of it rolled up into one production-readiness verdict, Green, Yellow, or Red, that a support lead or a product manager can read in a few seconds.

AI evaluators messaging a WhatsApp bot and scoring the conversation across quality metrics
Run tests up to 70% faster on the TestMu AI cloud grid

Widening the run past the happy path

The happy path passing told me the plumbing worked. It told me nothing about the screenshot that started my afternoon. The failures that lose customers hide in the conversations a string match cannot see, so I added four more, each phrased the way I would brief a new support agent rather than the way I would write code.

  • I opened angry about a third late order and watched whether the bot acknowledged the frustration before it reached for a fix, which lands on tone consistency and positive user outcome
  • I tracked one order, then asked to change the delivery address on it, since a bot that asks for the order number again fails context awareness
  • I asked about a 90 day free-return window that does not exist, because the bot should state the real policy instead of inventing terms, and that is what hallucination detection watches for
  • I sent the same order question in Hindi, so the bot had to answer helpfully without switching me to English on its own, and completeness and bias detection flag it when it slips

Writing four scenarios by hand is fine. Writing a hundred is not, which is where the earlier document upload paid off. From that PRD and knowledge base, the platform generated more than sixty scenarios on its own, spread across happy paths, edge cases, adversarial inputs, and persona variants like the Angry User and the Multi-Lingual User. One angry-customer sketch became a systematic sweep, and the second run came back Yellow, with the failing turn pointing straight at a cold reply the demo had never surfaced.

Probing the bot for abuse and leaks

Functional coverage still left one gap. A WhatsApp number that anyone can message also invites the messages no honest customer sends, so before I called the session done I ran a red-team pass over the same bot. The point was to treat the bot as something an attacker would poke at, then read what it gave up.

The red-team run pointed prompt-injection, jailbreak, and PII-leakage probes at the endpoint, driven by the Security Researcher and Data Privacy Guardian among the evaluators. One probe tried to talk the bot into reading back another customer's order details; another buried a hidden instruction inside a normal-looking order query to see whether the bot would follow it. The result came back as a letter grade with a per-category breakdown, and every flagged turn carried the message that triggered it, so a leak was a transcript I could open with the exact words that caused it.

This is the part of WhatsApp chatbot testing that a functional check never reaches. A bot that quotes the real return policy but hands a stranger someone else's phone number is not production-ready, and the red-team grade made that call for me instead of leaving it to a friendly demo.

Turning the session into a release gate

A one-time verdict fades the moment someone edits the prompt or the underlying model ships an upstream update. To keep the afternoon from being a one-off, I moved the same plain-English scenarios into the pipeline. The testmu-a2a-cli installs with pip, authenticates from environment variables, and outputs JUnit XML, so it drops into an existing CI job without a custom plugin. It exits 0 when the run passes and 1 when it fails, which is all a build needs to block a bad merge.

On top of the gate, I scheduled a weekly run so a quiet model change or a stale knowledge-base answer cannot degrade the bot between releases, and pointed failure alerts at Slack with the offending transcript annotated by turn and metric. Because this bot sits behind a corporate firewall, I used the secure tunnel through HyperExecute, which opens an encrypted connection to the endpoint without ever exposing it to the public internet.

By the end of the session the bot had a verdict, a widened scenario set, a nightly heartbeat, and a gate in CI. The same TestMu AI agent testing approach covers voice and phone agents from the same platform, so when this bot grows a phone line, the same plain-English scenarios you would use to test a voice agent follow it there.

Note

Note: Point the evaluators at your own WhatsApp bot and read the first verdict in an afternoon. Start with TestMu AI free.

Author

...

Sushrut Kumar Mishra

Blogs: 4

  • Twitter
  • Linkedin

Sushrut Mishra is a developer and freelance technical writer with 4 years of experience in content creation, developer advocacy, and B2B growth marketing. He has authored 200+ blogs, contributed technical content at TestMu AI, and ghostwritten posts crossing 5M+ impressions. On LinkedIn, he is followed by 5,000+ professionals from QA, automation testing, tech leadership, and AI innovation.

Reviewer

...

Aman Chopra

Reviewer

  • Linkedin

Aman Chopra is a DevOps Engineer and Community Contributor with over 7 years of experience in cloud technologies, software development, and software testing. Currently working at TestMu AI, Aman specializes in optimizing Azure cloud infrastructure, enhancing API accessibility, and integrating cloud platforms like AWS and GCP. With expertise in Git, Docker, Kubernetes, and CI/CD practices, Aman has contributed to various open-source projects and authored guides on cloud computing, containers, and CI/CD. He holds a B.Tech in Computer Science.

Open in ChatGPT Icon

Open in ChatGPT

Open in Claude Icon

Open in Claude

Open in Perplexity Icon

Open in Perplexity

Open in Grok Icon

Open in Grok

Open in Gemini AI Icon

Open in Gemini AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free
...
TestMu Conf 2026

World's largest virtual agentic engineering & quality conference

...

AUG 19-21, 2026

REGISTER NOW

WhatsApp Bot Testing FAQs

Did you find this page helpful?

More Related Blogs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests