diff --git a/qa-cypress/CONTRIBUTING.md b/qa-cypress/CONTRIBUTING.md new file mode 100644 index 0000000..c28f3bb --- /dev/null +++ b/qa-cypress/CONTRIBUTING.md @@ -0,0 +1,18 @@ +# Contributing + +Your contributions are always welcome! + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +## Guidelines + +* [Fork repository](https://github.com/atinfo/awesome-test-automation/fork) +* Add \ edit section if needed. + * Add \ edit section description. + * Add \ edit section title to Table of contents. +* Search previous suggestions before making a new one, as yours may be a duplicate. +* Add your links: `* [project-name](http://example.com/) - A short description ends with a dot.` +* Check your spelling and grammar. +* Make sure your text editor is set to remove trailing whitespace. +* Send a [Pull Request](https://help.github.com/categories/63/articles). +* High Five! diff --git a/qa-cypress/README.md b/qa-cypress/README.md new file mode 100644 index 0000000..1c09f93 --- /dev/null +++ b/qa-cypress/README.md @@ -0,0 +1,27 @@ +# Awesome Test Automation + +A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages to help software engineers easily bootstrap test automation upon necessity. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + +# Notifications +Press [like](https://github.com/atinfo/awesome-test-automation/stargazers) to support us and [watch](https://github.com/atinfo/awesome-test-automation/subscription) repository to receive updates. + +# [Contribution](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +Feel free to fork and add new content! Your contributions are always welcome! diff --git a/qa-cypress/automation-and-testing-as-service.md b/qa-cypress/automation-and-testing-as-service.md new file mode 100644 index 0000000..101750c --- /dev/null +++ b/qa-cypress/automation-and-testing-as-service.md @@ -0,0 +1,95 @@ +# Test automation and software testing as services + +A comprehensive curated list of test automation and software testing as online services to help software engineers easily bootstrap test automation and software testing. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [Web test automation and testing](#web-test-automation-and-testing) +- [API test automation and testing](#api-test-automation-and-testing) +- [Performance and load testing](#performance-and-load-testing) +- [Security testing](#security-testing) +- [Reporting](#reporting) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## Web test automation and testing + +* [SauceLabs](https://saucelabs.com/) - Provides the world's largest automation cloud for testing web and native/hybrid mobile applications. Founded by the original creator of Selenium, Sauce Labs helps companies accelerate software development cycles, improve application quality and deploy with confidence across 450+ browser / OS platforms, including Windows, Linux, iOS, Android & Mac OS X. +* [Browserstack](http://www.browserstack.com/) - Online tool which allows users to test their website from different browsers. The list of supported browsers includes Google Chrome, Internet Explorer, Opera and Safari. This even includes different browser versions as well including the beta versions as well. With Browserstack, you can test every aspect of your website like flash, CSS, Java and more. +* [AppliTools](https://applitools.com/) Automating visual software testing +* [CrossBrowserTesting](https://crossbrowsertesting.com/) Another one cloud platform for automated testing of web applications. Provides a wide range of browsers, systems and more. +* [TestAnywhere](https://testanywhere.co/) - Test Anywhere is a cloud service that helps test your website or web application continuously and catch bugs in the early stages +* [Assertible](https://assertible.com/) - Assertible is an API and website testing service for teams and individuals. Create tests for your business logic, run them on a schedule or after deployments, and get alerted of failures as they occur. +* [Mailosaur](https://mailosaur.com/) - Allows you to automate email testing. Perform end-to-end tests on password reset, email verification and any area where you send email. +* [testim.io](https://www.testim.io/) - Automated functional testing platform with a GUI for authoring and machine learning based self-maintenance. +* [cypress.io](https://github.com/cypress-io/cypress) - Fast, easy and reliable testing for anything that runs in a browser. Runs on Mac, Linux, Windows and any CI. +* [Rainforest QA](https://www.rainforestqa.com/) - No Code Mobile & Web Testing for everything. Mac, Linux, Windows, iOS & Android. +* [BugBug.io](https://bugbug.io/) - A codeless, end-to-end testing tool which allows you to easily record&play tests in you own browser, schedule them in the cloud or connect with your CI/CD pipeline. +* [Checkly](https://checklyhq.com/) - Checkly is the API & E2E monitoring platform for the modern stack: programmable, flexible and loving JavaScript. API & Browser testing via Selenium, Playwright and Puppeteer. +* [endtest.io](https://endtest.io/) - Endtest is the leading test automation vendor providing a complete software platform to help organizations efficiently build automated end-to-end tests for Web and Mobile Applications. + +## API test automation and testing +* [MockLab](http://get.mocklab.io?utm_source=awesome-test-automation&utm_medium=automation-and-testing-as-service) is a hosted API simulation tool built on WireMock (maintaining 100% API compatibility). It supports flexible request/response stubbing for any HTTP-based protocol, response templating with Handlebars, conditional proxying and fault injection. +* [vREST](https://vrest.io/) is a cloud based API testing solution covering various features like validation, integration and mock servers. +* [Kesha](https://github.com/NUTtech/Kesha) - A web service with a user interface for testing http requests and web hooks. Allows you to create an http mock for http requests. +* [Mockachino](https://www.mockachino.com/) [github repo](https://github.com/czhu12/mockachino) Create a Mock API in Seconds. No Accounts, Free Forever. Share Your Space with Teammates. + + +## Mobile test automation +* [Hive CI](http://bbc.github.io/hive-ci/) is a CI system built around devices. Connect your physical devices to a hive and run your tests on the same platforms as your users + +## Performance and load testing +* [Loader.io](https://loader.io/) - A FREE load testing service that allows you to stress test your web-apps & apis with thousands of concurrent connections. +* [BlazeMeter](http://blazemeter.com/) - A self- service performance & load testing cloud, 100% JMeter-compatible. Easily run tests of 30k, 50k, 80k or more concurrent users, on-demand! +* [Loadsophia](https://loadosophia.org/) - is the service for storing and analysing performance test results. It supports analyzing output from Apache JMeter, Apache Benchmark and Yandex.Tank performance testing tools. +* [Load Impact](https://loadimpact.com/) - Nothing to install, easy config: instant and free load testing SaaS for developers and devops. +* [Sitespeed](https://www.sitespeed.io/) - Sitespeed.io is a set of Open Source tools that helps make your web pages faster. The coach gives you performance advice based on best practices for your site. Browsertime collects metrics and HAR files from your browser. Chrome-HAR creates a HAR file from Chrome Debugging Protocol data. PageXray converts a HAR file to a usable JSON structure that tells you more about your page. And finally sitespeed.io is the main tool that uses all the previously mentioned tools and add supports for testing multiple pages as well as adds the ability to report the metrics to a TSDB (Graphite and InfluxDB). +* [Tsung](http://tsung.erlang-projects.org/) - The purpose of Tsung is to simulate users in order to test the scalability and performance of IP based client/server applications. You can use it to do load and stress testing of your servers. Many protocols have been implemented and tested, and it can be easily extended. + +## Security testing +* [Netcraft](http://www.netcraft.com/security-testing/web-application/) - Web Application Security testing by Netcraft. +* [WebSecurify](http://www.websecurify.com/) - One of the famous Web Application Security Scanner +* [Hacktarget.com](https://hackertarget.com/) - Simplify the security assessment process with hosted vulnerability scanning tools. +* [Scan My Server](https://www.scanmyserver.com/) - Free tool for Web Security scanning. + +## Reporting +* [Testomat.io](https://testomat.io/) - test management and reporting system for automated tests +* [Browsershots](http://browsershots.org/) - Makes screenshots of your web design in different browsers. It is a free open-source online service created by Johann C. Rocholl. When you submit your web address, it will be added to the job queue. A number of distributed computers will open your website in their browser. Then they will make screenshots and upload them to the central server here. +* [Perfomatic](https://wiki.mozilla.org/Perfomatic) - Mozilla graph server is used to understand how multiple performance metrics change over time. It is a web application for creating graphs of performance test results for a user-configurable combination of branch, operating system and machine. [Example](http://graphs.mozilla.org/graph.html). + +# Resources +Where to discover new libraries, information, tools, etc. + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! [Contribute](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) diff --git a/qa-cypress/c#-test-automation.md b/qa-cypress/c#-test-automation.md new file mode 100644 index 0000000..f00a0e2 --- /dev/null +++ b/qa-cypress/c#-test-automation.md @@ -0,0 +1,183 @@ +# C# test automation + +A comprehensive curated list of C# test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on C#. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [xUnit frameworks](#xunit-frameworks) +- [TDD \ ATTD \ BDD](#tdd--atdd--bdd) +- [Code Analysis](#code-analysis) +- [Web UI test automation](#web-ui-test-automation) +- [Mobile test automation](#mobile-test-automation) +- [Windows UI test automation](#windows-ui-test-automation) +- [API automation](#api-automation) +- [Unix \ Linux UI test automation](#unix--linux-ui-test-automation) +- [MacOS UI test automation](#macos-ui-test-automation) +- [Virtual environments](#virtual-environments) +- [Performance & stress & load](#performance--stress--load) +- [Security checking](#security-checking) +- [Continuous Integration](#continuous-integration) +- [Reporting](#reporting) +- [Documentation generation](#documentation-generation) +- [Editors, IDE and consoles](#editors-ide-consoles) +- [Useful libs](#useful-libs) +- [DataBase test automation](#database-test-automation) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## xUnit frameworks + +* [NUnit](https://github.com/nunit/nunit) ― The most known, extensible and portable(yes, you can run your tests on Mono for Linux and Mac) unit-testing framework in the .Net world. It comes with descent test adapters for Visual Studio 2013 - ... as well as standalone GUI and command line runners +* [MSTest (Visual Studio Test)](https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest) ― the most conservative and slow evolving unit testing framework with only one good thing: it is built-in to the Visual Studio. So, you can always rely it is there. +* [xUnit](https://github.com/xunit/xunit) ― the "bleeding edge" unit testing framework, beloved by many developers, even from Microsoft. This is community based open source project, written by the original inventor of NUnit 2.0 +* [Gallio Icarus and MbUnit](https://code.google.com/p/mb-unit/) ― the most feature reach Test Runner, Test Reporter and Unit testing framework. It is still popular in many .NET shops, especially for running Selenium WebDriver UI tests... Unfortunately, it is not being maintained since 2012. :skull: + +## TDD \ ATDD \ BDD +* [Fluent Assertions](http://www.fluentassertions.com/) is a set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test. +``` csharp +string actual = "ABCDEFGHI"; +actual.Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9); +``` +* [SpecFlow](http://www.specflow.org/) ― A pragmatic BDD solution for .NET. It uses the Gherkin specification language and integrates to Visual Studio. +* [SpecFlow.Selenium.Plugin](https://github.com/unickq/SpecFlow.Selenium.Plugin) ― SpecFlow plugin for Selenium instances generation over tags. Cucumber for dotnet +* [BDDfy](http://docs.teststack.net/bddfy/) - The simplest BDD framework for .Net EVER! The name comes from the fact that it allows you to turn your tests into BDD behaviors simply. + +## Code analysis + +* [NCover](https://www.ncover.com/) ― really good code coverage tool, but $$ +* [OpenCover](https://github.com/OpenCover/opencover) is a code coverage tool for .NET 2 and above, support for 32 and 64 processes with both branch and sequence points +* [NCrunch](http://www.ncrunch.net/) - an automated concurrent testing tool for Visual Studio. +* See also: [Code Coverage for C#/.NET](http://stackoverflow.com/questions/276829/code-coverage-for-c-net) + +## Web UI test automation + +* [Selenium WebDriver](https://www.nuget.org/packages/Selenium.WebDriver) ― Yes! [WebDriver](http://www.seleniumhq.org/) is everywhere! This is the best and the most popular UI test automation library and infrastructure. +* [Atata](https://atata-framework.github.io/) ― An open source C#/.NET test automation full featured framework based on Selenium WebDriver. It uses fluent page object pattern with built-in logging. Atata Framework is extensible and contains a set of components, triggers and much more. +* Coded UI (deprecated :skull:) ($$$) (Internet Explorer only) ― Okay... it is integrated into the Visual Studio Premium+ and supports Record&Playback "automation". +* [WatiN](http://watin.org/) ― Before the Selenium Webdriver appeared on the market, WatiN was one of the best Web UI automation frameworks for .NET. Now it is not maintained. :skull: +* [Golem](https://github.com/ProtoTest/ProtoTest.Golem) Object Oriented C# Automated Testing Framework. Golem was created to simplify the process of creating enterprise-scale automated testing suites. It wraps around Gallio/MbUnit and a number of automation tools (such as Selenium-WebDriver) to provide the tester with a simple process for creating automated tests no matter what the tool. The inclusion of advanced features, diagnostic information, easy configuration, and enhanced API's helps Golem make automating in code-based automation tools much more practical. A standard test structure is enforced throughout the Golem framework to make the code readable and easy to reuse. Company behind it (ProtoTest) is in the process of winding down. Last commit was done in May, 2015. +* [Mailosaur](https://github.com/mailosaur/mailosaur-dotnet) - .NET client for email testing/automation via Mailosaur. +* [Ocaramba](https://github.com/ObjectivityLtd/Ocaramba) - Cross-Platform C# framework to automate tests using Selenium WebDriver. [Ocaramba.templates](https://github.com/ObjectivityLtd/Ocaramba.templates) Ocaramba project extension for Visual Studio - a set of project and class templates for web automated testing using Ocaramba Framework. + + +## Mobile test automation + +* [Coded UI](https://msdn.microsoft.com/en-us/library/dn747198.aspx) (deprecated :skull:) supports some level of the mobile test automation +for Windows Phone +* [Xamarin.UITest](http://developer.xamarin.com/guides/testcloud/uitest/) is a library that comes with Xamarin Forms and allows you to automate the applications built with Xamarin +technology on Windows Phone, iOS and Android +* [Appium](http://appium.io/) supports cross platform test automation for Native and Hybrid mobile applications +* [Testura.Android](https://github.com/Testura/Testura.Android) A lightweight test automation framework to test android applications. Easy to start and require minimum set up. + +## Windows UI test automation + +* [Winium.Cruciatus](https://github.com/2gis/Winium.Cruciatus) is an open source C# Framework for automated testing of Windows application based on WinForms and WPF platforms. +* [Teststack White](https://github.com/TestStack/White) is one of the most popular and stable open source UI test automation library + for Windows (WinAPI / WPF / Silverlight / Windows Forms). +* Coded UI (deprecated :skull:) ($$$) does a pretty good job for Windows UI automation. Pricey... because it comes with Visual Studio Premium and Ultimate. +* [Cutie](https://github.com/icnocop/cuite) - CUITe (Coded UI Test enhanced) Framework is a thin layer developed on top of Microsoft Visual Studio Team Test's Coded UI +* [AutoIt (COM bindings)](https://www.autoitscript.com/autoit3/docs/intro/ComRef.htm) ― since it implements COM+ interface, autoit can be available from any language on windows, including C#. +* [WebAii Testing Framework](http://www.telerik.com/teststudio/testing-framework) - Framework for cross-browser testing with native support for Telerik UI for ASP.NET AJAX, Silverlight, WPF, HTML5 and XAML applications, etc. +* [FlaUI](https://github.com/Roemer/FlaUI) - UI automation library for .Net. Rewritten White with UIA3, UIA2, MSAA support +* [Windows Application Driver](https://github.com/Microsoft/WinAppDriver) - Windows Application Driver is a service to support UI Test Automation of Windows Applications. The service design subscribes to the Mobile JSON Wire Protocol standard. + +## API automtation + +* [ApprovalTests](https://github.com/approvals/ApprovalTests.Net) - an open source assertion/verification library to aid unit testing. It is compatible with most .Net unit testing frameworks (Nunit, MsTest, xUnit, MBUnit) + +## Virtual environments + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Performance & stress & load + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Security checking + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Continuous Integration + +* [Jenkins](http://jenkins-ci.org/) ― can be easily configured to support C# continuous integration process: + 1. Use NUnit as your test runner with [Jenkins NUnit Plugin](https://wiki.jenkins-ci.org/display/JENKINS/NUnit+Plugin) + 2. Use [Microsoft Build Tools](http://www.microsoft.com/en-us/search/result.aspx?q=%22Microsoft%20Build%20Tools%22&form=DLC) to build the project without Visual Studio + 3. Use Windows Batch files and / or Powershell to perform any system configuration tasks + 4. Use `msdeploy` from [Web Deploy Toolkit](http://www.iis.net/downloads/microsoft/web-deploy) in order to perform the remote + deployment and configuration tasks. + +* [TeamCity](https://www.jetbrains.com/teamcity/) is a free and simple Build and Continuous integration server. You can +run the C# tests just out of the box +* [Team Foundation Server] ― well... the marketing guys say that it can also build something for you + +* [Appveyor](http://www.appveyor.com/) is free for open source projects and easy to use. + +## Reporting + +* [Allure](https://github.com/allure-framework/allure-csharp) - An open-source reporting library for test automation (NUnit 2 and MSTest adapters). +* [Allure SpecFlow](https://github.com/allure-framework/allure-csharp/tree/master/Allure.SpecFlowPlugin) - Allure SpecFlow Plugin +* [Allure NUnit](https://github.com/unickq/allure-nunit) - Allure NUnit plugin +* [ReportPortal](http://reportportal.io/) - Full-featured result management tool for clients, managers & test automation engineers (NUnit 2, Nunit 3 and SpecFlow adapters). +* [ExtentReports](http://extentreports.relevantcodes.com) - An open-source reporting library for test automation. +* [GHPReporter](http://ghpreporter.github.io/) - An open-source .NET test reporting tool for several testing frameworks (supports NUnit 3, MSTest and SpecFlow). + +## Documentation generation + +* [Doxygen](http://www.stack.nl/~dimitri/doxygen/) is a free and open source documentation generation platform, that supports multiple languages. +You may write a standard C# XML documentation ― and Doxygen will process it correctly; Yo may use markdown and include images ― Doxygen can handle even more. +Grab and modify this [Doxyfile for C#](https://github.com/dzharii/SWD.Starter/blob/master/Doxyfile) +* [Wyam](https://wyam.io/) Static site generator with built-in capability to generate API documentation from .NET library metadata and XML documentation. + +## Editors, IDE, consoles + +* [Free Visual Studio Community Edition](http://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx) ― starting from VS2013, +Visual Studio Professional is became free for small teams. +* [Sharpdevelop](http://www.icsharpcode.net/opensource/sd/) is a free and open source IDE for C# +* [Visual Studio Code](https://code.visualstudio.com/) is a free and cross-platform IDE + +## Useful libs + +* [Json.NET](https://www.nuget.org/packages/Newtonsoft.Json/) is a popular high-performance JSON framework for .NET +* [RestSharp](https://www.nuget.org/packages/RestSharp/) ― simple REST and HTTP API Client +* [XMLUnit](http://www.xmlunit.org/) - testing and comparing XML output for Java and .NET + +## DataBase test automation +* [DBTestCompareGenerator](https://github.com/ObjectivityLtd/DBTestCompareGenerator) - Tool for generating database tests that can be run with [DBTestCompare](https://github.com/ObjectivityLtd/DBTestCompare). +* [NBi](https://github.com/Seddryck/NBi) - NBi is a testing framework (add-on to NUnit) for Business Intelligence. It supports most of the relational databases (SQL server, MySQL, postgreSQL ...) and OLAP platforms (Analysis Services, Mondrian ...) but also ETL and reporting components (Microsoft technologies). + +# Resources +Where to discover new libraries, information, tools, etc. + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! diff --git a/qa-cypress/general-purpose-test-automation-tools.md b/qa-cypress/general-purpose-test-automation-tools.md new file mode 100644 index 0000000..51524bd --- /dev/null +++ b/qa-cypress/general-purpose-test-automation-tools.md @@ -0,0 +1,108 @@ +# General purpose test automation tools + +A comprehensive curated list of general purpose test automation tools (or 'universal tools' that suite to different applications and languagues) to help software engineers easily bootstrap test automation and software testing. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [Functional Testing](#functional-testing) +- [Performance and load testing](#performance-and-load-testing) +- [Security testing](#security-testing) +- [REST API testing](#api-testing) +- [Test design](#test-design) +- [Test management](#test-management) +- [Web UI test automation](#web-ui-test-automation) +- [Windows GUI automation](#windows-gui-automation) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## Functional testing +* [gauge](https://gauge.org/) Lightweight cross-platform test automation. +* [STAF](http://staf.sourceforge.net/) The Software Testing Automation Framework (STAF) is an open source, multi-platform, multi-language framework designed around the idea of reusable components, called services (such as process invocation, resource management, logging, and monitoring). STAF removes the tedium of building an automation infrastructure, thus enabling you to focus on building your automation solution. The STAF framework provides the foundation upon which to build higher level solutions, and provides a pluggable approach supported across a large variety of platforms and languages. +* [Cerberus](https://github.com/cerberustesting/cerberus-source) is a low-code software testing automation enabling continuous testing at scale. The solution allows the collaboration of the teams from the use-cases definition to the test case execution on the variety of browsers, devices, apps and APIs. It supports various integrations for speed of implementation such as Jenkins, Bitbucket, Slack, Kafka. It is available and maintained in open-source by various digital and retail players such as La Redoute, Decathlon, Adeo, Norauto. +* [OpenTest](https://getopentest.org/) OpenTest is an open source functional test automation tool for web applications, mobile apps and REST APIs, maintained by McDonald's. OpenTest requires little to no coding skills but does provide the ability to seamlessly embed JavaScript code into the test logic to cater to complex scenarios. +* [RobotFramework](http://robotframework.org/) Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). +* [Ranorex](http://www.ranorex.com/) - Ranorex is a GUI test automation framework for testing of desktop, web-based and mobile applications. Ranorex is provided by Ranorex GmbH, a software development company for innovative software test automation solutions. +* [TestComplete](https://smartbear.com/product/testcomplete/overview/) - TestComplete is a functional automated testing platform developed by SmartBear Software. TestComplete gives testers the ability to create automated tests for Microsoft Windows, Web, Android (operating system), and iOS applications. +* [HP Unified Functional Testing (UFT), formerly known as (QTP)](http://www8.hp.com/us/en/software-solutions/unified-functional-automated-testing/index.html) - HP Unified Functional Testing is automated testing software designed for testing various software applications and environments. +* [Puppetry](https://puppetry.app/) - Puppetry is an open-source scriptless test automation tool built on top of Google’s Puppeteer. It can be used by QA engineers with no programming background. Puppetry can also export the tests into a Jest.js project, so they can be included into CI/CD pipeline. +* [Testsigma](https://testsigma.com/) - Testsigma is an AI-Driven Test Automation Ecosystem for Web, Mobile Web, Android & iOS Apps, and API automated testing on Microsoft Windows, Mac and Linux Operating Systems. No coding skills required. +* [VIVIDUS](https://docs.vividus.dev/) - a test automation tool that offers already implemented solution for testing of most popular application types. No coding skills are required. + +## Web UI test automation +* [Ggr](https://github.com/aandryashin/ggr) - active load balancer to create scalable and highly-available Selenium cluster. +* [Selenoid](https://github.com/aandryashin/selenoid) - alternative Selenium Hub running browsers within containers. +* [RedwoodHQ](https://github.com/dmolchanenko/RedwoodHQ) - RedwoodHQ is a free Open Source test automation framework that allows multiple users to develop automation code, create readable action/keyword driven test cases and execute them all under a single Web interface. + +## API testing + +* [Postman REST Client](https://www.npmjs.com/package/postman-bdd) - The Postman REST client allows you to write tests for your APIs, such as ensuring that your endpoints return the proper HTTP status codes, headers, and content. It even has has a built-in test runner that makes it easy to run all of your tests and immediately see the results. And you can use the Newman command-line tool to automate your tests and integrate them into your CI and deployment pipeline. +* [StREST](https://github.com/eykrehbein/strest) - StREST is an open-source tool to set up tests for REST api's in seconds with YAML configuration files. StREST allows you to connect multiple requests by using values from previous requests in future requests. StREST also gives you a flexible validation framework for responses, allows using special headers, and can be configured to test APIs with random input or env vars. +* [SoapUI](https://www.soapui.org/) - SoapUI is an open-source web service testing application for service-oriented architectures (SOA) and REST. Its functionality covers web service inspection, invoking, development, simulation and mocking, functional testing, load and compliance testing. +* [Rapise](https://www.inflectra.com/Rapise/) - Rapise is GUI based tool. Rapise's unique Learn and Go testing method is much more time efficient than traditional record-and-playback processes. +* [Restlet Client](https://chrome.google.com/webstore/detail/restlet-client-rest-api-t/aejoelaoggembcahagimdiliamlcdmfm) - Restlet Client (formerly known as DHC) allows you to interact with REST services. It brings many different features that make your user experience better, save you precious time when debugging HTTP calls or sharing your requests with others. +* [Beeceptor](https://beeceptor.com) - Beeceptor is an HTTP proxy for intercepting and mocking API calls selectively. E.g. assume api 'A' has a downstream api 'B', how do simulate B's responses for validating 'A'. Beeceptor also helps in performance testing 'A' by mocking all calls of 'B' and not impacting downstream services. +* [Swagger](https://swagger.io/) - Swagger is the open-source framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the entire API lifecycle, from design and documentation, to test and deployment. +* [Schemathesis](https://github.com/kiwicom/schemathesis) - Schemathesis is a tool for property-based testing of applications based on Open API & Swagger specs. It reads the application schema and generates test cases which will ensure that your application is compliant with its schema. +* [GMeter](https://github.com/hexdigest/gmeter) - GMeter is an open-source standalone HTTP reverse-proxy server for recording and replaying HTTP requests. GMeter allows you to record multiple HTTP requests made within one test case to a "cassette" and to use this cassette to mock downstream service later on. +* [Insomnia](https://insomnia.rest/) provides workflows and tools to make API Development Easier. +* [Apitest](https://github.com/sigoden/apitest) - Apitest is declarative api testing tool with JSON-like DSL for easy testing of REST services. + +## Performance and load testing +* [k6](https://github.com/loadimpact/k6) - Like unit testing, for performance. A modern load testing tool, using Go and JavaScript. +* [LoadComplete](https://smartbear.com/product/loadcomplete/overview/) - LoadComplete is a desktop tool for load, stress, scalability testing of websites and web applications. Designed from the ground-up to help you focus on the tasks at hand, it does not require advanced programming skills. It works with both traditional HTML web sites and with Rich Internet Applications using modern web technologies like AJAX, ASP.NET, Java, Flash, Flex and Silverlight. The licensing policy is based on the number of virtual users required for the load testing. + +## Security testing + +* [OWASP Glue](https://github.com/OWASP/glue) - Glue is a framework for running a series of tools. Generally, it is intended as a backbone for automating a security analysis pipeline of tools. +* [Cloudquery](https://github.com/cloudquery/cloudquery) - Cloudquery transforms your cloud infrastructure to relational database. Giving you the power to run security and compliance checks with SQL statements. +* [Burp Suite](https://portswigger.net/burp) it is a platform for performing web application security testing. + +## Windows GUI automation + +* [AutoIt](https://www.autoitscript.com/site/) - AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks. + +## Test design + +* [PICT (Pairwise Independent Combinatorial Testing)](https://github.com/Microsoft/pict) - PICT generates test cases and test configurations. With PICT, you can generate tests that are more effective than manually generated tests and in a fraction of the time required by hands-on test case design. + +## Test management + +* [Testomat.io](https://testomat.io/) - test management and reporting system for javascript automated tests + +# Resources +Where to discover new libraries, information, tools, etc. + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies +* [Testomat.io](https://testomat.io/) - test management and reporting system for automated tests + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! [Contribute](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) diff --git a/qa-cypress/java-test-automation.md b/qa-cypress/java-test-automation.md new file mode 100644 index 0000000..86de719 --- /dev/null +++ b/qa-cypress/java-test-automation.md @@ -0,0 +1,268 @@ +# Java test automation + +A comprehensive curated list of Java test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on Java. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [xUnit frameworks](#xunit-frameworks) +- [TDD \ ATTD \ BDD](#tdd--atdd--bdd) +- [Model-Based Testing](#model-based-testing) +- [Code Analysis and Coverage](#code-analysis-and-coverage) +- [Web UI test automation](#web-ui-test-automation) +- [Mobile test automation](#mobile-test-automation) +- [API test automation](#api-test-automation) +- [Windows UI test automation](#windows-ui-test-automation) +- [Unix \ Linux UI test automation](#unix--linux-ui-test-automation) +- [MacOS UI test automation](#macos-ui-test-automation) +- [Server side test automation](#server-side-test-automation) +- [Virtual environments](#virtual-environments) +- [Performance & stress & load](#performance--stress--load) +- [Security checking](#security-checking) +- [Build Tools](#build-tools) +- [Continuous Integration](#continuous-integration) +- [Reporting](#reporting) +- [Documentation generation](#documentation-generation) +- [Editors, IDE and consoles](#editors-ide-consoles) +- [ORM frameworks and libraries](#orm-frameworks-and-libraries) +- [Useful libs](#useful-libs) +- [Test Data](#test-data) +- [DataBase test automation](#database-test-automation) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## xUnit frameworks + +* [JUnit](http://junit.org/) - Common testing framework. +* [TestNG](http://testng.org/) - TestNG - Testing framework. + * [Test Data Supplier](https://github.com/sskorol/test-data-supplier) - TestNG DataProvider wrapper which helps to supply test data in a more flexible way. +* [Sunshine](https://github.com/tatools/sunshine/) - Sunshine is a wrapper on Java xUnit test runners (such as TestNG, Junit...) which allows automatically find classes with tests within the jar file, passes them to desired test runner and reports an execution status. + + +## TDD \ ATDD \ BDD + +- tools + * [JBehave](http://jbehave.org/) - A framework for Behaviour-Driven Development (BDD). BDD is an evolution of test-driven development (TDD) and acceptance-test driven design, and is intended to make these practices more accessible and intuitive to newcomers and experts alike. + * [Cucumber-JVM](https://github.com/cucumber/cucumber-jvm) - A pure Java implementation of Cucumber that supports the most popular programming languages for the JVM. + * [JGiven](https://github.com/TNG/JGiven) - A developer-friendly and pragmatic BDD tool for Java. Developers write scenarios in plain Java using a fluent, domain-specific API, JGiven generates reports that are readable by domain experts. + * [easyb](http://easyb.org/) - A behavior driven development framework for the Java platform. By using a specification based Domain Specific Language, easyb aims to enable executable, yet readable documentation. + * [Robot Framework](http://robotframework.org/) - A generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). + * [awesome-robotframework](https://github.com/fkromer/awesome-robotframework) - A curated list of awesome Robot Framework resources and libraries + * [Spectrum](https://github.com/greghaskins/spectrum) - A BDD-style test runner for Java 8. Inspired by Jasmine, RSpec, and Cucumber. + * [Gauge](https://gauge.org/) - Gauge is a light-weight cross-platform test automation tool with the ability to author test cases in the business language. + * [Spock](http://spockframework.org/) - Specification testing framework for Java and Groovy. + * [Concordion](https://concordion.org/) - Flexible, extensible BDD/SBE tool that creates beautiful living documentation using business language +- extensions + * [cucumber-report-db](https://github.com/porscheinformatik/cucumber-report-db) - Stores results of BDD tests with Cucumber-JVM in a database and provides reporting capabilities. + +## Model-Based Testing + +- [GraphWalker](http://graphwalker.org/) - A framework for Model-Based Testing. The tool reads models in various formats like graphml, dot or json, and then generates tests from the models. + +## Code analysis and coverage + +* [SonarQube](http://www.sonarqube.org) - Open source project to manage code quality. +* [Gradle Quality Plugin](https://github.com/xvik/gradle-quality-plugin) - Static code analysis for Java and Groovy projects using Checkstyle, PMD, FindBugs and CodeNarc. Plugin implements unified console output for all quality plugins which greatly simplifies developer workflow: only console is required for working with violations and makes it feel the same as java compiler errors. +* [Qulice](https://github.com/teamed/qulice) - Qulice is a static analysis quality control instrument for Java projects. It combines all the best static analysis instruments and pre-configure them. You don't need to use and configure them individually any more. +* [JaCoCo](https://github.com/jacoco/jacoco) - JaCoCo is a free code coverage library for Java, which has been created by the EclEmma team based on the lessons learned from using and integration existing libraries for many years. + +## Web UI test automation + +- libraries + * [Selenium](http://docs.seleniumhq.org/) - Portable software testing framework for web applications. + * [SikuliX](http://www.sikulix.com/) - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. +- frameworks and wrappers + * [Selenide](http://selenide.org/) - Concise API around Selenium to write stable and readable UI tests. + * [Selenified](https://github.com/Coveros/selenified) - An open source framework to simplify Selenium Testing. It provides a wrapper for Selenium calls to add detailed reporting, error handling, simple test setup in a thread-safe manner, and can run either locally or in the cloud (Grid or SauceLabs). + * [Serenity BDD (Thucydides)](http://www.thucydides.info/) - An innovative open source library that helps you write more effective automated acceptance tests, and uses these acceptance tests to generates rich documentation and reports about your product and project. + * [htmlelements](https://github.com/yandex-qatools/htmlelements) - A Java framework providing easy-to-use way of interaction with web-page elements in web-page tests. + * [atlassian-selenium](https://bitbucket.org/atlassian/atlassian-selenium) - An open-source (BSD) project that aims at facilitating development of functional tests in Selenium/WebDriver libraries. + * [stevia](https://github.com/persado/stevia) - Open Source QA Automation Testing Framework by Persado + * [darcy](https://github.com/darcy-framework) - An open source Java 8 framework for modeling user interfaces as page objects with a declarative, automation-library-agnostic DSL + * [Satisfy](http://satisfy.tapack.io) - An open source Java framework based on Thucydides + Jbehave. Supports to work with WebUI, SOAP, REST, emails, files and generate random data out of the box. + * [JDI Light](https://github.com/jdi-testing/jdi-light) - is the test Framework for UI test automation that helps to makes your tests fast and sustainable and provide obvious and predictable test run result. + * [Geb Framework](http://gebish.org/) - A groovy test automation framework designed for the use with the Webdriver Page Object model and the Spock Framework for (BDD). + * [FluentLenium](https://github.com/FluentLenium/FluentLenium) - FluentLenium helps you writing readable, reusable, reliable and resilient UI functional tests for the browser. FluentLenium provides a Java fluent interface to Selenium, and brings some magic to avoid common issues faced by Selenium users. + * [Selion](https://github.com/paypal/SeLion) - builds on top of TestNG and Selenium to provide a set of capabilities that get you up and running with WebDriver in a short time. It can be used for testing web and mobile applications. + * [Frameworkium](https://frameworkium.github.io/) - automation framework for web, app, and API testing. Integrates: saucelabs, allure, rest-assured, jackson, gson. Published on Jitpack repository. + * [Carina](http://qaprosoft.github.io/carina/) - Carina is a Java-based test automation framework that unites all testing layers: Mobile applications (web, native, hybrid), WEB applications, REST services, Databases. + * [NoraUi](https://noraui.github.io/#) - NoraUi, for NOn-Regression Automation for User Interfaces, is a Java framework based on Selenium, Cucumber and Gherkin stack to create GUI testing projects that can be included in the continuous integration chain of single/multi applications web solution builds. + * [Cubano](https://concordion.org/cubano/framework) - Cubano is a test automation framework written in Java that provides a structure for developing acceptance and regression tests so your team can hit the ground running and not have to waste time needlessly building and maintaining your own framework. + * [Jalenium](https://lkkushan.gitbook.io/jalenium/) - Jalenium is a Java Selenium API which can be easily integrated to any maven Selenium Java project which uses Selenium JAR files. +- extensions + * [BrowserMob Proxy](https://github.com/lightbody/browsermob-proxy) - Is a simple utility that makes it easy to capture performance data from browsers, typically written using automation toolkits such as Selenium and Watir. + * [Selenoid](https://github.com/aerokube/selenoid) - Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary. + * [Selenium-Grid-Extras](https://github.com/groupon/Selenium-Grid-Extras) - Simplify the management of the Selenium Grid Nodes and stabilize said nodes by cleaning up the test environment after the build has been completed + * [Selenium Grid Extensions](https://github.com/sterodium/selenium-grid-extensions) - Extend Selenium grid with extra functionality. Execute Sikuli tests in combination with Selenium. + * [Selenium Grid Router](https://github.com/seleniumkit/gridrouter) is a lightweight server that routes and proxies Selenium Wedriver requests to multiple Selenium hubs. + * [Docker Selenium Grid](https://github.com/sskorol/docker-selenium-grid) - A project to provide native video recording support for Selenium Grid and was initially designed to be used with docker-selenium project. + * [Video Recorder Java](https://github.com/SergeyPirogov/video-recorder-java) - This library allows easily record video of your UI tests by just putting couple annotations. + * [Zalenium](https://github.com/zalando/zalenium) - Allows anyone to have a disposable and flexible Docker-based Selenium Grid infrastructure featuring video recording, live preview and online/offline dashboards. + * [SikuliFactory](https://github.com/marcoslimaqa/sikuli-factory) - A based PageFactory model for SikuliX. + * [Mailosaur](https://github.com/mailosaur/mailosaur-java) - Java client for email testing/automation via Mailosaur. + * [TrueAutomation.IO](https://trueautomation.io/) - One of the main tasks of TA is to solve problem of working with unstable locators. + +## Mobile test automation + +* [Appium](http://appium.io/) - An open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS and Android apps using the WebDriver protocol. +* [Calabash](http://calaba.sh/) - A cross-platform test automation framework for Android and iOS native and hybrid applications. Calabash’s easy-to-understand syntax enables even non-technical people to create and execute automated acceptance tests for apps on both of these mobile platforms. +* [Robotium](https://code.google.com/p/robotium/) - An Android test automation framework that fully supports native and hybrid applications. Robotium makes it easy to write powerful and robust automatic black-box UI tests for Android applications. With the support of Robotium, test case developers can write function, system and user acceptance test scenarios, spanning multiple Android activities. +* [UIautomator](http://developer.android.com/tools/help/uiautomator/index.html) - Provides an efficient way to test UIs. It creates automated functional test cases that can be executed against apps on real Android devices and emulators. It includes a viewer, which is a GUI tool to scan and analyze the UI components of an Android app. +* [Espresso](https://code.google.com/p/android-test-kit/wiki/Espresso) - A pretty new test automation framework that got open-sourced just last year, making it available for developers and testers to hammer out their UIs. Espresso has an API that is small, predictable, easy to learn and built on top of the Android instrumentation framework. You can quickly write concise and reliable Android UI tests with it. + +## API test automation + +* [hikaku](https://github.com/codecentric/hikaku) - A library that tests if the implementation of a REST-API meets its specification. +* [Karate-DSL](https://github.com/intuit/karate) - Karate is a BDD javascript framework which enables you to script a sequence of calls to any kind of web-service and assert that the responses are as expected. It makes it really easy to build complex request payloads, traverse data within the responses, and chain data from responses into the next request. Karate's payload validation engine can perform a 'smart compare' of two JSON or XML documents without being affected by white-space or the order in which data-elements actually appear, and you can opt to ignore fields that you choose. +* [Retrofit](http://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java. +* [REST-Assured](https://github.com/rest-assured/rest-assured) - A library for testing and validation of REST services in Java. + + +## Windows UI test automation + +* [SikuliX](http://www.sikulix.com/) - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. +* [Winium for Desktop](https://github.com/2gis/Winium.Desktop/) - Winium.Desktop is an open source test automation tool for automated testing of Windows application based on WinFroms and WPF platforms. +* [WinAppDriver](https://github.com/microsoft/WinAppDriver) - Windows Application Driver (WinAppDriver) is a service to support Selenium-like UI Test Automation on Windows Applications. This service supports testing Universal Windows Platform (UWP), Windows Forms (WinForms), Windows Presentation Foundation (WPF), and Classic Windows (Win32) apps on Windows 10 PCs. + +## Unix \ Linux UI test automation + +* [SikuliX](http://www.sikulix.com/) - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. + +## MacOS UI test automation + +* [SikuliX](http://www.sikulix.com/) - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. + +## Server side test automation + +* [Citrus](https://github.com/christophd/citrus) - Test framework written in Java that is able to create fully automated end-to-end use case tests for enterprise SOA applications. Citrus simulates surrounding interface partners supporting a huge set of different transports and protocols like HTTP, JMS, TCP/IP, FTP, SOAP, XML and JSON. + +## Virtual environments + +* [Vagrant](https://www.vagrantup.com/) - Easy to configure, reliable tool for building and maintaining portable virtual development environments. +* [Docker](https://www.docker.com) - Docker is the world’s leading software container platform. Developers use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps. + +## Performance & stress & load + +* [Apache JMeter](http://jmeter.apache.org/) - Functional testing and performance measurements. +* [The Grinder](http://grinder.sourceforge.net/) - Load testing framework that makes it easy to run a distributed test using many load injector machines. +* [Lightning](http://automatictester.github.io/lightning/) - Integrate JMeter non-functional tests with CI/CD server. +* [Tsung](http://tsung.erlang-projects.org/) - Erlang based multi-protocol distributed load testing tool. +* [Gatling](http://gatling.io/) - Gatling is an open-source load testing framework based on Scala, Akka and Netty. Is a highly capable load testing tool. It is designed for ease of use, maintainability and high performance. Based on an expressive DSL, the scenarios are self explanatory. They are easy to maintain and can be kept in a version control system. Gatling architecture lets implement virtual users as messages instead of dedicated threads, making them very resource cheap. Thus, running thousands of concurrent virtual users is not an issue. +* [CRUX](https://github.com/ObjectivityLtd/crux) - (pron. kruhks) is build around Kubernetes (AKS) and JMeter. It makes it easy to incorporate performance tests into your Azure CI/CD pipeline. Each performance build can create and destroy infrastructure necessary for the run, which makes it cost effective. CRUX deploys a distributed JMeter cluster on Kubernetes (AKS) with the size you need, runs tests, destroys infrastructure. If you do not have an AKS, be at ease, you can also run JMeter tests with CRUX directly on build agent with docker. + +## Security checking + +* [BDD-Security](https://continuumsecurity.net/bdd-security/) - BDD-Security is a security testing framework that uses natural language in a Given, When, Then Gherkin syntax to describe security requirements as features. Those same requirements are also executable as standard unit/integration tests which means they can run as part of the build/test/deploy process. + +## Build Tools + +* [Apache Ant](http://ant.apache.org/) - Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. +* [Apache Maven](http://maven.apache.org/) - Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. +* [Gradle](https://gradle.org/) - Gradle is an open source build automation system. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else. + +## Continuous Integration + +* [Jenkins](http://jenkins-ci.org/) - Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. +* [TeamCity](https://www.jetbrains.com/teamcity/) - Powerful and user-friendly Continuous Integration and Deployment server that works out of the box. +* [Drone](https://drone.io/) Drone is a self-service Continuous Integration platform for busy development teams. +* [Thundra Foresight](https://www.thundra.io/foresight) Thundra Foresight is a CI observability tool that provides visibility into your test suites. + +## Reporting + +* [ReportPortal](https://github.com/reportportal/reportportal) - powerful server-client reporting tool. Reduce the effort to work with results. Powered with Machine Learning, Providing historical data (statues) of executions in on click, logs, screenshost and any binary attachement. Trends, flaky test, most failed, longest test via custom widgets and dashboards, which give visibility to the team, leads, managers and falcon-eye view for VPs. Provide ability to categorize fails by custom defect types and utilize power of Machine Learning to detect fails, based on collected patterns. Give benefits of real-time integration: no need to wait execution ending. Any language, any platform. Free, Open Sourced. [Java integrations](https://github.com/reportportal?utf8=✓&q=agent-java&type=&language=) +* [Allure](https://docs.qameta.io/allure/latest) - Open-source framework designed to create test execution reports clear to everyone in the team. +* [Gradle Allure Plugin](https://github.com/d10xa/gradle-allure-plugin) - 3rd-party Gradle Allure Plugin allows you to integrate Allure into spock, testing and junit tests. +* [ExtentReports](http://relevantcodes.com/extentreports-for-selenium/) - HTML reporting library for .NET and Java which is extremely easy to use and creates beautiful execution reports. It shows test and step summary, test steps and status in a toggle view for quick analysis. +* [ReportNG](http://reportng.uncommons.org/) - ReportNG is a simple HTML reporting plug-in for the TestNG unit-testing framework. +* [Zafira](http://qaprosoft.github.io/zafira/) - Zafira is central automation reporting system that is build on the top of Java Spring Framework. It dramatically increases the transparany of test automation results and provides better undestanding of product quality. +* [Difido-reports](http://top-q.github.io/difido-reports/) - This project aims to provide a generic implementation for HTML test reports. +* [cucumber-reporting](https://github.com/damianszczepanik/cucumber-reporting) - This is a Java report publisher primarily created to publish cucumber reports on the Jenkins build server. It publishes pretty html reports with charts showing the results of cucumber runs. It has been split out into a standalone package so it can be used for Jenkins and maven command line as well as any other packaging that might be useful. Generated report has no dependency so can be viewed offline. + +## Documentation generation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Editors, IDE, consoles + +* [IntelliJ IDEA](https://www.jetbrains.com/idea/) - A free and open-source IDE for Java, Groovy, Scala and Android development. + * [IntelliJ IDEA Selenium plugin](http://perfect-test.com/index.php/ru/instruments-rus-menu/15-selenium-plugin-rus) - Plugin for IntelliJ Idea to simplify creation of web tests using selenium. +* [Eclipse](https://eclipse.org/ide/) - Eclipse is famous for our Java Integrated Development Environment (IDE), C/C++ IDE and PHP IDE. + * [Genie plugin](https://sourceforge.net/adobe/genie/wiki2/FAQ/) - Functional Test Automation tool for pure AS 3.0 SWF and Flash Games. +* [NetBeans](https://netbeans.org/features/index.html) - NetBeans IDE is the official IDE for Java 8. With its editors, code analyzers, and converters, you can quickly and smoothly upgrade your applications to use new Java 8 language constructs, such as lambdas, functional operations, and method references. +* [VSCode](https://code.visualstudio.com/) Code editing. Redefined. + +## ORM frameworks and libraries + +* [Hibernate](http://hibernate.org/orm/) - Hibernate ORM enables developers to more easily write applications whose data outlives the application process. As an Object/Relational Mapping (ORM) framework, Hibernate is concerned with data persistence as it applies to relational databases (via JDBC). +* [Morphia](https://github.com/mongodb/morphia) - Morphia is a lightweight type-safe library for mapping Java objects to/from MongoDB. Morphia provides a typesafe, and fluent Query API support with (runtime) validation. Morphia uses annotations so there are no XML files to manage or update. Morphia should feel very comfortable for any developer with JPA experience. +* [MyBatis](http://www.mybatis.org/mybatis-3) - MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. MyBatis can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records. + +## Useful libs + +* [StreamEx](https://github.com/amaembo/streamex) - Common Java 8 Streams enhancement library. +* [Vavr](https://github.com/vavr-io/vavr) - Vavr is an object-functional language extension to Java 8, which aims to reduce the lines of code and increase code quality. It provides persistent collections, functional abstractions for error handling, concurrent programming, pattern matching and much more. +* [Lombok](https://projectlombok.org) - Project Lombok makes Java a spicier language by adding 'handlers' that know how to build and compile simple, boilerplate-free, not-quite-java code. +* [AspectJ](https://eclipse.org/aspectj) - Seamless aspect-oriented extension to the Java. AspectJ enables clean modularization of crosscutting concerns, such as error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, and multi-object protocols. +* [aShot](https://github.com/yandex-qatools/ashot) - WebDriver Screenshot utility. Take screenshots, crop, prettify, compare. +* [WireMock](http://wiremock.org/) is a flexible library for stubbing and mocking web services. Unlike general purpose mocking tools it works by creating an actual HTTP server that your code under test can connect to as it would a real web service. +* [MockServer](http://www.mock-server.com/) can be used for mocking any system you integrate with via HTTP or HTTPS (i.e. services, web sites, etc). +* [Mockito](http://site.mockito.org/) is a mocking framework that lets you write beautiful tests with a clean & simple API. +* [PowerMock](https://github.com/powermock/powermock) is a Java framework that allows you to unit test code normally regarded as untestable. +* [XMLUnit](http://www.xmlunit.org/) - testing and comparing XML output for Java and .NET +* [Awaitility](https://github.com/awaitility/awaitility) - Awaitility is a DSL that allows you to express expectations of an asynchronous system in a concise and easy to read manner. +* [Beanmother](https://github.com/keepcosmos/beanmother) - A library for setting up Java Bean as test data. +* [PIT](http://pitest.org) - Pitest, a tool for mutation testing +* [GreenMail](http://www.icegreen.com/greenmail/) - GreenMail is an open source, intuitive and easy-to-use test suite of email servers for testing purposes. Typical use cases include mail integration testing or a lightweight sandboxed mail server for development. +* [image-comparison](https://romankh3.github.io/image-comparison/) - Java Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison. Can be used for automation qa tests. +* [AssertJ](https://joel-costigliola.github.io/assertj/) - Powerful fluent assertion framework. Compatible with any xUnit framework. +* [Truth](https://truth.dev/) - Fluent assertion framework for Java and Android from Google. +* [JSONassert](https://github.com/skyscreamer/JSONassert) - JSON assertion library. +* [selenium-to-restassured](https://github.com/mwinteringham/selenium-to-restassured) - Adapter to easily share Selenium WebDriver cookies with Rest Assured back and forth with this Java api. +* [TestRail-JUnit](https://github.com/RSheremeta/TestRail-JUnit) - This Library helps you to integrate your JUnit-based tests with TestRail in an easily manner. +* [TestRail-TestNG](https://github.com/RSheremeta/TestRail-TestNG) - This Library helps you to integrate your TestNG-based tests with TestRail in an easily manner. +* [Allure-Environment-Creator](https://github.com/RSheremeta/Allure-Environment-Creator) - This tiny Library helps you to serve and store environment data for Allure easily. +* [Owner](https://github.com/lviggiano/owner) - The OWNER API is a Java library with the goal of minimizing the code required to handle application configuration via Java properties files. +* [DeepfakeHTTP](https://github.com/xnbox/DeepfakeHTTP) - DeepfakeHTTP is a web server that uses HTTP dumps as a source for responses. This tool allows you to test clients against REST, GraphQL, and other APIs. + +## Test Data +* [Faker](https://github.com/DiUS/java-faker) - Java implementation of Faker, a library for generating fake data such as names, addresses, and phone numbers. + +## DataBase test automation +* [DBTestCompare](https://github.com/ObjectivityLtd/DBTestCompare) - Application to compare results of two SQL queries. Supports all databases with JDBC drivers provided (tested with Microsoft SQL Server, Teradata, Snowflake, PostgreSQL and MySQL\MariaDB). [DBTestCompareGenerator](https://github.com/ObjectivityLtd/DBTestCompareGenerator) - Tool for generating database tests that can be run with DBTestCompare. + +# Resources +* [Serenity BDD (Thucydides) libraries](http://thucydides.info/docs/thucydides-one-page/thucydides.html) +* [Automation tests structure](http://habrahabr.ru/post/168451/) + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies +* [selenium-simplified](http://seleniumsimplified.com/) - AUTOMATED BROWSER TESTING WITH SELENIUM 2 WEBDRIVER – MADE SIMPLE + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! diff --git a/qa-cypress/javascript-test-automation.md b/qa-cypress/javascript-test-automation.md new file mode 100644 index 0000000..746eb54 --- /dev/null +++ b/qa-cypress/javascript-test-automation.md @@ -0,0 +1,231 @@ +# JavaScript test automation + +A comprehensive curated list of JavaScript test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on JavaScript. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [xUnit frameworks](#xunit-frameworks) +- [TDD \ ATTD \ BDD](#tdd--atdd--bdd) +- [Mock frameworks](#mock-frameworks) +- [Code Analysis](#code-analysis) +- [Web UI test automation](#web-ui-test-automation) +- [API automation](#api-automation) +- [Mobile test automation](#mobile-test-automation) +- [Windows UI test automation](#windows-ui-test-automation) +- [Unix \ Linux UI test automation](#unix--linux-ui-test-automation) +- [MacOS UI test automation](#macos-ui-test-automation) +- [Virtual environments](#virtual-environments) +- [Performance & stress & load](#performance--stress--load) +- [Security checking](#security-checking) +- [Continuous Integration](#continuous-integration) +- [Reporting](#reporting) +- [Data-Driven Testing](#data-driven-testing) +- [Documentation generation](#documentation-generation) +- [Editors, IDE and consoles](#editors-ide-consoles) +- [Useful libs](#useful-libs) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## xUnit frameworks + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## TDD \ ATDD \ BDD + +- BDD/TDD + * [MochaJS](http://mochajs.org/) - feature-rich JavaScript test framework running on node.js and the browser. + * [Jasmine](http://jasmine.github.io/) - Behavior Driven Development testing framework for JavaScript. It does not rely on browsers, DOM, or any JavaScript framework. Thus it's suited for websites, Node.js projects, or anywhere that JavaScript can run. + * [Intern](https://theintern.github.io/) - is a complete test stack for JavaScript designed to help you write and run consistent, high-quality test cases for your JavaScript libraries and applications. It can be used to test any JavaScript code. Its functional testing capabilities can even be used to test non-JavaScript Web and mobile apps, if you really want. + * [Chai](http://chaijs.com/) - Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework + * [Chakram](http://dareid.github.io/chakram/) - Chakram is a REST API testing framework offering a BDD testing style and fully exploiting promises +- BDD + * [CucumberJS](https://github.com/cucumber/cucumber-js) - Cucumber is a tool for running automated tests written in plain language.Cucumber.js is the JavaScript implementation of Cucumber and runs on both Node.js and modern web browsers. +- Runners + * [Karma](http://mochajs.org/) - test runner for making TDD much easier by pre-build test environments. + * [Wallaby.js](https://wallabyjs.com/) - Wallaby.js runs your JavaScript tests immediately as you type and displays execution results in your code editor. It also provides live test execution and code coverage reports. + * [Jest](https://facebook.github.io/jest/) - Jest is used by Facebook to test all JavaScript code including React applications. One of Jest's philosophies is to provide an integrated "zero-configuration" experience. We observed that when engineers are provided with ready-to-use tools, they end up writing more tests, which in turn results in more stable and healthy code bases. + * [GlaceJS](https://glacejs.github.io/glace-core) - quick-start functional testing framework based on [mocha](http://mochajs.org/) and extensible with [plugins](https://github.com/glacejs). + * [Apickli](https://github.com/apickli/apickli) - REST API integration testing framework based on cucumber.js + * [Mocha Parallel Tests](https://github.com/mocha-parallel/mocha-parallel-tests) - mocha-parallel-tests is a test runner for tests written with mocha testing framework which allows you to run them in parallel. + * [Tupe](https://github.com/jl-/tupe) - A generic unit-testing runner for front-end built on puppeteer. + * [AVA](https://github.com/avajs/ava) - 🚀 A test runner which takes advantage of NodeJS's asynchronous nature to parallelize IO, and run tests concurrently. + * [Gauge](https://github.com/getgauge/gauge) - A test runner for test specifications written in Markdown and implementations in JavaScript. + +## Mock frameworks +* [Sinon.JS](http://sinonjs.org/) - Standalone test spies, stubs and mocks for JavaScript. +No dependencies, works with any unit testing framework. +* [JSMockito](http://jsmockito.org/) - JsMockito is a JavaScript stub/mock framework heavily inspired by java's Mockito. +* [apimocker](https://github.com/gstroup/apimocker) - This is a node.js module to run a simple http server, which can serve up mock service responses. Responses can be JSON or XML to simulate REST or SOAP services. +* [rewire](https://github.com/jhnns/rewire) - Easy monkey-patching lib for `node.js` unit tests, which allows to inject mocks for other modules or globals like `process`, inspect private variables, override variables within the module. + +## Code analysis +* [ESLint](http://eslint.org/) - Pluggable JavaScript linting tool. Custom rules can be added to extend the existing functionality. +* [HintJS](http://jshint.com/) - Community driving js code analysis tool supported by twitter, facebook, wiki, jquery, mozilla, yahoo and others. +* [JsLint](http://www.jslint.com/) - JavaScript syntax checker and validator. + +## Web UI test automation +* [WebdriverJS](https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs) - Nodejs webdriver language bindings official implementation from authors of selenium, includes only basic features and commands. Uses Control Flow to syncrhonize async actions. +* [WebdriverIO](http://webdriver.io/) - Nodejs webdriver language bindings unofficial implementation. Has own handling of async actions using Fibers and rich set of features +* [Protractor](http://www.protractortest.org/#/) - End-to-end test framework for Angular applications, comes with JasmineWD included, and built on top of WebdriverJS +* [CodeceptJS](http://codecept.io/) - Supercharged end 2 end testing for NodeJS +* [Nightwatch.js](http://nightwatchjs.org/) - Easy to use Node.js based End-to-End (E2E) testing solution for browser based apps and websites. +* [Dalek.js](http://dalekjs.com/) - Automated cross browser testing with JavaScript. +* [Nemo](http://nemo.js.org/) - Nemo provides a simple way to add selenium automation to your NodeJS web projects. With a powerful configuration ability provided by krakenjs/confit, and plugin architecture, Nemo is flexible enough to handle any browser/device automation need. +* [Frisby](http://frisbyjs.com/) - Is a REST API testing framework built on node.js and Jasmine that makes testing API endpoints easy, fast, and fun. +* [TestCafe](https://devexpress.github.io/testcafe/) - Automated browser testing for the modern web development stack. +* [Nightmare](http://www.nightmarejs.org/) - A high-level browser automation library. +* [Gemini](https://gemini-testing.github.io) - Is an open-source utility for automating visual regression testing of web pages. Gemini takes a screenshot of elements on a page and compares it with baseline images of these elements. If the images don't match, the differences are shown in a report. (Deperecated in favor of Hermione) +* [Hermione](https://github.com/gemini-testing/hermione#hermione) - Is the utility for integration testing of web pages using [WebdriverIO](http://webdriver.io/) and [Mocha](https://mochajs.org). +* [Gremlins.js](https://github.com/marmelab/gremlins.js) - gremlins.js is a monkey testing library written in JavaScript, for Node.js and the browser. Use it to check the robustness of web applications by unleashing a horde of undisciplined gremlins. +* [Puppeteer](https://github.com/GoogleChrome/puppeteer) - Puppeteer is a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome. Built with <3 by the Chrome team. +* [Playwright](https://github.com/microsoft/playwright) - Playwright is a Node library to automate the Chromium, WebKit and Firefox browsers with a single API. It enables cross-browser web automation that is ever-green, capable, reliable and fast. +* [Chromeless](https://github.com/graphcool/chromeless) - Works with AWS Lambda to deploy parallel testing in a serverless setup. Compared to incumbents, API is basic for now but it’s trending like a rocket now. Contributors and maintainers can shape it into a great tool. +* [Chrominator](https://github.com/jesg/chrominator) - Made by PhantomJS GhostDriver maintainer so the API is extensive. It covers many edge cases that users expect from mature headless browsers frameworks such as NightmareJS/Electron or CasperJS/PhantomJS. +* [Chromy](https://github.com/OnetapInc/chromy) - Possibly the earliest that shipped to market, releasing in early May a thoughtful set of high-level API that works with headless Chrome. Rapid improvements since then and actively explored by BackstopJS maintainer. +* [Navalia](https://github.com/joelgriffith/navalia) - Pretty refreshing approach by supporting the popular GraphQL language, which is normally meant for querying API endpoints. Looks to have a mature API set and most importantly it is well-documented. +* [Lambdium](https://github.com/smithclay/lambdium) - Deployments on AWS Lambda using Selenium WebDriver. This is a very interesting proposition, because for the existing large Selenium code base in market, it has the potential for very easy migration to this tool. +* [GhostJS](https://github.com/KevinGrandon/ghostjs) - Interesting project base on modern JavaScript that works on a multitude of browsers such as Chrome, Firefox, PhantomJS, plus expressive API. Released some time back, development seems to be picking up speed. +* [CasperJS](http://casperjs.org/) - CasperJS is a navigation scripting & testing utility for PhantomJS and SlimerJS (still experimental). It eases the process of defining a full navigation scenario and provides useful high-level functions, methods & syntactic sugar for doing common tasks +* [Mailosaur](https://github.com/mailosaur/mailosaur-node) - Node.js client for email testing/automation via Mailosaur. +* [Cypress.io](https://github.com/cypress-io/cypress) - Fast, easy and reliable testing for anything that runs in a browser. Runs on Mac, Linux, Windows and any CI. +* [Differencify](https://github.com/NimaSoroush/differencify) - A library for visual regression testing using [Puppeteer](https://github.com/GoogleChrome/puppeteer). +* [Serenity/JS](https://serenity-js.org/) - Serenity/JS makes acceptance and regression testing of modern web apps faster, more collaborative and easier to scale. +* [Chimpy.js](https://thebrainfamily.github.io/chimpy/) - An awesome developer-centric experience to writing tests with realtime feedback using Mocha, Jasmine or Cucumber.js +* [Sakuli](https://sakuli.io) - An awesome Node.js based End-to-End (E2E) testing solution which combines Selenium based web testing with full desktop automation. It's custom DSL allows to write complex scenarios which seamlessly switch between the browser and your desktop. It's built-in monitoring support allows to measure performance data from a user perspective. +* [Buster.js](https://busterjs.readthedocs.io/en/latest) - A browser JavaScript/Node.js testing toolkit. +* [page-object](https://github.com/vitalets/page-object) - A Page Object pattern implementation library for JavaScript. +* [BackstopJS](https://github.com/garris/BackstopJS) - BackstopJS automates visual regression testing of your responsive web UI by comparing DOM screenshots over time. +* [Taiko](https://github.com/getgauge/Taiko) - A Node.js library to test and automate chromium browsers. +* [QA Wolf](https://github.com/qawolf/qawolf) - A Node.js library to create browser tests 10x faster with Puppeteer and Jest. + + +## API automation +* [SuperTest](https://github.com/visionmedia/supertest) - Super-agent driven library for testing node.js HTTP servers using a fluent API. +* [Frisby](https://github.com/vlucas/frisby) - Frisby is a REST API testing framework built on Jest that makes testing API endpoints easy, fast, and fun. +* [Just-API](https://github.com/kiranz/just-api) - Declarative testing framework for REST, GraphQL APIs. +* [PactumJS](https://pactumjs.github.io) - REST API Testing Tool for all levels in a Test Pyramid. + +## Mobile test automation +* [WebdriverIO's Appium implementation](https://github.com/webdriverio/appium-boilerplate/) - nodejs bindings implemeting Appium commands. +* [Macaca](https://macacajs.com/) - Solution for Automation Test with Ease. Both Mobile, Desktop Platforms Supported, native, Hybrid, Mobile Web Multi-applications Supported, Command line tools & CI Solution provided. +* [Detox](https://github.com/wix/Detox) - Gray Box End-to-End Testing and Automation Framework for Mobile Apps +* [Cavy](https://github.com/pixielabs/cavy) - Cavy is a cross-platform integration test framework for React Native, by Pixie Labs. + +## Windows UI test automation +* [RobotJS](https://robotjs.io/) - The Node.js Desktop Automation Library +* [SikuliX](http://www.sikulix.com/) - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. +* [Sakuli](https://sakuli.io) - An awesome Node.js based End-to-End (E2E) testing solution which combines Selenium based web testing with full desktop automation. It's custom DSL allows to write complex scenarios which seamlessly switch between the browser and your desktop. It's built-in monitoring support allows to measure performance data from a user perspective. + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Unix \ Linux UI test automation +* [SikuliX](http://www.sikulix.com/) - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. +* [Sakuli](https://sakuli.io) - An awesome Node.js based End-to-End (E2E) testing solution which combines Selenium based web testing with full desktop automation. It's custom DSL allows to write complex scenarios which seamlessly switch between the browser and your desktop. It's built-in monitoring support allows to measure performance data from a user perspective. + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## MacOS UI test automation +* [SikuliX](http://www.sikulix.com/) - SikuliX automates anything you see on the screen of your desktop computer running Windows, Mac or some Linux/Unix. It uses image recognition powered by OpenCV to identify and control GUI components. This is handy in cases when there is no easy access to a GUI's internals or the source code of the application or web page you want to act on. +* [Sakuli](https://sakuli.io) - An awesome Node.js based End-to-End (E2E) testing solution which combines Selenium based web testing with full desktop automation. It's custom DSL allows to write complex scenarios which seamlessly switch between the browser and your desktop. It's built-in monitoring support allows to measure performance data from a user perspective. + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Virtual environments + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Performance & stress & load +* [k6](https://github.com/loadimpact/k6) - Like unit testing, for performance. A modern load testing tool, using Go and JavaScript. +* [artillery](https://artillery.io/) - Artillery is a modern, powerful & easy-to-use load testing toolkit. Use it to build scalable applications that stay performant & resilient under high load. +* [predator](https://predator.dev) - Distributed performance testing platform for APIs, using [artillery](https://artillery.io/) as its load engine. + +## Security checking +* [npm vulnerability scanner](https://github.com/ellerbrock/travis-vulnerability-scanner) - Vulnerability Scanner for npm Modules with Travis CI and the Node Security Platform CLI Tool. + +## Continuous Integration +* [Strider CD](http://strider-cd.github.io/) - Open Source Continuous Deployment / Continuous Integration platform written in NodeJS. +* [Gulp](http://gulpjs.com/) - Streaming building system/task runner in nodejs. Based on streaming data flow conception (https://github.com/substack/stream-handbook). +* [Grunt](https://gruntjs.com/) - Streaming building system/task runner in nodejs. Can't do anything without plugins, but there are many of them for all kinds of purposes. + +## Reporting +* [Testomat.io](https://testomat.io/) - test management and reporting system for javascript automated tests +* [ReportPortal.io](http://ReportPortal.io) - powerfull results management and analytics for test automation reports. Powered with Machine Learning. Real-time integration and reports, visualization of trends and statistics, custom dashboards and widgets, gives you real visibility into the state of test automation. Integral part of CI/CD with TA and Continous Testing. Server-client application, can be used for any type of automated tests, with huge list of [available integrations](https://github.com/reportportal?utf8=✓&q=agent-). Free and OpenSourced, [GitHub link](https://github.com/reportportal). +* [Istanbul](https://github.com/gotwarlost/istanbul) - JS coverage tool for unit tests, server side functional tests and browser tests. +* [Blanket](http://blanketjs.org/) - JavaScript code coverage library that works both in-browser and with nodejs. +* [Mochawesome](https://github.com/adamgruber/mochawesome) - reporter for Mocha that generates a full fledged HTML/CSS report that helps visualize your test suites +* [Allure](http://allure.qatools.ru/) - a universal reporter for any testing framework. Supports [Mocha](https://docs.qameta.io/allure/2.0/#_mocha) and [Jasmine (and Protractor)](https://docs.qameta.io/allure/2.0/#_jasmine) +* [cucumber-html-reporter](https://www.npmjs.com/package/cucumber-html-reporter) - Provide Cucumber JSON report file created from your framework and this module will create pretty HTML reports. Choose your best suitable HTML theme and dashboard on your CI with available HTML reporter plugins. +* [Coveralls GitHub Action](https://github.com/gavinhenderson/coveralls-action) - A GitHub Action that will automatically report your latest test results to coveralls + + + +## Data-Driven Testing +* [test-each](https://github.com/ehmicky/test-each) - Repeat tests using different inputs. + +## Documentation generation +* [JSdoc3](http://usejsdoc.org/) - An API documentation generator for JavaScript +* [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown) - Generates markdown API documentation from jsdoc annotated source code. +* [Docco](http://jashkenas.github.io/docco/) - Docco is a quick-and-dirty documentation generator, written in Literate CoffeeScript +* [MrDoc](https://mr-doc.github.io/mr-doc/) - A personal source documenter +* [YUIDocs](http://yui.github.io/yuidoc/) - YUI's JavaScript Documentation engine +* [ESDoc](https://esdoc.org/) - Configurble documentation generator with good ES6/ES7 support + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Editors, IDE, consoles +* [WebStorm](https://www.jetbrains.com/webstorm/) - PhpStorm without php support. One of thee most powerfull JS/HTML IDE. +* [Brackets](http://brackets.io/) - Open source newly released IDE for JS/HTML from Adobe. +* [Komodo](https://www.activestate.com/komodo-ide) - Cross platform IDE for multiple languages, strongly supporting JS. +* [Cloud9](https://c9.io/) - Cloud based nodejs IDE supporting multiple features, eg. pair programming, preview in a new browser, built-in image editor, terminal and many others +* [Visual Studio Code](https://code.visualstudio.com/) - Cross platform editor from Microsoft, with integrated Node.js debugger and hooks for taskrunners such as Gulp +* [Atom](https://atom.io) - Full-featured, right out of the box text editor that's modern, approachable, yet hackable to the core from Github + +## Useful libs +* [faker](https://www.npmjs.com/package/faker) - generate massive amounts of fake data in the browser and node.js +* [interfake](https://github.com/basicallydan/interfake) - Fake APIs for prototypes & automated tests. +* [node-replay](https://github.com/assaf/node-replay) - When API testing slows you down: record and replay HTTP responses like a boss + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + + +# Resources +Where to discover new libraries, information, tools, etc. + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies +* [Testomat.io](https://testomat.io/) - test management and reporting system for javascript automated tests + + +## Articles +* [js-testrunners-bench](https://github.com/vitalets/js-testrunners-bench) - Performance comparison of the most popular JavaScript test-runners. + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! diff --git a/qa-cypress/kotlin-test-automation.md b/qa-cypress/kotlin-test-automation.md new file mode 100644 index 0000000..cfd89d2 --- /dev/null +++ b/qa-cypress/kotlin-test-automation.md @@ -0,0 +1,88 @@ +# Kotlin test automation + +A comprehensive curated list of Kotlin test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on Kotlin. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [Web UI test automation](#web-ui-test-automation) +- [TDD \ ATTD \ BDD](#tdd--atdd--bdd) +- [API test automation](#api-test-automation) +- [Editors, IDE and consoles](#editors-ide-consoles) +- [Useful libs](#useful-libs) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## Web UI test automation + +- libraries + * [Selenium](http://docs.seleniumhq.org/) - Portable software testing framework for web applications. +- frameworks and wrappers + * [Balin](https://github.com/EPadronU/balin) - Balin is a browser automation library for Kotlin. It's basically a Selenium-WebDriver wrapper library inspired by Geb. + * [SeleniumBuilder](https://github.com/qwertukg/SeleniumBuilder) - Kotlin DSL for Selenium 2.0. Provide a possibility to write tests in Kotlin type-safe builders style + * [kirk](https://github.com/SergeyPirogov/kirk) - Kirk is a browser automation library for Kotlin. It's basically a Selenium-WebDriver wrapper library inspired by Selenide and Geb. + +## TDD \ ATTD \ BDD + +* [Kukumber](https://github.com/mlvandijk/kukumber-skeleton) - Getting started with Cucumber in Kotlin. +* [Spek](https://www.spekframework.org/) - Specification testing framework for Kotlin. +* [Kotest](https://github.com/kotest/kotest) - Kotest(previously known as kotlintest) is a powerful, elegant and flexible test framework for Kotlin. + +## Build Tools +* [Kobalt](http://beust.com/kobalt/home/index.html) - Kotlin-based build system for the JVM. +* [Gradle](https://gradle.org/) - Gradle is an open source build automation system. Gradle can automate the building, testing, publishing, deployment and more of software packages or other types of projects such as generated static websites, generated documentation or indeed anything else. + - [gradle-kotlin-dsl](https://docs.gradle.org/current/userguide/kotlin_dsl.html) - Gradle’s Kotlin DSL provides an alternative way to write Gradle build scripts in Kotlin. + +## API test automation + +* [hikaku](https://github.com/codecentric/hikaku) - A library that tests if the implementation of a REST-API meets its specification. +* [Fuel](https://github.com/kittinunf/fuel) - The easiest HTTP networking library for Kotlin/Android. + +## Editors, IDE, consoles + +* [IntelliJ IDEA](https://www.jetbrains.com/idea/) - A free and open-source IDE for Kotlin, Java, Groovy, Scala and Android development. + +## Useful libs +* [Hamkrest](https://github.com/npryce/hamkrest) - Kotlin implementation of popular Java library. +* [MockK](https://mockk.io/) - Pure mocking library for Kotlin. +* [mockito-kotlin](https://github.com/nhaarman/mockito-kotlin) - Mockito extension for Kotlin. +* [Kakao](https://github.com/agoda-com/Kakao) Nice and simple DSL for Espresso in Kotlin. +* [Strikt](https://strikt.io/) is an assertion library for Kotlin intended for use with a test runner such as JUnit or Spek. + +# Resources + +- + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies +* [superkotlin.com](https://superkotlin.com/) - SuperKotlin is the website dedicated to the Kotlin language and its community. It contains tutorials, guides, reviews of libraries, interviews to developers. +* [kotlin.link](https://kotlin.link/) - Kotlin awesome list + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! diff --git a/qa-cypress/mobile-test-automation.md b/qa-cypress/mobile-test-automation.md new file mode 100644 index 0000000..f249398 --- /dev/null +++ b/qa-cypress/mobile-test-automation.md @@ -0,0 +1,92 @@ +# Mobile, Tablet, TV test automation + +A comprehensive curated list of Mobile, Tablet, TV test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [Cross-platform tools](#cross-platform-tools) +- [Android](#android) +- [iOS](#ios) +- [Environment](#environment) + +Make a pull request to add new chapter + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## Cross-platform tools +* [Appium](http://appium.io/) - An open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS and Android apps using the WebDriver protocol. + * [Appium Desktop](https://github.com/appium/appium-desktop) - Appium Desktop is an open source app for Mac, Windows, and Linux which gives you the power of the Appium automation server in a beautiful and flexible UI. +* [Winium.StoreApps](https://github.com/2gis/Winium.StoreApps/) - An open source test automation tool for Windows Store apps, tested on emulators. It is Selenium Remote WebDriver implementation. +* [Macaca](https://macacajs.com/) - Solution for Automation Test with Ease. Both Mobile, Desktop Platforms Supported, native, Hybrid, Mobile Web Multi-applications Supported, Command line tools & CI Solution provided. +* [Katalon](https://www.katalon.com/) - An all-in-one test automation solution + +## Android +* [Robotium](https://code.google.com/p/robotium/) - An Android test automation framework that fully supports native and hybrid applications. Robotium makes it easy to write powerful and robust automatic black-box UI tests for Android applications. With the support of Robotium, test case developers can write function, system and user acceptance test scenarios, spanning multiple Android activities. +* [UIautomator](http://developer.android.com/tools/help/uiautomator/index.html) - Provides an efficient way to test UIs. It creates automated functional test cases that can be executed against apps on real Android devices and emulators. It includes a viewer, which is a GUI tool to scan and analyze the UI components of an Android app. +* [Espresso](https://code.google.com/p/android-test-kit/wiki/Espresso) - A pretty new test automation framework that got open-sourced just last year, making it available for developers and testers to hammer out their UIs. Espresso has an API that is small, predictable, easy to learn and built on top of the Android instrumentation framework. You can quickly write concise and reliable Android UI tests with it. + * [Barista](https://github.com/AdevintaSpain/Barista) Barista makes developing UI test faster, easier and more predictable. Built on top of Espresso, it provides a simple and discoverable API, removing most of the boilerplate and verbosity of common Espresso tasks. + * [Kakao](https://github.com/agoda-com/Kakao) Nice and simple DSL for Espresso in Kotlin + * [Spoon](https://github.com/square/spoon) - Distributing instrumentation tests to all your Androids. + * [Composer](https://github.com/gojuno/composer) Composer is a modern reactive replacement for square/spoon + * [Flank](https://github.com/Flank/flank) Flank is a massively parallel Android and iOS test runner for Firebase Test Lab. + * [Kaspresso](https://github.com/KasperskyLab/Kaspresso) Kaspresso is a great framework for UI testing. Based on Espresso and UI Automator, Kaspresso provides a wide range of additional amazing features. + +## iOS +* [EarlGrey](https://github.com/google/EarlGrey) is a native iOS UI automation test framework that enables you to write clear, concise tests. With the EarlGrey framework, you have access to enhanced synchronization features. EarlGrey automatically synchronizes with the UI, network requests, and various queues; but still allows you to manually implement customized timings, if needed. +* [Bluepill](https://github.com/linkedin/bluepill) is a reliable iOS testing tool that runs UI tests using multiple simulators on a single machine. +* [KIF](https://github.com/kif-framework/KIF) is an iOS integration test framework. It allows for easy automation of iOS apps by leveraging the accessibility attributes that the OS makes available for those with visual disabilities. +* [XCUITest](https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html) is the automation framework that ships with Apple's XCode. The XCTest framework lets iOS app developers create and run unit tests, performance tests and UI tests for XCode projects. + * [Flank](https://github.com/Flank/flank) Flank is a massively parallel Android and iOS test runner for Firebase Test Lab. + * [Cucumberish](https://github.com/Ahmed-Ali/Cucumberish) Cucumberish is a test automation framework for Behaviour Driven Development (BDD). It is inspired by the amazing way of writing automated test cases introduced originally in Cucumber using the Gherkin language. + +## Environment + +* [Hive CI](http://bbc.github.io/hive-ci/) is a CI system built around devices. Connect your physical devices to a hive and run your tests on the same platforms as your users +* [STF](https://github.com/openstf/stf) - STF (or Smartphone Test Farm) is a web application for debugging smartphones, smartwatches and other gadgets remotely, from the comfort of your browser. +* [Genymotion](https://www.genymotion.com/) - Genymotion is one of the best free Android emulators on the market. The software, which is both powerful and easy to use, will be of interest to the naturally curious, as well as for Android developers. +* [SauceLabs](https://saucelabs.com/) - Provides the world's largest automation cloud for testing web and native/hybrid mobile applications. Founded by the original creator of Selenium, Sauce Labs helps companies accelerate software development cycles, improve application quality and deploy with confidence across 450+ browser / OS platforms, including Windows, Linux, iOS, Android & Mac OS X. +* [Browserstack](http://www.browserstack.com/) - Online tool which allows users to test their website from different browsers. The list of supported browsers includes Google Chrome, Internet Explorer, Opera and Safari. This even includes different browser versions as well including the beta versions as well. With Browserstack, you can test every aspect of your website like flash, CSS, Java and more. +* [Perfecto](https://www.perfecto.io/) Perfecto Is the Leading Testing Platform for Web & Mobile Apps +* [Kobiton](https://kobiton.com/) The only AI-infused real device testing platform built to accelerate your app delivery timeline from development to release. + +## Continuous Integration + +* [Bitrise](https://www.bitrise.io/) Build better mobile applications, faster +* [CircleCI](https://circleci.com/) Code. Commit. Done. +* [Jenkins](http://jenkins-ci.org/) - Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. + +# Resources +Where to discover new libraries, information, tools, etc. + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! diff --git a/qa-cypress/php-test-automation.md b/qa-cypress/php-test-automation.md new file mode 100644 index 0000000..bab1c3f --- /dev/null +++ b/qa-cypress/php-test-automation.md @@ -0,0 +1,165 @@ +# PHP test automation + +A comprehensive curated list of PHP test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on PHP. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [xUnit frameworks](#xunit-frameworks) +- [TDD \ ATTD \ BDD](#tdd--atdd--bdd) +- [Code Analysis](#code-analysis) +- [Web UI test automation](#web-ui-test-automation) +- [Mobile test automation](#mobile-test-automation) +- [Windows UI test automation](#windows-ui-test-automation) +- [Unix \ Linux UI test automation](#unix--linux-ui-test-automation) +- [MacOS UI test automation](#macos-ui-test-automation) +- [Virtual environments](#virtual-environments) +- [Performance & stress & load](#performance--stress--load) +- [Security checking](#security-checking) +- [Continuous Integration](#continuous-integration) +- [Reporting](#reporting) +- [Documentation generation](#documentation-generation) +- [Editors, IDE and consoles](#editors-ide-consoles) +- [Useful libs](#useful-libs) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## xUnit frameworks + +* [PHPUnit](https://phpunit.de/) - Most known testing frameworks based on xUnit architecture. Full line coverage, pathc coverage, extended reports and even hhvm are pre-built. +* [Atoum](https://github.com/atoum/atoum) - Lightweight PHP unit testing framework with simple report generation. +* [Infection](https://infection.github.io/) - AST based PHP Mutation Testing Framework. + +## Mock frameworks + +* [php-vfs](http://thornag.github.io/php-vfs/) - Virtual filesystem provider +* [adlawson/vfs](https://github.com/adlawson/php-vfs) - Another virtual filesystem provider +* [vfsStream](https://github.com/mikey179/vfsStream) - A stream wrapper for a virtual file system that may be helpful in unit tests to mock the real file system. It can be used with any unit test framework, like PHPUnit or SimpleTest. +* [Mockery](https://github.com/padraic/mockery) - Objects mocking and method call assertions framework +* [Prophecy](https://github.com/phpspec/prophecy) - Object mocking framework for PHP. +* [Phake](https://github.com/mlively/Phake) - Mock php objects, test doubles and method stubs, inspired by Mockito for Java. +* [Codeception's AspectMock](https://github.com/Codeception/AspectMock) - AspectMock allows you to stub and mock practically anything in your PHP code. + +## TDD \ ATDD \ BDD + +- BDD + * [Behat](https://github.com/Behat/Behat) - BDD framework for PHP to help you test business expectations. + * [Codeception](http://codeception.com) - BDD-styled PHP testing framework; Selenium WebDriver integration, Symfony2, Laravel4, Yii, Phalcon, Zend Framework support; PageObjects and StepObjects included, BDD-style readable tests, powered by PHPUnit, API testing: REST,SOAP,XML-RPC; Facebook API testing; Data Cleanup; HTML, XML, TAP, JSON reports; CodeCoverage and Remote CodeCoverage; Parallel Execution, etc + * [phpspec](http://www.phpspec.net/en/stable/) - Tool which can help you write clean and working PHP code using behaviour driven development or BDD. + +## Code analysis + +* [PHP Mess Detector](http://phpmd.org/) - Static analysis tool that finds long method names, methods with excessive cyclomatic complexity, etc. +* [PHP Code Sniffer](https://github.com/squizlabs/PHP_CodeSniffer) - Standard/convention violation checker +* [PHP Dead Code Detector](https://github.com/sebastianbergmann/phpdcd) - Unused code locator +* [PHP DocBlock Checker](https://github.com/Block8/php-docblock-checker) - Simple tool that checks focblock presence +* [PHP Parallel Lint](https://github.com/php-parallel-lint/PHP-Parallel-Lint) - Simple lint checker +* [PDepend](http://pdepend.org/) - Complex metrics analyzer +* [PHP Lines Of Code](https://github.com/sebastianbergmann/phploc) - Project sizing analyzer + +## Web UI test automation + +* [Facebook php-webdriver](https://github.com/facebook/php-webdriver) - Facebook supported PHP webdriver bindings +* [Element-34 php-webdriver](https://github.com/facebook/php-webdriver) - Fork of Facebook PHP webdriver with WebDriverWait implementation and available via PEAR +* [BeHat's Mink](http://mink.behat.org/en/latest/) - An open source browser controller/emulator for web applications +* [saunter.php](https://github.com/Element-34/saunter.php) - Selenium Page Objects implementation in PHP +* [Mailosaur](https://github.com/mailosaur/mailosaur-php) - PHP client for email testing/automation via Mailosaur. + +## Mobile test automation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Windows UI test automation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Unix \ Linux UI test automation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## MacOS UI test automation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Virtual environments + +* [Vagrant](https://vagrantup.com) - Configuration-driven virtual machines +* [Docker](https://www.docker.com/) - Ultimate containerization tool + +## Performance & stress & load + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Security checking + +* [SensioLabs Security Checker](https://github.com/sensiolabs/security-checker) - Command line tool that checks if +your application uses dependencies with known security vulnerabilities. It uses the [SensioLabs Security Check Web +service](http://security.sensiolabs.org/) and the [Security Advisories Database](https://github.com/FriendsOfPHP/security-advisories). + +## Continuous Integration + +* [PHPCI](https://www.phptesting.org/) - Free and open source continuous integration tool specifically designed for PHP. +* [PHP Censor](https://github.com/php-censor/php-censor) - Open source self-hosted continuous integration server for PHP projects. +* [Jenkins PHP project template](http://jenkins-php.org/) - The goal of this project is to provide a standard template for Jenkins jobs for PHP projects. +* [Sismo](https://sismo.symfony.com/) - Unlike more "advanced" Continuous Integration Servers (like Jenkins), Sismo does not try to do more than getting your code, running your tests, and send you notifications. + +## Reporting +* [Testomat.io](https://testomat.io/) - test management and reporting system for php automated tests +* [ReportPortal.io](http://ReportPortal.io) - [BeHat](https://github.com/reportportal/agent-php-Behat) powerfull results management and analytics for test automation reports. Powered with Machine Learning. Real-time integration and reports, visualization of trends and statistics, custom dashboards and widgets, gives you real visibility into the state of test automation. Integral part of CI/CD with TA and Continous Testing. Server-client application, can be used for any type of automated tests. Free and OpenSourced, [GitHub link](https://github.com/reportportal). +* [Allure Framework](http://allure.qatools.ru/) - Allure Framework is a framework that provides rich and +beautiful reports with extended possibilities like screenshot capturing. Allure +provides plugins for [Codeception](https://github.com/allure-framework/allure-codeception) +and [PHPUnit](https://github.com/allure-framework/allure-phpunit). + +## Documentation generation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Editors, IDE, consoles + +* [PhpStorm](https://www.jetbrains.com/phpstorm/) - PHP IDE with highlighting, code analyzer, debugging features, all kinds of repositories and many others. +* [ZendStudio](http://www.zend.com/en/products/studio) - PHP IDE from PHP creators' company, multiply features + different js frameworks supports. +* [NetBeans](https://netbeans.org/features/php/) - Open source free PHP IDE. +* [Aptana](http://www.aptana.com/) - Another free IDE. + +## Useful libs + +* [PHP CS Fixer](http://cs.sensiolabs.org/) - tool for automatic convention violations correction + +# Resources + +Where to discover new libraries, information, tools, etc. + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies +* [PHP QA Toolchain](http://phpqatools.org/) - website with reference of most frequently used QA tools +* [Testomat.io](https://testomat.io/) - test management and reporting system for php automated tests + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! diff --git a/qa-cypress/python-test-automation.md b/qa-cypress/python-test-automation.md new file mode 100644 index 0000000..8d94058 --- /dev/null +++ b/qa-cypress/python-test-automation.md @@ -0,0 +1,343 @@ +# Python test automation + +A comprehensive curated list of python test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on python. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [xUnit frameworks](#xunit-frameworks) +- [TDD \ ATTD \ BDD](#tdd--atdd--bdd) +- [Test Data manipulation](#test-data-manipulation) +- [Code Analysis](#code-analysis) +- [Web UI test automation](#web-ui-test-automation) +- [Mobile test automation](#mobile-test-automation) +- [Windows UI test automation](#windows-ui-test-automation) +- [Unix \ Linux UI test automation](#unix--linux-ui-test-automation) +- [MacOS UI test automation](#macos-ui-test-automation) +- [REST API Testing](#rest-api-testing) +- [Virtual environments](#virtual-environments) +- [Performance & stress & load](#performance--stress--load) +- [Security checking](#security-checking) +- [Continuous Integration](#continuous-integration) +- [Reporting](#reporting) +- [Documentation generation](#documentation-generation) +- [Editors, IDE and consoles](#editors-ide-consoles) +- [Useful libs](#useful-libs) + +Also: + +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## xUnit frameworks + +- frameworks + * [unittest](https://docs.python.org/library/unittest.html) - is a library to make unit testing distributed with python out of the box. + * [unittest2](https://pypi.python.org/pypi/unittest2) - is a backport of the new features added to the unittest testing framework in Python 2.7 and onwards. + * [pytest](http://pytest.org/) - is a mature full-featured Python testing tool that helps you write better programs. + * [plugincompat](http://plugincompat.herokuapp.com/) - Test execution and compatibility checks for pytest plugins + * [test-junkie](https://github.com/ArturSpirin/test_junkie) - Highly configurable modern testing framework. + * [nosetests](https://nose.readthedocs.org/en/latest/) - is a nicer testing for python. + * [slash](https://github.com/slash-testing/slash) - is a testing framework written in Python. + * [lemoncheesecake](https://github.com/lemoncheesecake/lemoncheesecake) - is a Python framework intended to functional testing, it provides fixtures, matchers, test organization through test suites hierarchy and metadata (test/suite name, description, tags, properties, links), rich reporting features and various report formats (JSON, XML, HTML, Junit) +- extensions + * [proboscis](https://pythonhosted.org/proboscis/) - is a Python test framework that extends Python’s built-in unittest module and Nose with features from TestNG. + * [grail](https://github.com/wgnet/grail) - is a library which allows test script creation based on steps. + * [testify](https://github.com/Yelp/Testify/) - unit test framework, provides Enhanced test fixture setup, Split test suites into buckets for easy parallelization, PEP8 naming conventions & Fancy color test runner with lots of logging / reporting option. + * [trial](http://twistedmatrix.com/trac/wiki/TwistedTrial) - Extension of unittest to support writing asynchronous unit tests using Deferreds and new result types ('skip' and 'todo'). Includes a command-line program that does test discovery and integrates with doctest and coverage. + * [subunit](https://launchpad.net/subunit) - Transparently adds support for running unittest test cases/suites in a separate process : prevents system wide changes by a test destabilising the test runner. It also allows reporting from tests in another process into the unittest framework, giving a single integrated test environment. + * [testresources](https://launchpad.net/testresources) - Provides a mechanism for managing 'resources' - expensive bits of infrastructure - that are needed by multiple tests. Resources are constructed and free on demand, but with an optional TestSuite?, the test run order is optimised to reduce the number of resource constructions and releases needed. Compatible with unittest. + * [testtools](https://launchpad.net/testtools) - Useful extensions to unittest derived from custom extensions by projects such as Twisted and Bazaar. + * [Sancho](https://www.mems-exchange.org/software/DurusWorks/) - Sancho 2.1 runs tests, and provides output for tests that fail; Sancho 2.1 does not count tests passed or failed; targets projects that do not maintain failing tests + * [zope.testing](https://pypi.python.org/pypi/zope.testing) - Powerful test runner that includes support for post-mortem debugging of test failures. Also includes profiling and coverage reporting. This is a standalone package that has no dependencies on Zope and works just fine with projects that don't use Zope. + * [pythoscope](http://pythoscope.org/) - Tool that will automatically, or semi-automatically, generate unit tests for legacy systems written in Python. + * [testlib](http://www.logilab.org/project/logilab-common/) - Gives more power to standard unittest. More assert* methods; support for module level setup/teardown; skip test feature... + * [dutest](https://pypi.python.org/pypi/dutest) - An object oriented interface to retrieve unittest test cases out of doctests. Hides initialization from doctests by allowing setUp and tearDown for each interactive example. Allows control over all the options provided by doctest. Specialized classes allow selective test discovery across a package hierarchy. + * [green](https://github.com/CleanCut/green) - Green is a clean, colorful test runner for Python unit tests. Compare it to nose or trial. + * [ddt](https://github.com/txels/ddt) - Data-Driven tests with unittest + * [pytractor](https://github.com/kpodl/pytractor) is an extension to the Selenium bindings for Python. Its goal is to make testing of angular.js applications easier with Python. + * [stestr](https://github.com/mtreinish/stestr) - A parallel Python test runner built around subunit. + + +## TDD \ ATDD \ BDD + +- BDD + * [behave](https://pypi.python.org/pypi/behave) - BDD tool + * [lettuce](http://lettuce.it/) - BDD tool + * [lettuce-tools](https://github.com/telefonicaid/lettuce-tools) - Lettuce Tools are a set of tools and utilities that extend the lettuce out of the box features fill some of the gaps detected in the projects. + * [contexts](https://github.com/benjamin-hodgson/Contexts) - Descriptive testing for Python. + * [mamba](http://nestorsalceda.github.io/mamba/) - The definitive testing tool for Python. Born under the banner of Behavior Driven Development. + * [pyvows](http://heynemann.github.io/pyvows/) - Asynchronous behaviour driven development for Python. + * [pytest-bdd](https://github.com/pytest-dev/pytest-bdd) - BDD library for the py.test runner + * [pytest-play](https://github.com/pytest-dev/pytest-play) - ATDD pytest plugin that let you automate actions, assertions and test metrics executing plain YAML files. + * [robotframework](http://robotframework.org/) - A generic test automation framework for acceptance testing and acceptance test-driven development (ATDD) + * [awesome-robotframework](https://github.com/fkromer/awesome-robotframework) - A curated list of awesome Robot Framework resources and libraries + * [radish-bdd](https://github.com/radish-bdd/radish) - BDD testing tool with supplements +- Assertions + * [pyshould](https://github.com/drslump/pyshould) - Should style asserts based on pyhamcrest. + * [pyhamcrest](https://github.com/hamcrest/PyHamcrest) - Hamcrest matchers for Python. + * [sure](https://github.com/gabrielfalcao/sure) - A testing library for python with powerful and flexible assertions. + * [assertpy](https://github.com/ActivisionGameScience/assertpy) - Dead simple assertions library for unit testing in Python with a nice fluent API. Supports both Python 2 and 3. +- Mocking + * [mock](https://pypi.python.org/pypi/mock) - A Python Mocking and Patching Library for Testing. + * [Ludibrio](http://github.com/nsigustavo/ludibrio/) - Elegant test doubles framework in Python (mocks, stubs, spy, and dummies). + * [responses](https://github.com/dropbox/responses) - A utility library for mocking out the requests Python library. + * [doublex](https://pypi.python.org/pypi/doublex) - Powerful test doubles framework for Python. + * [freezegun](https://github.com/spulec/freezegun) - Travel through time by mocking the datetime module. + * [httpretty](http://falcao.it/HTTPretty/) - HTTP request mock tool for Python. + * [httmock](https://github.com/patrys/httmock) - A mocking library for requests for Python 2.6+ and 3.2+. + * [pretenders](https://github.com/pretenders/pretenders) - fake servers for testing. + * [mock-server](https://github.com/tomashanacek/mock-server) - Simple mock server for REST and XML-RPC API with admin panel based on tornado. + * [VCR.py](https://github.com/kevin1024/vcrpy) - Automatically mock your HTTP interactions to simplify and speed up testing. + * [model-mmomy](https://github.com/vandersonmota/model_mommy) - Offers a smart way to create fixtures for testing in Django. With a simple and powerful API you can create many objects with a single line of code. + * [django-test-plus](https://github.com/revsys/django-test-plus) - Useful additions to Django's default TestCase. + * [Mockintosh](https://mockintosh.io/) - A mock server generator that's capable to generate RESTful APIs and communicate with the message queues to mimick asynchronous tasks. + + +## Test Data manipulation + +* [faker](http://www.joke2k.net/faker/) - A Python package that generates fake data. +* [fake2db](https://github.com/emirozer/fake2db) - Fake database generator. +* [ForgeryPy](https://pypi.python.org/pypi/ForgeryPy) - An easy to use forged data generator for Python. It's a port of forgery. +* [radar](https://pypi.python.org/pypi/radar) - Generate random datetime / time. +* [robotframework-faker](https://github.com/guykisel/robotframework-faker) - Robot Framework wrapper for faker. +* [hypothesis](https://github.com/DRMacIver/hypothesis) - Library for property based testing in Python, based on the Haskell library Quickcheck. +* [factory_boy](https://github.com/FactoryBoy/factory_boy) - A fixtures replacement based on thoughtbot’s [factory_girl](https://github.com/thoughtbot/factory_girl). +* [fauxfactory](https://github.com/omaciel/fauxfactory) - Random Data Generator +* [mimesis](https://github.com/lk-geimfari/mimesis) - Mimesis is fast and extremely easy to use Python package, which helps generate big volumes of fake data for a variety of purposes in a variety of languages + +## Code analysis + +* [pysonar2](https://github.com/yinwang0/pysonar2) - A type inferencer and indexer for Python. +* [coverage](https://pypi.python.org/pypi/coverage) - Code coverage measurement +* [pycallgraph](https://github.com/gak/pycallgraph) - A library that visualises the flow (call graph) of your Python application. +* [Flake8](https://pypi.python.org/pypi/flake8) - The modular source code checker: pep8, pyflakes and co. +* [pylama](https://pylama.readthedocs.org/) - Code audit tool for Python and JavaScript. +* [Pylint](http://www.pylint.org/) - A source code analyzer. +* [hacking](https://github.com/openstack-dev/hacking) - OpenStack Hacking Style Checks (`flake8` plugins). +* [prospector](https://github.com/landscapeio/prospector) - A tool to analyse Python code and output information about errors, potential problems, convention violations and complexity. +* [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) - The strictest and most opinionated python linter ever! + +## Web UI test automation + +- libraries + * [selenium webdriver](https://pypi.python.org/pypi/selenium) - Browser automation tool. + * [splinter](https://github.com/cobrateam/splinter) - A tool for test web applications with a simple for find elements, form actions, and others browser actions. + * [mechanize](https://pypi.python.org/pypi/mechanize/) - Stateful programmatic web browsing in Python. +- frameworks and wrappers + * [play_selenium](https://github.com/davidemoro/play_selenium) - [pytest-play](https://github.com/pytest-dev/pytest-play) plugin that let you drive a browser with Selenium using plain YAML files + * [py.saunter](https://github.com/element-34/py.saunter) - An opinionated automation framework for use with the Selenium RC and WebDriver libraries. + * [moz-web-qa](https://github.com/mozilla/pytest-mozwebqa) - A plugin for py.test that provides additional features needed for Mozilla's WebQA projects. + * [testutils sst](https://pypi.org/project/sst/) - A web test framework that uses Python to generate functional browser-based tests. + * [wtframework](https://github.com/wiredrive/wtframework) - Framework for configurable Web Tests in Python. + * [holmium.core](https://github.com/alisaifee/holmium.core) - Page objects & Utilities for writing selenium test cases. + * [robotframework-selenium2library](https://github.com/rtomac/robotframework-selenium2library) - Web testing library for Robot Framework. + * [gocept.selenium](https://pypi.python.org/pypi/gocept.selenium) - An API for the Selenium remote control that is suited for writing tests and integrates this with your test suite for any WSGI, Plone, Zope 2, ZTK, or Grok application. + * [webium](https://github.com/wgnet/webium) - A Page Object pattern implementation library for Python + * [robotframework-anywherelibrary](https://github.com/luisxiaomai/robotframework-anywherelibrary) - A cross platform(desktop browser,android,ios) testing library for Robot Framework that leverages the Selenium 2(WebDriver) libraries internally to control a web browser and appium as mobile test automation framework for use with native and hybrid app. + * [robotframework-pageobjects](https://github.com/ncbi/robotframework-pageobjects) - Nice implementation of the Page Object pattern with robotframework and selenium, that can work even outside of robotframework. More on this [blog post](http://kahunacohen.com/2014/12/03/new-testing-paradigm-robotframework-pageobjects/) + * [elementium](https://github.com/actmd/elementium) - jQuery-style syntactic sugar for highly reliable automated browser testing in Python + * [slickqa](http://www.slickqa.com/webdriver/python/) - The slick-webdriver-python project is a wrapper around the python webdriver client bindings. + * [selene](https://github.com/yashaka/selene/) - Concise UI tests in Python + Ajax support + PageObjects + Widgets + * [hitch](http://hitchtest.com/) - A high level integration testing framework for service based applications. + * [Needle](http://needle.readthedocs.org/en/latest/) - Needle is a tool for testing visuals with Selenium and nose. It checks that CSS renders correctly by taking screenshots of portions of a website and comparing them against known good screenshots. It also provides tools for testing calculated CSS values and the position of HTML elements. + * [PyPOM](https://github.com/mozilla/PyPOM) - PyPOM is a Python Page Object Model library for Selenium and Splinter tests. + * [pypom_form](https://github.com/davidemoro/pypom_form) - PyPOM based page object model for schema based forms. + * [POM](https://github.com/schipiga/pom) - POM is Page-Object-Model microframework to develop web UI tests easy, quickly and with pleasure. + * [websmith](https://github.com/omaciel/websmith) - A Domain Specific Language (DSL) for Web Testing. + * [pages](https://github.com/Skyscanner/pages) - lightweight page object and component Python library for UI tests. + * [seleniumbase](https://github.com/seleniumbase/SeleniumBase) - A simple Python framework for building test automation with Selenium WebDriver. It depends on pytest or noose modules to run. When used with noose a HTML report can be generated in the end of the test run. + * [Toolium](https://github.com/Telefonica/toolium) - Toolium is a Python wrapper tool of Selenium and Appium libraries to test web and mobile applications in a single project. It provides a way of choosing and configuring the driver through a configuration file, implements a Page Object pattern and includes a simple visual testing solution. +- extensions + * [webdriver_manager](https://github.com/SergeyPirogov/webdriver_manager) - The main idea is to simplify managemet of binary drivers for different browsers. + * [pytest_splinter](https://github.com/pytest-dev/pytest-splinter) - pytest spinter and selenium integration for anyone interested in browser interaction in tests. + * [lettuce_webdriver](https://github.com/bbangert/lettuce_webdriver) - Selenium webdriver for lettuce. + * [Browsermob Proxy](https://github.com/AutomatedTester/browsermob-proxy-py) - A python wrapper for Browsermob Proxy. + * [FireRobot](https://github.com/joao-carloto/FireRobot) - A Firefox extension that allows you to create Robot Framework/Selenium tests, in a more efficient way. + * [pytractor](https://github.com/kpodl/pytractor) - Python selenium extensions for testing angular.js apps + * [Selenium-Requests](https://github.com/cryzed/Selenium-Requests) - Extends Selenium WebDriver classes to include the request function from the Requests library, while doing all the needed cookie and request headers handling. + * [selenium-respectful](https://github.com/SerpentAI/selenium-respectful) - Minimalist Selenium WebDriver wrapper to work within rate limits of any amount of websites simultaneously. Parallel processing friendly. + * [Mailosaur](https://github.com/mailosaur/mailosaur-python) - Python client for email testing/automation via Mailosaur. + * [gauge](https://github.com/getgauge/gauge) - Gauge is a light weight cross-platform test automation tool. It provides the ability to author test cases in the business language, actually written in golang with [python language driver](https://github.com/getgauge/gauge-python). + * [Golem](https://github.com/lucianopuccio/golem) - Golem is a complete test automation tool and framework for end-to-end testing. It creates powerful, robust and maintainable test suites, it's easy to learn even without a lot of programming knowledge. It is based on Selenium Webdriver and it can be extended using Python + * [Pylenium.io](https://elsnoman.gitbook.io/pylenium/) - Pylenium brings the best of Selenium, Cypress and Python into one package. + * [Playwright](https://github.com/microsoft/playwright-python) - Playwright is a Python library to automate Chromium, Firefox and WebKit browsers with a single API. Playwright delivers automation that is ever-green, capable, reliable and fast. + +## Mobile test automation + +* [appium](http://appium.io/) - An open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS and Android apps using the WebDriver protocol. +* [Winium.StoreApps](https://github.com/2gis/Winium.StoreApps/) - An open source test automation tool for Windows Store apps, tested on emulators. It is Selenium Remote WebDriver implementation. +* [robotframework-androidlibrary](https://github.com/lovelysystems/robotframework-androidlibrary) - A Robot Framework test library for all your Android automation needs. +* [robotframework-appiumlibrary](https://github.com/jollychang/robotframework-appiumlibrary) - An appium testing library for RobotFramework. +* [robotframework-ioslibrary](https://github.com/lovelysystems/robotframework-ioslibrary) - A Robot Framework test library for all your iOS automation needs. +* [uiautomator](https://github.com/xiaocong/uiautomator) - Python wrapper of Android uiautomator test tool, it works on Android 4.1+ simply with Android device attached via adb. +* [ATX](https://github.com/NetEaseGame/ATX) - Smart phone automation tool. Support iOS, Android, WebApp and game. +* [Airtest](https://github.com/AirtestProject/Airtest) - Airtest is a cross-platform automated testing framework focusing mainly on games, but can also be used for native apps. + +## Windows UI test automation + +* [Winium.Desktop](https://github.com/2gis/Winium.Desktop/) - An open source test automation tool for automated testing of Windows application based on WinForms and WPF platforms. It is Selenium Remote WebDriver implementation. +* [PyAutoGUI](https://pypi.python.org/pypi/PyAutoGUI) - A cross-platform module for GUI automation for human beings. Control the keyboard and mouse from a Python script. +* [robotframework-autoitlibrary](https://code.google.com/p/robotframework-autoitlibrary/) - A Windows GUI testing library for Robot Framework +* [autopy](https://github.com/msanders/autopy) - A simple, cross-platform GUI automation toolkit for Python. +* [UISoup](https://pypi.python.org/pypi/UISoup/) - This library supports UI-related testing using Python on Windows and Mac OS. (Only Python x86 is supported) +* [pywinauto](http://pywinauto.github.io/) - Very pythonic object-oriented Windows GUI automation library. Now it supports 64-bit Py2 and Py3. +* [SikuliX](http://sikulix.com/) - OpenCV based GUI test framework that uses image recognision to locate item to interact with, script from python 2.7. +* [AutoItDriverServer](https://github.com/daluu/AutoItDriverServer) - Selenium server to control/drive AutoIt via (Remote)WebDriver API. + +## Unix \ Linux UI test automation + +* [ldtp](https://pypi.python.org/pypi/ldtp) - Cross Platform Linux Desktop (GUI Application) Testing Project. +* [fMBT](https://github.com/01org/fMBT) - Python libraries for multiplatform GUI testing. +* [SikuliX](http://sikulix.com/) - OpenCV based GUI test framework that uses image recognision to locate item to interact with, script from python 2.7. + +## MacOS UI test automation + +* [PyAutoGUI](https://pypi.python.org/pypi/PyAutoGUI) - A cross-platform module for GUI automation for human beings. Control the keyboard and mouse from a Python script. +* [ATOMac](https://github.com/pyatom/pyatom) - Python library to fully enable GUI testing of Mac applications via the Apple Accessibility API +* [SikuliX](http://sikulix.com/) - OpenCV based GUI test framework that uses image recognision to locate item to interact with, script from python 2.7. + +## REST API Testing + +* [Rester](https://github.com/chitamoor/rester) - Framework for testing (RESTful) HTTP APIs +* [pyresttest](https://github.com/svanoort/pyresttest) - A REST testing and API microbenchmarking tool +* [siesta](http://scastillo.github.com/siesta) - Python REST Client +* [play_requests](https://github.com/davidemoro/play_requests) - [pytest-play](https://github.com/pytest-dev/pytest-play) plugin driving the famous python requests library for making HTTP calls using plain YAML files +* [gabbi](https://github.com/cdent/gabbi) - a tool for running HTTP tests where requests and responses are expressed as declarations in YAML files. +* [Schemathesis](https://github.com/kiwicom/schemathesis) - Schemathesis is a tool for property-based testing of applications based on Open API & Swagger specs. It reads the application schema and generates test cases which will ensure that your application is compliant with its schema. Includes `pytest` & `unittest` integrations. + +## Virtual environments + +* [virtualenv](https://pypi.python.org/pypi/virtualenv) - A tool to create isolated Python environments. +* [virtualenvwrapper](https://virtualenvwrapper.readthedocs.org/en/latest/) - A set of extensions to Ian Bicking’s virtualenv tool. +* [tox](https://pypi.python.org/pypi/tox) - A generic virtualenv management and test command line tool to test code on different python versions. +* [PyVirtualDisplay](https://pypi.python.org/pypi/PyVirtualDisplay) - A python wrapper for Xvfb, Xephyr and Xvnc for GUI testing and\or automatic GUI screenshot. +* [pew](https://pypi.python.org/pypi/pew/) - A set of tools to manage multiple virtual environments. +* [Vex](https://github.com/sashahart/vex) - Run a command in the named virtualenv. +* [PyRun](https://www.egenix.com/products/python/PyRun/) - A one-file, no-installation-needed version of Python. +* [pyenv](https://github.com/yyuu/pyenv) - Simple Python version management. +* [Tapper](https://tapper.github.io/Tapper/) - all-embracing test infrastructure. + + +## Performance & stress & load + +* [Multi-Mechanize](https://multi-mechanize.readthedocs.io) - An open source framework for performance and load testing. +* [locust](https://github.com/locustio/locust) - Scalable user load testing tool written in Python. +* [Yandex.Tank](https://github.com/yandex/yandex-tank) - Load and performance benchmark tool. +* [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) - A py.test fixture for benchmarking code. +* [Airspeed Velocity](https://github.com/spacetelescope/asv) - A simple Python benchmarking tool with web-based reporting +* [The Grinder](http://grinder.sourceforge.net/) - Load testing framework that makes it easy to run a distributed test using many load injector machines. This includes common cases such as HTTP web servers, SOAP and REST web services, and application servers (CORBA, RMI, JMS, EJBs), as well as custom protocols. Flexible Scripting Test scripts are written in the powerful Jython and Clojure languages. +* [Tsung](http://tsung.erlang-projects.org/) - is an open-source multi-protocol distributed load testing tool. It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers. +* [taurus](http://gettaurus.org) - Automation-friendly framework for Continuous Testing +* [molotov](https://github.com/loads/molotov) - Simple Python 3.5+ tool to write load tests. + +## Security checking + +* [sparta](http://sparta.secforce.com/) - A GUI application which simplifies network infrastructure penetration testing by aiding the penetration tester in the scanning and enumeration phase. +* [OWASP ZAP](https://code.google.com/p/zaproxy/wiki/ApiPython) - An API for the usage of OWASP ZAP-features from a Python-script. +* [pythem](https://github.com/m4n3dw0lf/PytheM) - pythem is a multi-purpose pentest framework written in Python. It has been developed to be used by security researchers and security professionals. The tool intended to be used only for acts within the law. I am not liable for any undue and unlawful act practiced by this tool, for more information, read the license. Only runs on GNU/Linux OS. +* [SQLMap](https://github.com/sqlmapproject/sqlmap) - sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of database servers. It comes with a powerful detection engine, many niche features for the ultimate penetration tester and a broad range of switches lasting from database fingerprinting, over data fetching from the database, to accessing the underlying file system and executing commands on the operating system via out-of-band connections. +* [fsociety](https://github.com/Manisso/fsociety) - A Penetration Testing Framework, you will have every script that a hacker needs. + + +## Continuous Integration + +* [buildbot](https://pypi.python.org/pypi/buildbot/) - A system to automate the compile/test cycle required by most software projects to validate code changes. +* [jenkins](http://jenkins-ci.org/) - An extensible open source continuous integration server. +* [travis-ci](https://travis-ci.org) - Free Hosted Continuous Integration Platform. + +## Reporting + +* [ReportPortal.io](http://ReportPortal.io) - [pytest, RobotFramework, etc.](https://github.com/reportportal?utf8=✓&q=agent-python) powerfull results management and analytics for test automation reports. Powered with Machine Learning. Real-time integration and reports, visualization of trends and statistics, custom dashboards and widgets, gives you real visibility into the state of test automation. Integral part of CI/CD with TA and Continous Testing. Server-client application, can be used for any type of automated tests. Free and OpenSourced, [GitHub link](https://github.com/reportportal). +* [allure pytest](https://github.com/allure-framework/allure-python) - Allure adapter for PyTest framework. +* [HTMLTestRunner](http://tungwaiyip.info/software/HTMLTestRunner.html) - An extension to the Python standard library's unittest module. It generates easy to use HTML test reports. +* [unittest-xml-reporting](https://github.com/xmlrunner/unittest-xml-reporting) - A unittest test runner that can save test results to XML files that can be consumed by a wide range of tools, such as build systems, IDEs and continuous integration servers. +* [PrettyTable](https://github.com/jazzband/prettytable) - Python library to generate nice table reports right in console. +* [pytest-html](https://github.com/pytest-dev/pytest-html) - Plugin for generating HTML reports for PyTest results. + +## Documentation generation + +* [Sphinx](http://sphinx-doc.org/) - Python Documentation generator. +* [MkDocs](http://www.mkdocs.org/) - Markdown friendly documentation generator. +* [Pycco](http://fitzgen.github.io/pycco/) - The original quick-and-dirty, hundred-line-long, literate-programming-style documentation generator. + +## Editors, IDE, consoles + +* [pycharm](https://www.jetbrains.com/pycharm/) - Smart code editor provides first-class support for Python +* [pydev](http://pydev.org/) - Full featured python ide based on eclipse +* [sublime](http://sublimetext.com/) - A sophisticated text editor for code, markup and prose. +* [ipython](http://ipython.org/) - A command shell for interactive computing in multiple programming languages, originally developed for the Python programming language +* [VSCode](https://code.visualstudio.com/) - Very Neat Editor for python with loads of plugins + +## Useful libs + +Libraries that may help you to build better test automation. + +* [requests](https://pypi.python.org/pypi/requests/) - An Apache2 Licensed HTTP library, written in Python, for human beings. +* [WebTest](http://webtest.readthedocs.org/en/latest/) - WebTest helps you test your WSGI-based web applications. +* [lxml](http://lxml.de/) - Most feature-rich and easy-to-use library for processing XML and HTML in the Python language. +* [suds](https://fedorahosted.org/suds/) - A lightweight SOAP python client for consuming Web Services. +* [fabric](http://www.fabfile.org/) - A Python library and command-line tool for streamlining the use of SSH for application deployment or systems administration tasks. +* [BeautifulSoup](http://www.crummy.com/software/BeautifulSoup/) - Package for parsing HTML documents (including having malformed markup, i.e. non-closed tags, so named after Tag soup). It creates a parse tree for parsed pages that can be used to extract data from HTML, which is useful for web scraping. +* [Soupy](https://github.com/ChrisBeaumont/soupy) - It is a wrapper around BeautifulSoup that makes it easier to build complex queries when wrangling web data. +* [PyQuery](https://pythonhosted.org/pyquery/) - Pyquery allows you to make jquery queries on xml documents. The API is as much as possible the similar to jquery. pyquery uses lxml for fast xml and html manipulation. +* [waiting](https://github.com/vmalloc/waiting) - python utility library for waiting for predicates. +* [Comcast](https://github.com/tylertreat/Comcast/) - simulating shitty network connections so you can build better systems. +* [dateutil](https://pypi.python.org/pypi/python-dateutil) - Extensions to the standard Python datetime module. +* [python-tesseract](https://code.google.com/p/python-tesseract/) - Wrapper class for tesseract OCR (Linux & Mac & Windows) +* [pywinrm](https://github.com/diyan/pywinrm/) - A Python client for Windows Remote Management (WinRM). This allows you to invoke commands on target Windows machines from any machine that can run Python. WinRM allows you to call native objects in Windows. These include, but are not limited to, running batch scripts, powershell scripts and fetching WMI variables. For more information on WinRM, please visit Microsoft's WinRM site. +* [fig](http://www.fig.sh/) - Fast, isolated development environments using [Docker](https://www.docker.com/). +* [gitapi](http://bitbucket.org/haard/gitapi) - Pure-Python API for git. +* [Pyro4](https://github.com/irmen/Pyro4) - Pyro enables you to build applications in which objects can talk to each other over the network, with minimal programming effort. +* [keyboard](https://github.com/boppreh/keyboard) - Hook and simulate global keyboard events on Windows and Linux. +* [Errbot](http://errbot.io/en/latest/) - Errbot is a chatbot, a daemon that connects to your favorite chat service and brings your tools into the conversation. +* [tappy](https://github.com/python-tap/tappy) - tappy is a set of tools for working with the Test Anything Protocol (TAP) in Python. TAP is a line based test protocol for recording test data in a standard way. +* [pyscreenshot](https://github.com/ponty/pyscreenshot) - The pyscreenshot module can be used to copy the contents of the screen to a PIL or Pillow image memory using various back-ends. Replacement for the ImageGrab Module, which works on Windows only, so Windows users don't need this library. +* [TBVaccine](https://github.com/skorokithakis/tbvaccine) - TBVaccine is a utility that pretty-prints Python tracebacks. It automatically highlights lines you care about and deemphasizes lines you don't, and colorizes the various elements in a traceback to make it easier to parse. +* [PyPattyrn](https://github.com/tylerlaberge/PyPattyrn) - PyPattyrn is a python package aiming to make it easier and faster to implement design patterns into your own projects. +* [Spyne](http://spyne.io/) - Spyne is a Python RPC toolkit that makes it easy to expose online services that have a well-defined API using multiple protocols and transports. +* [Pexpect](https://pexpect.readthedocs.io/en/stable/) - Pexpect makes Python a better tool for controlling other applications. +* [devtools-proxy](https://github.com/bayandin/devtools-proxy) - Proxy for Chrome DevTools. Fully compatible with Selenium and ChromeDriver +* [extratools](https://www.chuancong.site/extratools/) - 145+ extra higher-level functional tools that go beyond standard library’s itertools, functools, etc. and popular third-party libraries like toolz, fancy, and more-itertools. +* [retrying](https://github.com/rholder/retrying) - Retrying is an Apache 2.0 licensed general-purpose retrying library, written in Python, to simplify the task of adding retry behavior to just about anything. +* [mitmproxy](https://mitmproxy.org/) - mitmproxy is a free and open source interactive HTTPS proxy. +* [Python MSS](https://github.com/BoboTiG/python-mss) - An ultra fast cross-platform multiple screenshots module in pure Python using ctypes. +* [Loguru](https://github.com/Delgan/loguru) - Loguru is a library which aims to bring enjoyable logging in Python. +* [prettyprinter](https://github.com/tommikaikkonen/prettyprinter) - Syntax-highlighting, declarative and composable pretty printer for Python 3.5+ +* [jsonschema](https://github.com/Julian/jsonschema) - JSON Schema implementation +for Python. Powerful tool for validating the structure of JSON data. + +# Resources +Where to discover new libraries, information, tools, etc. +* [python books](https://github.com/Junnplus/awesome-python-books) +* [pytest-tricks](https://github.com/hackebrot/pytest-tricks) - Tips and Tricks for the Python Testing Tool - http://hackebrot.github.io/pytest-tricks/ + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome! diff --git a/qa-cypress/ruby-test-automation.md b/qa-cypress/ruby-test-automation.md new file mode 100644 index 0000000..56b5249 --- /dev/null +++ b/qa-cypress/ruby-test-automation.md @@ -0,0 +1,198 @@ +# Ruby test automation + +A comprehensive curated list of Ruby test automation frameworks, tools, libraries and software to help software engineers easily bootstrap test automation on Ruby. Sponsored by http://sdclabs.com + +[![Have questions\issues\problems, join the chat at https://gitter.im/atinfo/awesome-test-automation](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/atinfo/awesome-test-automation) + +Table of content: + +- [xUnit frameworks](#xunit-frameworks) +- [TDD \ ATTD \ BDD](#tdd--atdd--bdd) +- [Code Analysis](#code-analysis) +- [Test Data](#test-data) +- [Web UI test automation](#web-ui-test-automation) +- [Mobile test automation](#mobile-test-automation) +- [Windows UI test automation](#windows-ui-test-automation) +- [Unix \ Linux UI test automation](#unix--linux-ui-test-automation) +- [MacOS UI test automation](#macos-ui-test-automation) +- [Virtual environments](#virtual-environments) +- [Performance & stress & load](#performance--stress--load) +- [Security checking](#security-checking) +- [Continuous Integration](#continuous-integration) +- [Reporting](#reporting) +- [Documentation generation](#documentation-generation) +- [Editors, IDE and consoles](#editors-ide-consoles) +- [Useful libs](#useful-libs) + +Also: +- [Resources](#resources) +- [Other Awesome Test Automation Lists](#other-awesome-test-automation-lists) +- [Contributing](#contributing) + +--- + +## xUnit frameworks + +* [Test::Unit](http://ruby-doc.org//stdlib-2.1.5//libdoc/test/unit/rdoc/Test/Unit.html) - is intended for unit testing and comes bundled with Ruby. +* [MiniTest](https://github.com/CapnKernul/minitest-reporters#readme) - becomes available on attaching the minitest-reporters gem. The minitests are added to the Test::Unit framework. +* [yard-doctest](https://github.com/p0deje/yard-doctest) - allows using YARD examples as tests + +## TDD \ ATDD \ BDD +- TDD + * [RR](https://github.com/rr/rr) - A test double framework that features a rich selection of double techniques and a terse syntax. +- BDD + * [RSpec](http://rspec.info/) - Behaviour Driven Development for Ruby. RSpec becomes available in Ruby projects on attaching the rspec gem. For the Rails applications, rspec-rails gem is also required. + * [Cucumber](http://cukes.info/) - This testing tool supports BDD, and enables using features and scenarios written in a human-readable language, either English or any other language specified in the # language: comment. Cucumber becomes available in project upon installing and activating the cucumber gem. + * [Bacon](https://github.com/chneukirchen/bacon) - A small RSpec clone. + * [minitest](https://github.com/seattlerb/minitest) - minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking. + * [Spinach](https://github.com/codegram/spinach) - Spinach is a high-level BDD framework that leverages the expressive Gherkin language (used by Cucumber) to help you define executable specifications of your application or library's acceptance criteria. +- Assertions + * [Shoulda](https://github.com/thoughtbot/shoulda) - is intended for unit testing, and becomes available in Ruby projects on attaching the shoulda gem. So doing, the Shoulda tests are added on to the Test::Unit framework. + * [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) - Provides Test::Unit- and RSpec-compatible one-liners that test common Rails functionality. These tests would otherwise be much longer, more complex, and error-prone. + * [Spectus](https://github.com/fixrb/spectus) - Expectation library with RFC 2119's requirement levels. +- Mocking + * [ActiveMocker](https://github.com/zeisler/active_mocker) - Generate mocks from ActiveRecord models for unit tests that run fast because they don’t need to load Rails or a database. + * [TestXml](https://github.com/alovak/test_xml) - TestXml is a small extension for testing XML/HTML. + * [WebMock](https://github.com/bblimke/webmock) - Library for stubbing and setting expectations on HTTP requests. + * [vcr](https://github.com/vcr/vcr) - Record your test suite's HTTP interactions and replay them during future test runs for fast, deterministic, accurate tests. +- Extensions + * [Cutest](https://github.com/djanowski/cutest) - Isolated tests in Ruby. Each test file is run in a forked process to avoid shared state. Once a failure is found, you get a report detailing what failed and how to locate the error and the rest of the file is skipped. + * [Spork](https://github.com/sporkrb/spork) - A DRb server for testing frameworks (RSpec / Cucumber currently). + + +## Code analysis + +* [Rubocop](https://github.com/bbatsov/rubocop) - A Ruby static code analyzer, based on the community Ruby style guide. +* [Pronto](https://github.com/prontolabs/pronto) - Quick automated code review of your changes. + +## Test data + +* [Fabrication](http://fabricationgem.org/) - A simple and powerful object generation library. +* [factory_bot](https://github.com/thoughtbot/factory_bot) - A library for setting up Ruby objects as test data. +* [Fake Person](https://github.com/adamcooke/fake-person) - Uses some of the most popular given & surnames in the US & UK. +* [faker](https://github.com/stympy/faker) - A library for generating fake data such as names, addresses, and phone numbers. +* [ffaker](https://github.com/EmmanuelOga/ffaker) - A faster Faker, generates dummy data, rewrite of faker. +* [Forgery](https://github.com/sevenwire/forgery) - Easy and customizable generation of forged data. +* [Machinist](https://github.com/notahat/machinist) - Fixtures aren't fun. Machinist is. + + +## Web UI test automation + +- libraries + * [Selenium WebDriver](http://selenium.googlecode.com/git/docs/api/rb/index.html) - This gem provides Ruby bindings for WebDriver. + * [API Taster](https://github.com/fredwu/api_taster) - A quick and easy way to visually test your Rails application's API. + * [Watir](https://github.com/watir/watir/) - Web application testing in Ruby. + * [Watir-webdriver](http://watirwebdriver.com/) - The most elegant way to use WebDriver with ruby. + * [Poltergeist](https://github.com/teampoltergeist/poltergeist) - Poltergeist is a driver for Capybara. It allows you to run your Capybara tests on a headless WebKit browser, provided by PhantomJS. + * [PhantomJS](http://phantomjs.org/) - is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. + * [unobtainium](https://github.com/jfinkhaeuser/unobtainium) - configuration driven wrapper for Selenium WebDriver and [appium](http://appium.io/), with PhantomJS support. + * [Airborne](https://github.com/brooklynDev/airborne) - RSpec driven API testing framework. +- frameworks + * [Capybara](https://github.com/teamcapybara/capybara) - Acceptance test framework for web applications. + * [Konacha](https://github.com/jfirebaugh/konacha) - Test your Rails application's JavaScript with the mocha test framework and chai assertion library. + * [chemistrykit](https://github.com/chemistrykit/chemistrykit) - Simple and opinionated web testing framework for Selenium WebDriver that follows convention over configuration and integrates with SauceLabs for cross-browser execution in the cloud. + * [howitzer](https://github.com/strongqa/howitzer) - is a Ruby-based framework for acceptance testing. It was originally developed for testing web applications, but you can also use it for API testing and web service testing.The framework was built with modern patterns, techniques, and tools in automated testing. +- page objects + * [page-object](https://github.com/cheezy/page-object) - Gem to implement PageObject pattern in watir-webdriver and selenium-webdriver. + * [watirsome](https://github.com/p0deje/watirsome) - Awesome page objects with Watir. + * [widgeon](https://github.com/yashaka/widgeon) - Yet another 'page objects for Capybara' gem with ability to create custom loadable elements akka 'widgets' + * [Site Prism](https://github.com/natritmeyer/site_prism) - A Page Object Model DSL for Capybara +- extensions + * [Selenium-Grid-Extras](https://github.com/groupon/Selenium-Grid-Extras) - Simplify the management of the Selenium Grid Nodes and stabilize said nodes by cleaning up the test environment after the build has been completed + * [Mailosaur](https://github.com/mailosaur/mailosaur-ruby) - Ruby client for email testing/automation via Mailosaur. + +## Mobile test automation + +* [Calabash](https://github.com/calabash) - Calabash enables you to write and execute automated acceptance tests on mobile apps. It's cross-platform, supporting Android and iOS native apps. +* [Appium](http://appium.io/) - Appium is an open source test automation framework for use with native, hybrid and mobile web apps. + It drives iOS, Android, and Windows apps using the WebDriver protocol. + +## Windows UI test automation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Unix \ Linux UI test automation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## MacOS UI test automation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Virtual environments + +* [RVM](https://rvm.io/) - Ruby Version Manager (RVM) is a unix command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems. +* [Pik](http://rubyinstaller.org/add-ons/pik/) - Multi-Ruby Manager for Windows. +* [rbenv](http://rbenv.org/) - Use rbenv to pick a Ruby version for your application and guarantee that your development environment matches production. +* [asdf-vm](https://asdf-vm.com/) - Manage multiple runtime versions with a single CLI tool, for Node.js, Ruby, Python, Elixir + +## Performance & stress & load + +* [Yandex.Tank](https://yandex.ru/dev/tank/) - Yandex.Tank is a tool for performing load testing and analyzing the performance of web services and applications + +## Security checking + +* [Brakeman](https://brakemanscanner.org/) - Static analysis security scanner for Ruby on Rails. +* [bundle-audit](https://github.com/rubysec/bundler-audit) - Patch-level verification for bundler. Checks for vulnerable gems. + +## Continuous Integration + +* [Knapsack](https://github.com/ArturT/knapsack) - Optimal test suite parallelisation across CI nodes for RSpec, Cucumber, Minitest, Spinach and Turnip. +* [Teamcity](https://www.jetbrains.com/teamcity/) - Powerful Continuous Integration out of the box +* [Jenkins](https://jenkins.io/) - The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project. + As an extensible automation server, Jenkins can be used as a simple CI server or turned into the continuous delivery hub for any project. + +## Reporting + +* [ReportPortal.io](http://ReportPortal.io) - [Ruby Cucumber + RSpec](https://github.com/reportportal?utf8=✓&q=agent-ruby&type=&language=) powerfull results management and analytics for test automation reports. Powered with Machine Learning. Real-time integration and reports, visualization of trends and statistics, custom dashboards and widgets, gives you real visibility into the state of test automation. Integral part of CI/CD with TA and Continuous Testing. Server-client application, can be used for any type of automated tests. Free and OpenSourced, [GitHub link](https://github.com/reportportal). + +## Documentation generation + +[Contribute to this section](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) + +## Editors, IDE, consoles + +* [Rubymine](https://www.jetbrains.com/ruby/) - Paid version +* [Visual Studio Code](https://code.visualstudio.com/) - Free version +* [Sublime text](https://www.sublimetext.com/) - Paid version +* [Atom](https://atom.io/) - Free version +* [Vim](https://www.vim.org/) - Free version +* [Emacs](https://www.gnu.org/software/emacs/) - Free version + +## Useful libs + +* [parallel_tests](https://github.com/grosser/parallel_tests) - Speedup Test::Unit + RSpec + Cucumber by running parallel on multiple CPUs (or cores). ParallelTests splits tests into even groups(by number of tests or runtime) and runs each group in a single process with its own database. +* [headless](https://github.com/leonid-shevtsov/headless) - Is the Ruby interface for Xvfb. It allows you to create a headless display straight from Ruby code, hiding some low-level action. It can also capture images and video from the virtual framebuffer. +* [watir-jquery](https://github.com/eugene-tkachenko/watir-jquery) - Watir-jquery gem allows you to use the jQuery syntax to find page elements and returns Watir-object type. +* [screen-recorder](https://github.com/kapoorlakshya/screen-recorder) - Ruby gem to video record your computer screen - desktop or specific window. Works on Windows, Linux, and macOS. + + +# Resources +Where to discover new libraries, information, tools, etc. + +## Websites + +* [automated-testing.info](http://automated-testing.info) - Test automation community +* [atinfo.github.io/at.info-knowledge-base](http://atinfo.github.io/at.info-knowledge-base/) - Knowledge base for test automation examples on different tools and technologies +* [guru99.com](https://www.guru99.com/) - A resource where the material on testing theory is described in accessible English. + +# Other Awesome Test Automation Lists + +* [python test automation](https://github.com/atinfo/awesome-test-automation/blob/master/python-test-automation.md) +* [java test automation](https://github.com/atinfo/awesome-test-automation/blob/master/java-test-automation.md) +* [ruby test automation](https://github.com/atinfo/awesome-test-automation/blob/master/ruby-test-automation.md) +* [c# test automation](https://github.com/atinfo/awesome-test-automation/blob/master/c%23-test-automation.md) +* [php test automation](https://github.com/atinfo/awesome-test-automation/blob/master/php-test-automation.md) +* [javascript test automation](https://github.com/atinfo/awesome-test-automation/blob/master/javascript-test-automation.md) +* [kotlin test automation](https://github.com/atinfo/awesome-test-automation/blob/master/kotlin-test-automation.md) +* [test automation and software testing as services](https://github.com/atinfo/awesome-test-automation/blob/master/automation-and-testing-as-service.md) +* [mobile, tablet and tv test automation](https://github.com/atinfo/awesome-test-automation/blob/master/mobile-test-automation.md) +* [general purpose test automation tools](https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md) + +Also we are supporting and looking for contribution for project: + +* [practical test automation by examples](https://github.com/atinfo/at.info-knowledge-base) + + +# [Contributing](https://github.com/atinfo/awesome-test-automation/blob/master/CONTRIBUTING.md) +Your contributions are always welcome!