Page MenuHomePhabricator
Paste P13122

[Outreachy 2020-2021 Proposal] Evaluate Microsoft Playwright as replacement for our browser automation
ArchivedPublic

Authored by BlessingDickson on Oct 31 2020, 12:18 PM.
Profile Information
Name: Blessing Samuel Dickson
Github: https//github.com/BlessingDickson
Timezone: UTC +1
Location: Nigeria
Working Hours: NIL
Synopsis
Apparently, Wikimedia supports a large number of repositories as well as extensions. In order to ensure good code practices across all these repos, we perform an extensive amount of testing.
Also, we use WebdriverIO as our browser automation framework for implementing end to end tests across multiple repos.
However, with the recent increase in awareness about end to end testing, a number of equally competitive non-selenium solutions have been introduced. Two such include Puppeteer and Cypress. As a part of this year’s Google Summer of Code program, an extensive evaluation of Puppeteer was performed. Unfortunately owing to Cypress not being able to run properly on CI. We had to drop evaluating Cypress.
One of the contenders being considered at the time was Microsoft Playwright. Seeing the recent developments in the framework and the rapid surge in popularity. We would like to evaluate it against WebdriverIO as a potential replacement for our browser automation framework.
This proposal is about examining Microsoft Playwright so as to draw conclusions in accordance with its usage instead of WebdriverIO through the following actions:
• Implementing existing tests across moderately sized repo's in Microsoft Playwright
• Introducing video recording and screenshots of tests
• Benchmarking Playwright against Puppeteer (using previous implementation) and WebdriverIO
• Re-running a short evaluation on Cypress (depending upon whether the issues with Cypress are resolved)
Possible Implementation Methods
The approach to be taken to reach this goal is via running several tests to be sure of the fact that Microsoft Playwright can replace WebdriverIO in all Wikimedia projects with a friendly UI.
Why Is This Necessary?
This will ensure that no Wikimedia project is left out when using Microsoft Playwright so that the users will see the need of using Microsoft Playwright instead of WebdriverIO as our browser automation.
How Will the Proposed Features Benefit Wikimedia Projects?
This will enhance Wikimedia thereby giving users maximum satisfaction when using the platform due to the fact that it will have improved UI and additional features.
Do You See Any Risks/Concerns Involved in Implementing the Planned Features?
The only concern is for Wikimedia to ensure that new updates are constantly sort for and added to tool to keep users engaged. Also, all operations should be made easier across all Operating Sytems (OS) – it was sighted as one of the project requirements in the Outreachy platform Mac/Linux is preferable.
Mentor(s)
@Zeljkofilipin , @Soham , @Vidhi-Mody
Have you contacted your mentors already? Yes
Deliverables
Internships period: Dec. 1, 2020 - March 2, 2021
Period Task
Dec. 1, 2020 - Dec. 7, 2020 Community bonding – Get to know more about the community and its members
Utilizing Microsoft Playwright’s features, selecting a repository to implement the tests.
Carry out a survey to ensure that I have adequate information on the project at hand. Set up strategy for the execution of the project via creating to do lists and sharing with the mentors for feedback. Check my blog and ensure that everything is set for posting.
Dec. 8, 2020 - Jan. 20, 2021 Implement existing tests across moderately sized repo's in Microsoft Playwright
Jan. 21, 2021 - Feb. 5, 2021 Introduce video recording and screenshots of tests
Feb. 6, 2021 - Feb. 15, 2021 Benchmark Playwright against Puppeteer (using previous implementation) and WebdriverIO.
Feb. 16, 2021 - March 2, 2021 Re-run a short evaluation on Cypress (Depending upon whether the issues with Cypress are resolved)
Other Deliverables
• Blog post on my progress every week
• Regular communication with my mentor(s) and other community members
Participation
Describe how you plan to communicate progress and ask for help, where you plan to publish your source code, etc
• I will select the repository to work on.
• I will be online in my working hours to collaborate with mentors and community members using Zulip messenger and another channels
• I will use Phabricator for managing bugs and subtasks.
• I will be available on Gmail/Zulip to be contacted when needed in the non-working hour
About me
Main Skills
• JavaScript
• Node.js
• Testing frameworks
• HTML/CSS
Open-source Contributions
This my first time contributing to Open Source Software.