Start Testing Your Chatbots

Chatbot Performance Testing
Nowadays transactional chatbots and AI system for web application are used for easy usage and quick solutions. But what if in this trend, chatbots fail to meet user expectations. To exemplify, in a food application, a customer’s billing gets stuck in between and he leads to Bot for assistance. In this scenario, if the bot does not get a response in fraction of seconds, it might trigger his/her rage. There comes the need of performance testing. It is not just to measure whether chatbot can sustain its output among a large number of concurrent users, but it’s also important to measure response time for an individual user. Chatbot is primarily used to smoothen user experience. Hence, to ameliorate its user experience becomes vital for any organization.

So how is it done? This for portals and website can be made based on API’s and by verifying it by UI automation and logging every data. In chatbot, performance testing is as complex as its architecture. It is neither completely API dependent nor UI dependent. And to further perform load testing for chatbot we need to combine both approaches.
So how can we implement both approaches and perform performance testing for chatbot?
Chatbot Performance Testing
Basically, we open network socket to directly connect chat client that will then connect to node-server which will control APIs, NLP-engine and other backend utilities. Further, using data driven automation we can add a simple data-provider that contains user request (queries) which user may enter in a transactional chatbot. Now using the same framework, we can get connection time and response time using connection socket and measure same over chat-client. It sounds easy, but what if in chatbot response is not a simple message, but a component like radio-button, dropdown, textbox, etc.

For instance, we have an advance chatbot that integrates with IBM FEB components, here it adds another layer of FEB that provides the component to chatbot. In order to measure performance of such kind, there lies a need to check whether Chatbot responses with component on time. To handle it, we can add another connection to FEB. Now its ready to measure performance for 1 user. The wait does not end there, what if we have to measure performance for multiple user? Will loop work here? Nope, as it will have to keep so many connections in one system and it might get hard to manage it. Performance testing tool has this feature by which we can perform distributed testing, along with the framework further getting an accurate performance output for n number of users.