**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 is my first time contributing to Open Source Software.