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 ...
所有评论(0)