I have seen people commenting that Python is a very handy language in everyday's testing. I wonder what makes it such a good tool, or what testing tasks are easier to achieve with Python than with other scripting languages (e.g. Powershell) ?
I suspect Powershell's design center is tight integration with Windows services. Python is probably less tightly integrated with Windows, but may have a more substantial set of libraries, e.g. NumPy and SciPy for manipulating numeric data. An indication of its popularity is that a lot of college programming classes taught with Python now; I don't know how many college classes do their assignments in Powershell.
Whether Python is very handy for your own testing depends on what you do. If you only work with Windows, and your software testing is mostly centered on the client, Powershell might be all you need. If you also need to test on non-Windows platforms, Python may be helpful for you. Ultimately, I think it will boil down to the available libraries and platform support rather than the language itself.
As for me Python helped a lot with tasks which were related to:
- Parsing data files, XML, HTTP, different streams, etc.
- Network operations, connections, data copying via Network, etc.
- Small utilities or helpers for Test Automation Framework: a. Configuration of XML files(set some element, update some value, ...) b. Gather some metrics from bug tracking / test case management systems c. Parsing report files and adding missed information