robotframe及ride 源码解析(一) 动态调用关键字-Library keywords

来源:互联网 发布:0 1背包分支界限算法 编辑:程序博客网 时间:2024/06/14 08:29

robotframe及ride 源码解析(一)

第一篇:
动态调用关键字-Library keywords

使用robotfarame及ride的基本操作在此就不做介绍,本篇主要对源码进行解析。解析方式有两种,第一种为由用户的使用习惯逐步解析,第二种为从系统最核心的部分发散解析,我在此选用两者混搭的方式解析源码。
robotframe最核心的部分莫过于关键字驱动测试,robotframe中keywords主要由keywords 与 user keywords组成,如图一所示。

            图一


来看演示代码,待导入的库文件Librarytest.py,内容如下:
class Librarytest:    def libimport(self):        print "Library keywords import"

在ride中导入库文件

导入->解析->执行整个流程为:
#回调keyword方法def call_method(method, *args):        try:            method(*args)            return method(*args)        except:            pass#导入-解析-执行def robotexc():    clsname = "Librarytest"    funname = "libimport"    #导入模块名,即库文件名称    obj = __import__("Librarytest")    #获取类对象    cls = getattr(obj, clsname)    #新建类对象    obj = cls()    #获取方法,即keyword    fun = getattr(obj, funname)    #调用方法    call_method(fun)
       这样就完成了对test library中 libimport方法的调用,即keyword的调用。

从上面例子中我们可以看出,robotframe源码使用了python原语里的__import__()及getattr()两个内置函数完成了test library的调用。

下一篇文章将结合robotframe的代码实际解析。
0 0
原创粉丝点击