Profile Information
--------------------------------------------------------------------------------------------------------------------
Name: Akanksha Bhattachan
Timezone : UTC+5:45
Resume:
Github: https://github.com/akankshabh
Location: Kathmandu, Nepal
Working Hours: 08 am - 11 am UTC+05:45 , 4 pm - 10 pm UTC+05:45
Background
--------------------------------------------------------------------------------------------------------------------
Purpose
--------------------------------------------------------------------------------------------------------------------
Wikimedia is a global movement whose mission is to bring free educational content to the world, via Wikipedia and other projects.
Currently Wikimedia supports a lot of repositories as well as extensions. So, to make sure good code practices are implemented in all these repos, the Wikimedia team performs an extensive amount of testing. In the current situation, WebdriverIO is being used as a browser automation framework for implementing end to end tests across multiple repos.
However, the Wikimedia team would like to evaluate Microsoft Playwright against WebdriverIO as a potential replacement for our browser automation framework. Previously, Puppeteer & Cypress was evaluated against WebdriverIO but Cypress was not being able to run properly on CI. The tasks for this proposal are as follows:
- Implement existing tests across moderately sized repo's in Microsoft Playwright
- Introduce video recording and screenshots of tests
- Benchmark Playwright against Puppeteer (using previous implementation) and WebdriverIO.
- Re-run a short evaluation on Cypress (Depending upon whether the issues with Cypress are resolved)
Microsoft Playwright and Implementation Methods
--------------------------------------------------------------------------------------------------------------------
Playwright is a new, open-source, JavaScript-based, cross-browser automation library for end-to-end testing. It is focused on enabling a cross-browser web automation platform which is ever-green,capable,reliable and fast.
The goal of Playwright is to provide a single API to developers and testers to automate their web applications to improve automated UI testing by eliminating flakiness, improving the speed of execution and offering insights into the browser operation across today’s three major browser engines :
- Chromium
- Firefox
- WebKit
How Will The Proposed Features Benefit Wikimedia Projects?@todo
--------------------------------------------------------------------------------------------------------------------
Do You See Any Risks/Concerns Involved In implementing The Planned Features?
--------------------------------------------------------------------------------------------------------------------
It is mentioned to implement existing tests across moderately sized repo's in Microsoft Playwright, however, the no of repos are not described so, if there are many / complex repos then it can be challenging. @todo
Mentors
--------------------------------------------------------------------------------------------------------------------
@todo
Deliverables
--------------------------------------------------------------------------------------------------------------------
Planning for the intern tasks timeline :
1. Community bonding period. 1 Dec 2020 - 1 Dec 2020
Implement existing tests across moderately sized repo's in Microsoft Playwright
- Install dependencies , Setup environment and explore core details, API References, best practices tutorials 2 Dec 2020 - 3 Dec 2020
- Create a sample test 4 Dec 2020 - 6 Dec 2020
- Communicate with mentors and select repo for implementation, explore the repo for implementation 7 Dec 2020 - 8 Dec 2020
- Start working on implement existing tests across moderately sized repo's in Microsoft Playwright 9 Dec 2020 - 23 Dec 2020
- Feedback from Mentors, work to implement as suggested 24 Dec 2020 - 30 Dec 2020
- Write report on (Implement existing tests across moderately sized repo's in Microsoft Playwright) 31 Dec 2020 - 31 Dec 2020
Introduce video recording and screenshots of tests
- Install dependencies modules 1 Jan 2020 - 2 Jan 2020
- Explore APIs page.video, page.screenshot and dependencies node- modules for recording and screen shots 3 Jan 2020 - 5 Jan 2020
- Start working on taking video recording and screenshots of test 6 Jan 2020 - 22 Jan 2020
- Feedback from Mentors, work to implement as suggested 23 Jan 2020 - 30 Jan 2020
- Write report on (Introduce video recording and screenshots of tests) 31 Jan 2020 - 31 Jan 2020
Benchmark Playwright against Puppeteer (using previous implementation) and WebdriverIO.
- Install the previous implementation Puppeteer and webdriverIO and setup environment 1 Feb 2020-2 Feb 2020
- Explore previous implementation Puppeteer and webdriverIO 3 Feb 2020 - 7 Feb 2020
- Start working conducting test with Playwright , Puppeteer and WebdriverIO and documentation 8 Feb 2020 - 18 Feb 2020
- Feedback from Mentors, work to implement as suggested 19 Feb 2020 - 27 Feb 2020
- Write report on (Benchmark Playwright against Puppeteer (using previous implementation) and WebdriverIO ) 28 Feb 2020 - 28 Feb 2020
Re-run a short evaluation on Cypress (Depending upon whether the issues with Cypress are resolved)
- Setup the Cypress environment 26 Feb 2020 - 28 Feb 2020
- Explore Cypress 1 Mar 2020 - 3 Mar 2020
- Work on re-running a short evaluation on Cypress 4 Mar 2020 - 10 Mar 2020
- Feedback from Mentors, wrap up the all the tasks 11 Mar 2020 - 25 Mar 2020
- Write report on (Re-run a short evaluation on Cypress (Depending upon whether the issues with Cypress are resolved) ) 26 Mar 2020 - 26 Mar 2020
--------------------------------------------------------------------------------------------------------------
Contribution made for the project
--------------------------------------------------------------------------------------------------------------------
- https://phabricator.wikimedia.org/P13077
- (Contribution #1: started Oct. 27, 2020, merged Oct. 27, 2020 Update accepted date by editing this contribution.)
- It is the contribution to the task related to T248221: Update Selenium documentation to work with WebdriverIO v6.
- https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ORES/+/634994/
- (Contribution #2: started Oct. 20, 2020, merged Oct. 29, 2020 Update accepted date by editing this contribution.)
- It is the change for task (https://phabricator.wikimedia.org/T256950) listed in the microtask no. 7 (https://phabricator.wikimedia.org/T265011).
- The task was to "Delete sample or skipped Selenium tests" from given extension repo. In this tasks three of the applicants worked together to complete the tasks.
- https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ElectronPdfService/+/634394
- (Contribution #3: started Oct. 16, 2020, merged Oct. 16, 2020 Update accepted date by editing this contribution.)
- It is the change for task (https://phabricator.wikimedia.org/T265463) listed in the microtask no. 6 (https://phabricator.wikimedia.org/T265011).
- The task was to add "/tests/selenium/log" in .gitignore file if it is not present in the extension repo.
- https://gerrit.wikimedia.org/r/c/mediawiki/extensions/TwoColConflict/+/634393/
- (Contribution #4: started Oct. 16, 2020, merged Oct. 16, 2020 Update accepted date by editing this contribution.)
- It is the change for task (https://phabricator.wikimedia.org/T265463) listed in the microtask no. 6 (https://phabricator.wikimedia.org/T265011).
- The task was to add "/tests/selenium/log" in .gitignore file if it is not present in the extension repo.
- https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Newsletter/+/634242
- (Contribution #5: started Oct. 15, 2020, merged Oct. 16, 2020 Update accepted date by editing this contribution.)
- It is the change for task (https://phabricator.wikimedia.org/T265463) listed in the microtask no. 6 (https://phabricator.wikimedia.org/T265011).
- The task was to add "/tests/selenium/log" in .gitignore file if it is not present in the extension repo.
- https://gerrit.wikimedia.org/r/c/mediawiki/core/+/633348
- (Contribution #6: started Oct. 11, 2020, merged Oct. 16, 2020 Update accepted date by editing this contribution.)
- It is the first contribution url of microtasks "https://phabricator.wikimedia.org/T265011".
- The contribution consists of task making trivial change on README.md, amending the change and add selenium test log patch which is listed in points from 1 to 5.
About Me
--------------------------------------------------------------------------------------------------------------------
@todo
What does making this project happen mean to you?
--------------------------------------------------------------------------------------------------------------------
@todo
Past Experience
--------------------------------------------------------------------------------------------------------------------
@todo
Skills
--------------------------------------------------------------------------------------------------------------------
- Languages: PHP, Python, JavaScript, Solidity
- Frameworks: Bootstrap
- Web Technologies: HTML, CSS
- Version Control Systems: Git, Gitlab
- Databases: MySQL, MongoDB
- Libraries and tools: Angularjs, Selenium, Kubernetes, ReactJS (learning)
- Cloud Platforms: Google Cloud