MBT框架(MTest)的实现用到的技术探讨
作者:网络转载 发布时间:[ 2013/7/29 14:01:40 ] 推荐标签:
MBT框架的实现需要用到2种技术:参数组合技术与代码生成技术。
参数组合技术:抽象出测试场景的参数,并对参数做等价类及边界值分析后,利用迪卡尔乘积对多类参数进行组合,并过滤掉不需要组合,这里多半是用例建模时需要考虑。框架需要提供的是组合算法与过滤算法,用户在使用这些算法的比较易懂、实用。
代码生成技术:框架应能执行模型代码,执行模型后能生成可执行的测试代码,这有点类似病毒,代码执行后,能产生出与自己等价的代码。举例如下:
原始模型代码:
from MTest import TestCaseBase, Model, Scenario, Action, Assert, Logger
@Action(DespFormat="Called with {0}, {1}")
def JustReturnArg1(arg1, arg2):
if arg1 == 1:
return arg2
return arg1
@Model()
class SimpleModel(TestCaseBase):
@Scenario(Param={
'p1':[1, 2],
'p2':['a', 'b']
}, Where={'combine':['p1','p2'],'strategy':'add'})
def TestJustReturnSelf(self):
Logger.Step('Call JustReturnSelf and Validate')
p1 = self.Param['p1']
p2 = self.Param['p2']
rsp = JustReturnArg1(p1, p2)
Assert.AreEqual(p1, rsp, 'p1 check')
if __name__ == '__main__':
import sys
from MTestLauncher import MTestLoader
MTestLoader.Run(None, False, "MTestRunConfig.xml", [sys.argv[0]],
"mtest")
在执行后,生成3个测试用例
@Model(TestModule="")
def SimpleModel(TestCaseBase):
@Scenario(Param={'p1': 1, 'p2': 'a'})
def TestJustReturnSelf_p1(self):
Logger.Step("Call JustReturnSelf and Validate")
rsp1 = JustReturnArg1(self.Param["p1"],
self.Param["p2"])
Assert.AreEqual(self.Param["p1"], rsp1, "p1 check")
@Scenario(Param={'p1': 1, 'p2': 'b'})
def TestJustReturnSelf1_p2(self):
Logger.Step("Call JustReturnSelf and Validate")
rsp1 = JustReturnArg1(self.Param["p1"],
self.Param["p2"])
Assert.AreEqual(self.Param["p1"], rsp1, "p1 check")
@Scenario(Param={'p1': 2, 'p2': 'a'})
def TestJustReturnSelf2_p1(self):
Logger.Step("Call JustReturnSelf and Validate")
rsp1 = JustReturnArg1(self.Param["p1"],
self.Param["p2"])
Assert.AreEqual(self.Param["p1"], rsp1, "p1 check")
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11