Moler - test automation library

About this project

Moler - library to help in building automated tests.

Nowadays Python language is taking test automation field. However we lack Python’s library handling properly automation of remotely issued commands.

What properly means:

  • independent of parallelism machinery (for example, we want to be able to switch from threads to asyncio without single line changed in command processing)
  • independent of remote connection transport used (same – we want to be able to switch telnet to ssh without touching commands code)
  • same command to be easily run in foreground or background
  • having common way of retrieving command result (like IPs taken from ifconfig command)
  • having insight into command processing via uniformed logs for quick test troubleshooting

And similar problem is what we call "connection observer". This happens during tests when you don’t issue any command but tested system presents to you some asynchronous notification. It might be reboot of your tested device, alarms it is displaying and so on. “Connection observer” is an entity that can catch such events and react on them or at least report that something unwanted happened during your test. “Connection observers” have much in common with commands.

We solve the problem by developing python library that have capabilities mentioned above as “missing”. Library is pure python to allow for incorporating into any Python based test automation framework. Moreover, it will have RobotFramework bindings to simplify its usage under that specified test automation framework.

Open source community producing Moler’s commands would decrease automation time and cost for anyone who wants to do test automation.Why? Since there will be ready to use commands for most popular test automation tasks (ping, ifconfig, iperf, …). Those commands might be used under any parallelism machinery of Python (threads, asyncio, Twisted, …) – means flexible usage. And same command may run on any type of connection (tcp, telnet, ssh, …). So, they create parallelism and transport/connection independence.Another words – no more reinventing wheel as it comes to commands issuing, background/foreground processing and results retrieval.

https://github.com/nokia/moler

Visibility
Public
Last updated
6 May 2019
expand_less

Our Proposal

Need: which problem(s) does your proposal solve?

Nowadays Python language is taking test automation field.However we lack Python’s library handling properly automation of remotely issued commands.

What properly means:

  • independent of parallelism machinery (for example, we want to be able to switch from threads to asyncio without single line changed in command processing)
  • independent of remote connection transport used (same – we want to be able to switch telnet to ssh without touching commands code)
  • same command to be easily run in foreground or background
  • having common way of retrieving command result (like IPs taken from ifconfig command)
  • having insight into command processing via uniformed logs for quick test troubleshooting

And similar problem is what we call ‘connection observer’. This happens during tests when you don’t issue any command but tested system presents to you some asynchronous notification. It might be reboot of your tested device, alarms it is displaying and so on. “Connection observer” is an entity that can catch such events and react on them or at least report that something unwanted happened during your test. “Connection observers” have much in common with commands.

Approach: how does your project solve the problem(s)?

We solve the problem by developing python library that have capabilities mentioned above as “missing”. Library is pure python to allow for incorporating into any Python based test automation framework. Moreover, it will have RobotFramework bindings to simplify its usage under that specified test automation framework.

Alternatives: what other alternatives could solve the problem(s)?

Not known to us (having characteristics mentioned above).

Benefits: what are the benefits of your proposal?

What are benefits ?

  • Quality of testing will be enhanced
  • Investigation time will decrease
  • Maintenance cost will decrease
  • Better tolerance for changes -> one fix in the command unlocks all test cases (eg: when raw command output changes)
  • Code reuse will increase

 

Long term benefits

Open source community producing Moler’s commands would decrease automation time and cost for anyone who wants to do test automation. Why? Since there will be ready to use commands for most popular test automation tasks (ping, ifconfig, iperf, …). Those commands might be used under any parallelism machinery of Python (threads, asyncio, Twisted, …) – means flexible usage. And same command may run on any type of connection (tcp, telnet, ssh, …). So, they create parallelism and transport/connection independence.Another words – no more reinventing wheel as it comes to commands issuing, background/foreground processing and results retrieval.

Advantage: what gives your project the competitive edge?
Prospective Partners: what might you expect from prospective project partners?

We are looking for test automation enthusiast with decent Python knowledge.