Re: [pgAdmin 4 - Housekeeping #5255] Implement Selenium Grid using multi-threading & solenoid using current test framework

From: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
To: Yogesh Mahajan <yogesh(dot)mahajan(at)enterprisedb(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>, Shubham Agarwal <shubham(dot)agarwal(at)enterprisedb(dot)com>, navnath gadakh <navnath(dot)gadakh(at)enterprisedb(dot)com>
Subject: Re: [pgAdmin 4 - Housekeeping #5255] Implement Selenium Grid using multi-threading & solenoid using current test framework
Date: 2020-05-11 06:42:08
Message-ID: CANxoLDdOfLO_kyDRfXBvxp6htOXPyFMB_8ATpZMRA3btOAYz5w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Thanks, patch applied.

On Fri, May 8, 2020 at 3:13 PM Yogesh Mahajan <
yogesh(dot)mahajan(at)enterprisedb(dot)com> wrote:

> Hi Akshay,
>
> Please find the attached rebase patch. Looks like there were some commits
> after my today's git pull.
>
> Thanks,
> Yogesh Mahajan
> QA - Team
> EnterpriseDB Corporation
>
> Phone: +91-9741705709
>
>
> On Fri, May 8, 2020 at 2:35 PM Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
> wrote:
>
>> Hi Yogesh
>>
>> Unable to apply the patch on the latest code. Please rebase and send it
>> again.
>>
>> On Fri, May 8, 2020 at 2:05 PM Yogesh Mahajan <
>> yogesh(dot)mahajan(at)enterprisedb(dot)com> wrote:
>>
>>> Attaching patch
>>>
>>> Thanks,
>>> Yogesh Mahajan
>>> QA - Team
>>> EnterpriseDB Corporation
>>>
>>> Phone: +91-9741705709
>>>
>>>
>>> On Fri, May 8, 2020 at 1:57 PM Akshay Joshi <
>>> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>>>
>>>> Hi Yogesh
>>>>
>>>> You forgot to attach patch :)
>>>>
>>>> On Fri, May 8, 2020 at 1:35 PM Yogesh Mahajan <
>>>> yogesh(dot)mahajan(at)enterprisedb(dot)com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Please find the updates patch with above review comments.
>>>>> Patch adds below functionality to existing framework -
>>>>> 1.Ability to run features in parallel using solenoid(selenium +
>>>>> docker).
>>>>> a.Selenoid setup steps are included in /regression/README
>>>>> b.'python runtests.py --pkg feature_tests --parallel' will
>>>>> trigger parallel feature tests.
>>>>> 2.Removes dependency for pyperclip python module.
>>>>> 3.New script in ../tools/update_selenoid_browsers.py updates browser
>>>>> images at local selneoid server setup.
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Yogesh Mahajan
>>>>> QA - Team
>>>>> EnterpriseDB Corporation
>>>>>
>>>>> Phone: +91-9741705709
>>>>>
>>>>>
>>>>> On Tue, May 5, 2020 at 3:58 PM Akshay Joshi <
>>>>> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>>>>>
>>>>>> Hi Yogesh
>>>>>>
>>>>>> Following are the review comments:
>>>>>>
>>>>>> - *pyjq* package is not required as we used it only in one place.
>>>>>> A result is a normal dictionary that can be easily looped through.
>>>>>> - Remove "*if (SUPPORT_SSH_TUNNEL is True and ...*" logic from
>>>>>> config.py, we have already removed that.
>>>>>> - Remove yarn.lock file.
>>>>>> - Remove *pyperclip *from the regression/requirements.txt as we
>>>>>> are not using it.
>>>>>> - Please mentioned the value of *pgAdmin_default_server *should
>>>>>> not be '*127.0.0.1*' in the README file even though everything
>>>>>> runs on the same machine.
>>>>>> - Please mentioned that if we set the value of the browser
>>>>>> version is *null* then selenoid will take the latest available
>>>>>> browser version.
>>>>>> - Got the below error if selenoid_url is not provided:
>>>>>> - list index out of range
>>>>>> Unable to find Selenoid Status
>>>>>>
>>>>>> *test_config.json.in <http://test_config.json.in>*:
>>>>>>
>>>>>> - "selenoid_info" should be renamed to "selenoid_config". Proper
>>>>>> alignment is required.
>>>>>> - "cross_Browsers" should be renamed to "cross_browsers" or
>>>>>> "run_on_browsers" or "run_tests_on_browsers". Provide entries for supported
>>>>>> browsers with version set to null so that it will run on the latest browser
>>>>>> version.
>>>>>> - "selenoid_url": "Selenoid Url" should be changed
>>>>>> to "selenoid_url": "http://<IP address of Selenoid Installed
>>>>>> machine>:4444/wd/hub".
>>>>>>
>>>>>> If you change the names in test_config.json.in then please update
>>>>>> the same in README as well.
>>>>>>
>>>>>>
>>>>>> On Mon, May 4, 2020 at 4:27 PM Yogesh Mahajan <
>>>>>> yogesh(dot)mahajan(at)enterprisedb(dot)com> wrote:
>>>>>>
>>>>>>> Hi Akshay,
>>>>>>>
>>>>>>> Please find the updated patch.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Yogesh Mahajan
>>>>>>> QA - Team
>>>>>>> EnterpriseDB Corporation
>>>>>>>
>>>>>>> Phone: +91-9741705709
>>>>>>>
>>>>>>>
>>>>>>> On Mon, May 4, 2020 at 2:51 PM Akshay Joshi <
>>>>>>> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>>>>>>>
>>>>>>>> Hi Yogesh
>>>>>>>>
>>>>>>>> The patch is not applied to the master branch. Can you please
>>>>>>>> rebase and send the patch again.
>>>>>>>>
>>>>>>>> On Fri, May 1, 2020 at 12:28 PM Yogesh Mahajan <
>>>>>>>> yogesh(dot)mahajan(at)enterprisedb(dot)com> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Please find updated patch modified according to review comments -
>>>>>>>>> Patch implements below things -
>>>>>>>>> 1.Enable the current framework to provide option to execute
>>>>>>>>> Feature tests in parallel on selenium grid set up.
>>>>>>>>> - Addition of new switch to start parallel features tests.
>>>>>>>>> - New parameters with respect to selenoid in
>>>>>>>>> test_config.json.in
>>>>>>>>> - Addition of new script to check solenoid updates.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Yogesh Mahajan
>>>>>>>>> QA - Team
>>>>>>>>> EnterpriseDB Corporation
>>>>>>>>>
>>>>>>>>> Phone: +91-9741705709
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, Apr 21, 2020 at 1:18 PM Shubham Agarwal <
>>>>>>>>> shubham(dot)agarwal(at)enterprisedb(dot)com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Yogesh,
>>>>>>>>>> Below are the review comments-
>>>>>>>>>>
>>>>>>>>>> 1. runtests.py
>>>>>>>>>> a. The exception traceback logic at line number 653 in
>>>>>>>>>> runtests.py is not correct since it is particular to the thread
>>>>>>>>>> but there is much more code in that block which can throw some
>>>>>>>>>> exception.
>>>>>>>>>> b. line number 447 -> The drop_database function will only try
>>>>>>>>>> to drop the database with the name which is newly created
>>>>>>>>>> at 431 line number, its probability is 1% instead of this you can
>>>>>>>>>> write a logic so that it will drop all the database which starts with name
>>>>>>>>>> ‘acceptance_test_db'.
>>>>>>>>>> c. line 584 - Why we are including resql test case execution
>>>>>>>>>> in GUI execution logic.
>>>>>>>>>> d. Change the function name run_test as script name is also
>>>>>>>>>> runtests.py
>>>>>>>>>>
>>>>>>>>>> 2. test_utils.py
>>>>>>>>>> a. Remove the headless chrome code from
>>>>>>>>>> get_remote_webdriver() in test_utils.py since we are using
>>>>>>>>>> solenoid and it is not required anymore.
>>>>>>>>>> b. Create separate functions to instantiate the firefox
>>>>>>>>>> driver and chrome driver logic since the same code is used in multiple
>>>>>>>>>> files.
>>>>>>>>>> c. launch_url_in_browser() -> you can simplify the definition of
>>>>>>>>>> the function like:
>>>>>>>>>> retry = 60
>>>>>>>>>>  *while *retry > 0:
>>>>>>>>>> try:
>>>>>>>>>> driver.get(url)
>>>>>>>>>> except WebDriverException:
>>>>>>>>>> retry -= 1
>>>>>>>>>> 3. Execution logs are not printing as per the logic some time, I
>>>>>>>>>> ran the suite for two servers and attached are the execution logs.
>>>>>>>>>> 4. Readme -
>>>>>>>>>> Please provide the Valid selenoid URL to be provided in the
>>>>>>>>>> test_config.json, with all the steps mentioned in the readme it is not
>>>>>>>>>> clear.
>>>>>>>>>> Revisit the readme and write the missing steps.
>>>>>>>>>> 5. copy_selected_query_results_feature_tests.py-
>>>>>>>>>> Create the function to avoid duplicate code. The code for pasting
>>>>>>>>>> the values is repeating 8 times in the test code.
>>>>>>>>>> 6. Provide the valid docstring in newly introduced functions and
>>>>>>>>>> also valid comments while calling it. for ex.- _update_preference()
>>>>>>>>>> function is
>>>>>>>>>> introduced in pg_utilities_backup_restrore_test.py but from the
>>>>>>>>>> function name, it is not clear what preferences are going to update in it.
>>>>>>>>>> 7. test_index_constraint_add test case is failing due to the
>>>>>>>>>> latest change, please merge and update this test case
>>>>>>>>>>
>>>>>>>>>> On Thu, Apr 16, 2020 at 2:41 PM navnath gadakh <
>>>>>>>>>> navnath(dot)gadakh(at)enterprisedb(dot)com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>> I think I am not the right person to review this patch now as I
>>>>>>>>>>> already reviewed this code offline in the last week. I know the approached
>>>>>>>>>>> Yogesh has followed, also given some review comments on it.
>>>>>>>>>>> Someone else please review it.
>>>>>>>>>>>
>>>>>>>>>>> Thanks!
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Apr 13, 2020 at 2:49 PM Akshay Joshi <
>>>>>>>>>>> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Navnath
>>>>>>>>>>>>
>>>>>>>>>>>> Can you please review it?
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Apr 13, 2020 at 2:40 PM Yogesh Mahajan <
>>>>>>>>>>>> yogesh(dot)mahajan(at)enterprisedb(dot)com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Please find the attached patch for running *features tests*
>>>>>>>>>>>>> using solenoid(selenium grid + docker).
>>>>>>>>>>>>> KIndly review.
>>>>>>>>>>>>> To sun feature tests in parallel, required prerequisites can
>>>>>>>>>>>>> be checked in '~/web/regression/README' file.
>>>>>>>>>>>>> Also detailed instructions are added in the same file.
>>>>>>>>>>>>> After applying the patch, any existing process for execution
>>>>>>>>>>>>> of API/Features tests remains the same.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> Yogesh Mahajan
>>>>>>>>>>>>> QA - Team
>>>>>>>>>>>>> EnterpriseDB Corporation
>>>>>>>>>>>>>
>>>>>>>>>>>>> Phone: +91-9741705709
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> *Thanks & Regards*
>>>>>>>>>>>> *Akshay Joshi*
>>>>>>>>>>>>
>>>>>>>>>>>> *Sr. Software Architect*
>>>>>>>>>>>> *EnterpriseDB Software India Private Limited*
>>>>>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Regards,
>>>>>>>>>>> Navnath Gadakh
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Thanks & Regards,
>>>>>>>>>> Shubham Agarwal
>>>>>>>>>> EnterpriseDB Corporation
>>>>>>>>>>
>>>>>>>>>> The Postgres Database Company
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Thanks & Regards*
>>>>>>>> *Akshay Joshi*
>>>>>>>>
>>>>>>>> *Sr. Software Architect*
>>>>>>>> *EnterpriseDB Software India Private Limited*
>>>>>>>> *Mobile: +91 976-788-8246*
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Thanks & Regards*
>>>>>> *Akshay Joshi*
>>>>>>
>>>>>> *Sr. Software Architect*
>>>>>> *EnterpriseDB Software India Private Limited*
>>>>>> *Mobile: +91 976-788-8246*
>>>>>>
>>>>>
>>>>
>>>> --
>>>> *Thanks & Regards*
>>>> *Akshay Joshi*
>>>>
>>>> *Sr. Software Architect*
>>>> *EnterpriseDB Software India Private Limited*
>>>> *Mobile: +91 976-788-8246*
>>>>
>>>
>>
>> --
>> *Thanks & Regards*
>> *Akshay Joshi*
>>
>> *Sr. Software Architect*
>> *EnterpriseDB Software India Private Limited*
>> *Mobile: +91 976-788-8246*
>>
>

--
*Thanks & Regards*
*Akshay Joshi*

*Sr. Software Architect*
*EnterpriseDB Software India Private Limited*
*Mobile: +91 976-788-8246*

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2020-05-11 08:05:18 pgAdmin 4 commit: Clarify and correct the docs on enabling the pl/debug
Previous Message Akshay Joshi 2020-05-11 06:41:48 pgAdmin 4 commit: Implement Selenium Grid to run multiple tests across