Confusion of Using Selenium for Performance Testing


Time to time, I see some questions about integration test automation script to performance testing tool on Stackoverflow. There is a confusion about performance testing and test automation for whom newly started performance testing after doing some test automation. It is demanded that they have some automation code and want to use these scripts for performance testing to simulate user behaviour. Theoretically it seems a very good idea that tons of users are performing some cases and you are capturing the response time and finding bottle neck in terms of client side. However this is not applicable in practice because there are lots of obstacle to handle. The followings outline the obstacles and misunderstandings you will face, for the idea.

I can open some browsers and simulate real user behaviour

Automation scripts run over a browser, for web project. Most of the application are becoming as web app. For GUI based application what the hack test automation will have a role on performance testing. Crazy thing I have ever heard. If you want to test the client side performance problem, it is another case. For web application you need to test the services first, and if every thing is performing well enough then you can check the GUI related problems as in testing the mobile application too. Therefore you have to create  an instance of browser for each users so you have a limit for number of browsers, let's say it is no more than a 2K. See that each Chromedriver consumes %0,2 memory of total physical RAM on idle, which means I can open, but not to send some commands, only 500 Chromedrivers.





No Need Browsers for Headless Testing

Headless testing doesn't open a browser so it is cheap for testing. Idea behind the headless browser is reducing the time for loading of user interface related things like photos, tables, JavaScript etc. and making light weighted version of a browser. With this way you can make your automation test faster but you have stick what it requires. Even it is somehow faster than a real browser, and it also cheaper in terms of  consuming ram and processor, there is a limit for the number of headless browsers.

Problem of Handling Browsers 

Every browser needs to have a valid driver to drive the automation code throughout the connection protocol. This is needed to send commands to browser to interact with the web objects. To run many cases parallel, you need to have a configuration for 
  1. Dom should be ready to be able to handle the commands
  2. Handling waiting time is another problem since the time is the major concern for performance testing
  3. Physical needs for sending, rendering and handling commands
  4. The performance indicators, how to see that problematic parts of the test
  5. Managing test environments 

Why This is Becoming a Request

The idea Selenium can be used for performance testing is inspired by a feature that Jmeter has a Webdriver plug-in to run Selenium script in terms of testing client side performance. With this plug-in, you run some Selenium scripts to get time consuming for completing the Selenium script. Another meaning of this, it calculates the overall time that a client most probably face for the case under predefined amount of loads. This does not mean that you are running the Selenium to create loads. As the following is a part of the guideline of the plug-in:

for the Web Driver use case, the reader should be prudent in the number of threadsthey will create as each thread will have a single browser instance associated with it. Each browser consumes a significant amount of resources, and a limit should be placed on how many browsers the reader should create.

What is more Practical for The Client Side Performance Testing

When you have a ready performance testing script and have some scripts for automated test cases then you are good to test the client side performance. Instead of injecting Selenium script to your performance testing tools you can run the performance scripts to load the server as demanded load then run the automation script and calculate the time taken for completion of test cases. 

Comments

  1. Thanks for sharing this information, it helped me a lot in finding valuable resources for my career
    SEO Training in Chennai

    ReplyDelete
  2. Thanks for the informative article. This is one of the best resources I have found in quite some time. Nicely written and great info. I really cannot thank you enough for sharing.
    Regards,
    Camellia
    SAP Training in Chennai

    ReplyDelete
  3. Superb i got some valuable tips from here. Really its a amazing article i had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this excellent article.

    SAP MM Training in Chennai

    ReplyDelete
  4. Great explanation to given on this post and i read our full content was really amazing,then the this more important in my part of life.
    The given information very impressed for me really so nice content.
    php training in chennai

    ReplyDelete

Post a Comment

Popular posts from this blog

Selenium Error "Element is not currently interactable and may not be manipulated"

Change Default Timeout and Wait Time of Capybara

Performance Testing on CI: Locust is running on Jenkins

Selenium Chromedriver Error Message: u'unknown error: unable to discover open pages

Getting the text of elements in Espresso