The python path to software test automation

Automation is the key to success in today’s rapidly changing world. When it comes to the software industry, test automation has become a necessity to meet quality standards and to reduce the time to market. Test tools/frameworks are to be assessed carefully and choose the one which works well for the project. I would choose tools/frameworks based on python as it is the most loved programming language among software developers for its simplicity, flexibility, and endless capabilities. Here are a few links that are very useful to learn about software test automation using python.

pytest

Behavioral Driven Development with pytest-bdd

Web testing using Selenium + pytest + python

Web testing using Appium + pytest + python

Use pytest for testing if you want to have: Unit tests, API tests, Integration tests, GUI tests(in combination with selenium, Appium), Continuous integrations

Pros:

Opensource, Easy Setup, Highly flexible, Integrated approach to test automation (library from API testing and GUI tests can be shared), Easy to learn, Parallel execution, Inbuilt report, Supports BDD

Cons:

Designed for developers to write unit tests. Keywords design needs prior python knowledge

Robot Framework (Selenium with robot framework)

Pros:

Opensource, Easy Setup, Highly flexible, Integrated approach to test automation (library from API testing and GUI tests can be shared), Easy to learn, Designed for testers who do not know coding, Parallel execution, Inbuilt report, Supports BDD

Cons:

Loops and conditional statements are difficult to handle in robot framework keywords

Opensource Cloud-based test automation and test management solution

Pros:

Open-source, Easy setup, Good community support, Comes with multiple SDK such as java and python, Supports most of the automation types such as Mobile, web, API, etc, Very good test management features including test reports and dashboards

Cons:

No on-premises solution is available. Tests are hosted in the public cloud which may be an issue for most of the reputed companies who do not want to save their critical test data on the cloud