1、点击ride界面启动用例执行时,首先会调用脚本

selenium + robotframework的运行原理-LMLPHP

2、打开pybot脚本查看内容、

selenium + robotframework的运行原理-LMLPHP

3、打开robot包下面的run文件,我们可以看到信息

selenium + robotframework的运行原理-LMLPHP

run文件内容

selenium + robotframework的运行原理-LMLPHP

程序启动的入口, sys.agv所表达的含义是:sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

selenium + robotframework的运行原理-LMLPHP

然后我们看我们启动的时候所携带的参数:

selenium + robotframework的运行原理-LMLPHP

我们再次查看run_cli方法, 发现run_cli是命令行执行case的入口点,它带有一个元素的参数, 然后他调用了RobotFramework().execute_cli(arguments, exit=exit)方法,并且把参数传递过去。

selenium + robotframework的运行原理-LMLPHP

查看Robotframwork类,发现Robotframwork集成于Application类,execute_cli方法也来自于Application类

selenium + robotframework的运行原理-LMLPHP

检查Application类,先看看Application自于哪里selenium + robotframework的运行原理-LMLPHP

检查robot.utils包中的Application类的内容,可以看到先解析参数,然后再调用执行方法

selenium + robotframework的运行原理-LMLPHP

查看解析参数的方法,发现解析参数的函数来自于ArgumentParser类

中的parse_arges方法

selenium + robotframework的运行原理-LMLPHP

ArgumentParser类中的parse_arges方法, 这个就不细说了,反正是解析参数,参数来源时启动的时候带上的

执行

selenium + robotframework的运行原理-LMLPHP

检查Robotframework的main方法

selenium + robotframework的运行原理-LMLPHP

通过main方法看出, TestSuiteBuilder这个类是robotframework的核心类,他负责了把测试用例集组装起来,然后执行, 然后把结果写到文件中。

下一遍重点讲main方法和TestSuiteBuilder这个类运作原理

05-08 15:34