<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Muntasir Abdullah Mizan</title>
    <description>The latest articles on DEV Community by Muntasir Abdullah Mizan (@muntasir101).</description>
    <link>https://dev.to/muntasir101</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F601793%2F86d34c5b-98eb-4c14-a1ed-d93567e10d8c.png</url>
      <title>DEV Community: Muntasir Abdullah Mizan</title>
      <link>https://dev.to/muntasir101</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muntasir101"/>
    <language>en</language>
    <item>
      <title>Selenium vs WebDriverIO vs Cypress</title>
      <dc:creator>Muntasir Abdullah Mizan</dc:creator>
      <pubDate>Mon, 22 Mar 2021 16:24:49 +0000</pubDate>
      <link>https://dev.to/muntasir101/selenium-vs-webdriverio-vs-cypress-3p0f</link>
      <guid>https://dev.to/muntasir101/selenium-vs-webdriverio-vs-cypress-3p0f</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                        Selenium
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Pros of using Selenium:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open-source software so it’s Free.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integrated with Agile, DevOps, Continuous Delivery workflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports mobile testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wide range of supported languages, platforms, and browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Huge community.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Large library of plugins and extensions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduce overall test execution time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automating Web UI components.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ease of Implementation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Well integrated with other DevOps tools such as Jenkin and Gitlab to automate the CICD pipeline.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Record and play features.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cons of using Selenium:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Steep learning curve.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Only used for web-based apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No built-in image comparison.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No tech supports.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No reporting capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Advanced programming skills are required.&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  WebdriverIO
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pros of WebdriverIO:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Works with any testing framework or assertion library&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Excellent API documentation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Config file generation wizard&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provides plugins for a gulp&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Simpler syntax than selenium-webdriverjs and WD.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium Server need not be started independently&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cons of WebdriverIO:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Must run with WDIO to debug&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Selenium server must be started independently&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Have no docs for the latest version (4.0.5)&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    Cypress
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pros of Cypress:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Cypress does not use Selenium: most of the end-to-end tools that we have experimented with, are using Selenium, that’s why they have almost the same problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cypress supports any framework or website quite well: There are hundreds of projects using the latest React, Angular, Vue, Elm, etc. frameworks. Cypress also works equally well on older server-rendered pages or applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cypress tests are only written in JavaScript: While you can compile down to JavaScript from any other language, ultimately the test code is executed inside the browser itself. There are no languages or driver bindings - there is and will only ever be just JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There are no dependencies, you put your test in package.json and that’s it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cypress runs much, much faster in comparison with the end-to-end tools by Selenium that we have experimented with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is a screenshot for every step, of your script, which can be quite helpful if there is any false passing or failing test, yeah good for debugging!!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cypress has a clear syntax, it is easy to read it, you will like it!!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Cons of Cypress:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The structure was different from the other Selenium end-to-end tools, so at first, you may need to spend more time understanding the structure and finding the best way to create your scripts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Community: As Cypress is relatively new, the community is small. You will have trouble finding answers to problems etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Features. No file upload support. No cross-browser testing. Who knows when these things will be covered, as for big projects these features are crucial.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Page Object Model. It is something that has already been proven over time. Cypress supports a different approach which could be controversial.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It's only available for only one client (language) i.e., for JavaScript-only. So, to work with it you must know JavaScript: however, this might be an advantage for JavaScript application, but I would like to put it as a disadvantage for those who have difficulties with JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>testing</category>
    </item>
  </channel>
</rss>
