# -*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') class Item(): NODE_RESULTS = "results" NODE_ITEM = "item" NODE_NAME = "name" NODE_RESULT = "result" NODE_DATA = "data" NODE_REMARK = "remark" NODE_LOG = "log" Screen_Max = 20 def __init__(self): self.name = "" self.data = "" self.remark = "" self.result = "" self.screenPathList = [] self.logPath = "" def getScreenNode(self): return "screen" #+ str(index) class TestCase(): #测试结果xml属性 rootNodeName = "all" caseNodeName = "case" dependNodeName = "depend" resultNodeName = "result" scriptNodeName = "script" detailNodeName = "rdetail" logNodeName = "log" cnNodeName = "name" descNodeName = "desc" #用例属性 def __init__(self): self.selected = True self.index = -1 self.name = "" self.desc = "" self.depend = "" # 测试结果属性 self.result = "no" self.script = "" self.rdetail = "" self.log = "" # 用例属性 self.srcScript = "" def getCaseModel(self): strarr = self.srcScript.split("/") if strarr.__len__() == 3: return strarr[0] class TestTask(): swInfoNodeName = "SW_Information" testCaseNameNode = "testcase" caseNodeAttrFilePathLabel="filepath" caseNodeAttrNameLabel = "name" caseNodeAttrDescLabel = "desc" caseNodeAttrDependLabel = "depend" swInfoKeys = ["hardware", "SWVersion", "projectName", "projectID", "SWInclude"] def __init__(self): self.curcase = TestCase() self.allCase = [] self.swInfoValue = [] self.modelList = [] #return 0:newmodel已经存在,不重复添加;1:newmodel不存在,添加成功 def addTvModel(self, newmodel): for model in self.modelList: if (newmodel == model): return 0 self.modelList.append(newmodel) return 1 def addTestCase(self, testcase): self.allCase.append(testcase) strarr = testcase.srcScript.split("/") if strarr.__len__() == 3: self.addTvModel(strarr[0]) def getCaseListByModel(self,modelname): caselist = [] for tc in self.allCase: if (modelname == tc.getCaseModel()): #print "getCaseListByModel,tc name=", tc.name, ";desc=", tc.desc, ";Model=", tc.getCaseModel() caselist.append(tc) return caselist def getCaseByName(self, casename): for tc in self.allCase: if (tc.name == casename): return tc return None #寻找最初的依赖用例 def checkDependTC(self, tcDepend, tcName): print "checkDependTC ,tcDepend=",tcDepend for tc in self.allCase: if (tc.name == tcDepend): return self.checkDependTC(tc.depend, tc.name) return tcName def findFirstNotExcutedCase(self): if (self.allCase.__len__() <= 0): return "" for tc in self.allCase: if (tc.result == "no"): return self.checkDependTC(tc.depend, tc.name) def findIndexByCaceName(self, caseName): for index in range (0, self.allCase.__len__()): if (self.allCase[index].name == caseName): return index return 0 # result:Pass/Fail/no def getTCListByResult(self, tresult): cnList = [] for tc in self.allCase: if (tc.result == tresult): self.addCaseAndDepend(cnList, tc.name) return cnList def addCaseAndDepend(self, cnList, tcname): tc = self.getCaseByName(tcname) if (tc <> None): self.addCaseAndDepend(cnList, tc.depend) cnList.append(tcname)