Page MenuHomePhabricator

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

Description

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

PeriodTask
Dec. 1, 2020 - Dec. 7, 2020Community 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, 2021Implement existing tests across moderately sized repo's in Microsoft Playwright
Jan. 21, 2021 - Feb. 5, 2021Introduce video recording and screenshots of tests
Feb. 6, 2021 - Feb. 15, 2021Benchmark Playwright against Puppeteer (using previous implementation) and WebdriverIO.
Feb. 16, 2021 - March 2, 2021Re-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 is my first time contributing to Open Source Software.

Event Timeline

Gopavasanth subscribed.

@BlessingDickson We are sorry to say that we could not allocate a slot for you this time. Please do not consider the rejection to be an assessment of your proposal. We received over 28 quality applications, and we could only accept 7 interns. We were not able to give all applicants a slot that would have deserved one, and these were some very tough decisions to make. Please know that you are still a valued member of our community and we by no means want to exclude you. Many interns who we did not accept in 2019 have become Wikimedia maintainers, contractors and even Outreachy interns and mentors this year!

Your ideas and contributions to our projects are still welcome! As a next step, you could consider finishing up any pending pull requests or inform us that someone has to take them over. Here is the recommended place for you to get started as a newcomer: https://www.mediawiki.org/wiki/New_Developers.

If you would still be eligible for Outreachy next year, we look forward to your participation!

If you're looking for a task take a look at T210726: Selenium framework maintenance. Let us know if you need help.