Function used to run tests in parallel :param url_client: :param servers_details: :param parallel_tests_lists: :param name_of_browser: :param version_of_browser: :param max_thread_count:
(url_client, servers_details, parallel_tests_lists,
name_of_browser, version_of_browser, max_thread_count)
| 595 | |
| 596 | |
| 597 | def run_parallel_tests(url_client, servers_details, parallel_tests_lists, |
| 598 | name_of_browser, version_of_browser, max_thread_count): |
| 599 | """ |
| 600 | Function used to run tests in parallel |
| 601 | :param url_client: |
| 602 | :param servers_details: |
| 603 | :param parallel_tests_lists: |
| 604 | :param name_of_browser: |
| 605 | :param version_of_browser: |
| 606 | :param max_thread_count: |
| 607 | """ |
| 608 | driver_object = None |
| 609 | try: |
| 610 | # Thread list |
| 611 | threads_list = [] |
| 612 | # Create thread for each server |
| 613 | for ser in servers_details: |
| 614 | while True: |
| 615 | # If active thread count <= max_thread_count, add new thread |
| 616 | if threading.active_count() <= max_thread_count: |
| 617 | # Get remote web-driver instance at server level |
| 618 | driver_object = \ |
| 619 | test_utils.get_remote_webdriver(hub_url, |
| 620 | name_of_browser, |
| 621 | version_of_browser, |
| 622 | ser['name'], |
| 623 | url_client) |
| 624 | # Launch client url in browser |
| 625 | test_utils.launch_url_in_browser( |
| 626 | driver_object, url_client, timeout=60) |
| 627 | |
| 628 | # Add name for thread |
| 629 | thread_name = "parallel_tests" + ser['name'] |
| 630 | |
| 631 | # Start thread |
| 632 | t = threading.Thread(target=execute_test, name=thread_name, |
| 633 | args=(parallel_tests_lists, ser, |
| 634 | driver_object, True)) |
| 635 | threads_list.append(t) |
| 636 | t.start() |
| 637 | time.sleep(10) |
| 638 | break |
| 639 | # else sleep for 10 seconds |
| 640 | else: |
| 641 | time.sleep(10) |
| 642 | |
| 643 | # Start threads in parallel |
| 644 | for t in threads_list: |
| 645 | t.join() |
| 646 | |
| 647 | except Exception as exc: |
| 648 | # Print exception stack trace |
| 649 | traceback.print_exc(file=sys.stderr) |
| 650 | print('Exception before starting tests for ' + ser['name'], |
| 651 | file=sys.stderr) |
| 652 | print(str(exc), file=sys.stderr) |
| 653 | |
| 654 | # Mark failure as true |
no test coverage detected