Python is everywhere. And now it is part of the OpenTAP ecosystem.
Over the years, use of Python has grown exponentially. There are multiple reasons for this popularity, but the OpenTAP Team believes much adoption can be tied to its ease of use for new developers (particularly those coming out of university) and the fact that Python and related projects are open source software
Given the huge footprint and popularity of Python, we knew that support for it presented a gap in the OpenTAP project, one for which we had no good solution. The key issue was that the OpenTAP core is written in .NET, and Python and .NET do not natively interface together. So, we sought to fill this gap. It turns out, we were not the first.
We started with IronPython. This project brings Python-like coding into .NET, but it had a major gap: while “Python-like”, it wasn’t actually Python and so didn’t support any of the native Python Packages that make the language great.
Eventually, we found Python.NET . This project takes the Python Global Interpreter and creates a .NET interface, and takes the .NET CLR (Common Language Runtime) and creates a Python interface. Perfect! After a few commits from the OpenTAP team back into Python.NET, we had exactly what we needed.
From there, we brought into Python what we felt was always missing with the pure Python scripts we had seen
— an automation structure and standard. We replicated the .NET SDK for creating Test Steps, Instruments, DUTs, and other test automation components allowing Python code to be natively integrated and executed by the OpenTAP Engine while also facilitating debugging and development in any IDE (Integrated Development Environment).
We truly believe this plugin creates a perfect integration that combines the power of Python and ease of OpenTAP. It will enable the OpenTAP community to accomplish great things and innovate around the OpenTAP platform in new ways. And hopefully, availability of the plugin will attract Python lovers who were previously hesitant to use OpenTAP software because of its ties to .NET.