Robotframework运行原理解析

技术文章 1年前 (2020) 完美者
1,473 0

标签:set   work   点击   知识   listener   localhost   image   技术   守护线程   

用到的知识:
SocketServer模块的socket编程
threading模块的多线程编程
robotframework执行时可以添加监听器监听脚本的运行

具体流程
1.在Ride加载控制执行的插件的时候,会开启一个守护线程,这个线程开启了一个监听器服务,这个监听器后期会用来获得robotframework发送过来的结果

2.在Ride点击run的时候,做了下面几件事:

  生成robotframework要执行的脚本命令,在这个命令中附加了一个监听器,监听robotframework的运行,此时监听器已经获得了前面ride启动的监听器的端口号,以及是否在用例失败的时候不再执行的参数。由于在同一个机器上面,地址统一是localhost

  执行脚本开始运行,这时附加在这个脚本上listerner,它也开启了一个服务,这个服务用来接收指令用的,是一个Debugger服务,可以通过给这个服务接收指令,让脚本暂停,或者一步步的执行。另外值得一提的就是由于是ride开启脚本运行的,因此ride自然知道了Debugger服务的端口号了,以及它的pid,这样才能给它发信,并且终止它的运行

3.脚本执行的listener,会把所有的运行信息已json格式的方式,发送给ride的监听服务,ride接收到脚本运行的信息后,将其添加到运行面板上,这就是为啥可以同步看到脚本运行的信息的原因了

4.Debugger服务收到指令后,它会通过Theading模块Event.set()方法,激活或者让其他线程等待运行,这样即达到了控制运行的目的,而
具体控制的状态由监听器它内部的一个变量判定。

整个过程的通讯都是通过socket完成的,为啥不用指定端口号,是因为端口由系统来决定即设置端口号为0
Robotframework运行原理解析

Robotframework运行原理解析

标签:set   work   点击   知识   listener   localhost   image   技术   守护线程   

原文地址:https://blog.51cto.com/10808695/2524978

版权声明:完美者 发表于 2020-09-08 21:00:29。
转载请注明:Robotframework运行原理解析 | 完美导航

暂无评论

暂无评论...