Robot Framework 是一个关键词驱动的自动测试框架。他的测试用例书写非常方便和灵活,而且关键字的扩充也很方便,作为一个自动测试方法,这都是极大的优点。

      但是,具体到宽带接入网的系统测试中,他不能够支持TCL又成为一个局限。当然,我们也可以怪罪如Smartbit/TestCenter等仪表都没有Python的支持。

      其实,通过一个简单的方法,在py中就可以嵌入TCL的支持了。于是皆大欢喜!

      直接来看具体的代码实现吧。

      从py调用TCL的方法如下定义:

tcl = Tcl()
tcl.eval('source D:/ISAM_AT/robot_stc.tcl')

def STCtestcase(casenum, argstr):
    '''
        demo for call tcl from python
    '''
    global tcl
    testcase = casenum+" "+str(argstr)
    tcl_str = tcl.eval(testcase)
    if 0 == int(tcl_str):
        reason = "STC traffic not expected"
        error = AssertionError("Case fail:%s\n" (reason))
        error.ROBOT_CONTINUE_ON_FAILURE = True
        raise error     
        tcl_str = False
    else:
        tcl_str = True
    return tcl_str     

    .TCL文件中,就是操作STC等测试仪表的过程。且可以使用参数列表接收来自testcase的测试要求。

proc RunSequencerDoCheckList {args} {

...

}

#RunSequencerDoCheckList -mnemonic xxx_xxx_step_01
#                        -xml "d:/RobotFT/Manual/NNI_DHCP_OPTION_DEMO_01.xml"
#                        -duration 10000
#                        -US_Min 5
#                        -US_Max 5
#                        -DS_Min 5
#                        -DS_Max 5
#                        -opt82_network_circuit_id {${PhisicalidList}}
#                        -opt82_network_remote_id {${RemoteidList}}
#                        -opt82_network_discover_circuit_id {${PhisicalidList}}
#                        -opt82_network_discover_remote_id {${RemoteidList}}
#                        -opt82_user_circuit_id {${PhisicalidList}}
#                        -opt82_user_remote_id {${RemoteidList}}
#                        -opt82_user_offer_circuit_id {${PhisicalidList}}
#                        -opt82_user_offer_remote_id {${RemoteidList}}

    testcase里,就依然是简洁的关键字驱动的测试要求了。

STCtestcase    RunSequencerDoCheckList    -mnemonic xxx_step_n ...

转载于:https://www.cnblogs.com/Simba-5830/archive/2013/01/24/2874543.html

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐