Load testing with MS Teams

Harshit Aranya 20 Reputation points
2025-07-22T11:19:06.3766667+00:00

Hello,

We have a Bot which is integrated with MS Teams. Now we want to perform load test by sending 500 message in 1 minutes to MS teams.
In this testing, random users will send messages to MS teams (500/min.) then MS team will pars my request to my Bot by using PROXY and when my bot will response back to teams it will display the message.
So can we perform this testing without any impact OR MS team will block our tenant ID.

Microsoft Teams | Microsoft Teams for business | Chats | Search messages and conversations
0 comments No comments
{count} votes

Answer accepted by question author
  1. Rin-L 10,005 Reputation points Microsoft External Staff Moderator
    2025-07-22T11:42:33.92+00:00

    Hi Harshit Aranya

    Thank you for posting your question in the Microsoft Q&A forum. 

    You can safely load-test your bot at 500 messages per minute without risking a tenant-wide block, provided you respect Microsoft Teams’ published rate limits and implement proper retry logic. 

    First, note the two key limits documented by Microsoft: 

    • Global per-app-per-tenant limit: 50 Requests Per Second (RPS). Any calls beyond this result in HTTP 429 errors and must back off and retry. 
    • Per-bot-per-thread limit: by default a bot may only send up to 7 messages in 1 second, 8 in 2 seconds and 60 in 30 seconds to the same conversation before being throttled. 
    • At 500 messages per minute, your average send rate is ~8.3 RPS, which is well under the 50 RPS global cap. To avoid hitting per-thread limits, distribute your messages across multiple chats or channels rather than blasting one conversation. 

    Note that even within limits, you may still receive a “429 Too Many Requests” response. Implement an exponential back-off strategy whenever you encounter a 429: 

    Refer to “Handle rate limits” in the Teams Bot documentation for more details: Rate limiting for bots - Teams | Microsoft Learn  

    To perform a resilient load test: 

    • Distribute your messages across multiple chats or channels so that no single conversation exceeds 7 messages per second or 60 messages per 30 seconds.  
    • Use a dedicated load‐testing tool (for example, JMeter or Azure Load Testing) to send requests directly to your Bot Framework endpoint rather than driving the UI. 
    • Monitor the Retry-After header in any 429 responses to adjust your back-off delays dynamically. 

    By respecting these rate limits and implementing the retry logic above, you can safely load-test at 500 messages per minute without impacting service availability or risking your tenant being blocked. 

    I hope the above answer satisfies your query. 


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment". 

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    User's image

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.