Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limiting number of parallel threads based on number of cores #3928

Closed
gravityvi opened this issue Oct 11, 2023 · 5 comments · Fixed by #3930
Closed

Limiting number of parallel threads based on number of cores #3928

gravityvi opened this issue Oct 11, 2023 · 5 comments · Fixed by #3930
Labels

Comments

@gravityvi
Copy link
Member

Our test automation framework has around 450 test suites and 5000+ test cases automated which we execute on Selenium Grid daily basis using parallel execution.
For executing the scripts in parallel we pass workers = 95 and the total execution time it takes is around 2.5 hours

The current NightwatchJs version used by the framework is 2.6.19 and we were planning to upgrade it to 3.1

During the upgrade we are not able to execute those many test suites in parallel as it restricts to parallel execution only upto the no. of CPU cores irrespective of what no. of workers we are passing for parallel test execution

We just tried executing only smoke test suites consisting of 140 test suites out of the total automated test suites, which used to earlier take 35 mins for complete execution and now it is taking 2 hours

This is impacting the performance for our test execution and we are not able to achieve complete test automation execution in around 2.5 hours as earlier. The smoke test execution itself only is taking 2 hours now

We really need a solution for this as our framework has that huge number of test cases to be executed on daily basis.

Can you please share your inputs/suggestions on same.

Thanks

Originally posted by @aakanksha88 in #3921 (reply in thread)

@gravityvi
Copy link
Member Author

As the description of the issue suggests that limiting the number of parallel threads might not be a good idea performance-wise. This problem is also discussed in detail in piscina issue over here: piscinajs/piscina#334 (comment)

@gravityvi gravityvi changed the title Limiting number of parallel threads based number of cores is not a good approximation. Limiting number of parallel threads based on number of cores Oct 11, 2023
@aakanksha88
Copy link

Hi @gravityvi Thank you for getting it fixed. I could see the changes are merged, so will it be now available in the nightwatchjs version 3.2.1 ?

@vaibhavsingh97
Copy link
Member

@aakanksha88, since we haven't released a new version. But you can try the change it with the following command:

npm install "https://github.com/nightwatchjs/nightwatch.git#main" --save

@aakanksha88
Copy link

Sure @vaibhavsingh97 we will try with the command suggested by you. Thank you .
Can you or @gravityvi please confirm in which version of nightwatchjs will this be available and by when, so that we can plan the version upgrade of our framework accordingly.

@aakanksha88
Copy link

aakanksha88 commented Oct 30, 2023

Hi @gravityvi @vaibhavsingh97 we tested the fix and are now able to see that the the number of test suites executed in parallel are equal to the number of test workers we are passing. Thank you for fixing this,

But we are seeing some issue in using the test setting 'parallel_process_delay'. The setting is not working while parallel execution, all the test suite execution starts at once without any delay irrespective of how many milli seconds we pass as a value for this test setting in nightwatch.json. We tried with 10000 and 20000 ms but none helped.

Could you please also provide some inputs on how we can achieve parallel process delay, it will be of great help. We need to access our application which has some restrictions on how many requests we can send once due to which we need to introduce some delay between the requests.

Have reported issue for same - [https://github.com//issues/3947]
Thanks in advance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
3 participants