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

From: Yogesh Mahajan <yogesh(dot)mahajan(at)enterprisedb(dot)com>
To: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Cc: 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-08 08:05:23
Message-ID: CAMa=N=OVDhWqeB=R4M7Qw_52uiVvSYX1QUgrNC-FehrOyaKPvA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

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*
>

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Akshay Joshi 2020-05-08 08:27:44 Re: [pgAdmin 4 - Housekeeping #5255] Implement Selenium Grid using multi-threading & solenoid using current test framework
Previous Message Akshay Joshi 2020-05-08 07:26:00 Re: [pgAdmin4][Patch] - Remove Python2 modules