def _deco(self, func, *args): tool = Tool() self.testStepResult.startTime = Tool.CurrentTime() try: func(*args) except Exception as e: self.settings.isRunable: bool = False self.testStepResult.endTime = Tool.CurrentTime() self.testStepResult.stepResult = StepResult.Error self.testStepResult.stepLog = str(self.testStepResult.endTime) + ' ' + func.__name__ + \ ' execution was ' + StepResult.Error.name + \ '. Actual exception : ' + str(e) else: self.testStepResult.stepResult = StepResult.Passed self.testStepResult.endTime = Tool.CurrentTime() self.testStepResult.stepLog = str(self.testStepResult.endTime) + ' ' + \ func.__name__ + ' execution was ' + self.testStepResult.stepResult.name finally: fileName = tool.RanString Tool.saveScreenShot( self.settings.wedriver, self.settings.CurrentScriptResultFolder + '\\' + fileName + '.png') self.testStepResult.Actual = fileName + '.png' return self.testStepResult
def setNon_ExecutedResult(self, methodName): testStepResult: TestStateResult = TestStepResult() testStepResult.startTime = Tool.CurrentTime() testStepResult.stepResult = StepResult.NotRun testStepResult.endTime = Tool.CurrentTime() testStepResult.stepLog = methodName + \ " execution was " + testStepResult.stepResult.name return testStepResult
def setErrorResult(self, e: Exception): tool = Tool() self.settings._isRunable = False testStepResult: TestStepResult = TestStepResult() testStepResult.startTime = tool.CurrentTime() testStepResult.stepResult = StepResult.Error testStepResult.endTime = tool.CurrentTime() testStepResult.stepLog = testStepResult.endTime + " " + str(e) fileName = tool.RanString Tool.saveScreenShot( self.settings.wedriver, self.settings.CurrentScriptResultFolder + '\\' + fileName + '.png') testStepResult.Actual = fileName + '.png' return testStepResult
def keyword_Execute(self, keyword, pageObjectDict, parameter): llk = LowLevelKeyword() if keyword == llk.launchBrowser.__name__: return llk._deco(llk.launchBrowser, self.paras["Url"]) elif keyword == llk.setText.__name__: return llk._deco(llk.setText, pageObjectDict, self.paras["Value"]) elif keyword == llk.select.__name__: return llk._deco(llk.select, pageObjectDict, self.paras["Value"]) elif keyword == llk.click.__name__: return llk._deco(llk.click, pageObjectDict) elif keyword == llk.clearText.__name__: return llk._deco(llk.clearText, pageObjectDict) elif keyword == llk.doubleClick.__name__: return llk._deco(llk.clearText, pageObjectDict) ######To be added other keywords#### else: tool = Tool() testStepResult: TestStateResult = TestStepResult() testStepResult.endTime = Tool.CurrentTime() testStepResult.stepLog = str( testStepResult.endTime ) + ' No such kind of keyword: ' + keyword testStepResult.stepResult = StepResult.Error self.settings.isRunable = False fileName = tool.RanString Tool.saveScreenShot( self.settings.wedriver, self.settings.CurrentScriptResultFolder + '\\' + fileName + '.png') testStepResult.Actual = fileName + '.png' return testStepResult
def __init__ (self, tsFile): self.TestStepResultCollection:list = [] self.TestStateFile = tsFile self.settings = Settings.getSettings() self.TestStateStartTime = Tool.CurrentTime() self.TestStateReportPath:str = self.settings.CurrentScriptResultFolder + '\\' + self.TestStateFile.replace('.xlsx', '.html') self.RelativeTestStateReportPath:str = self.settings.CurrentScript + '\\' + self.TestStateFile.replace('.xlsx', '.html')
def updateScriptFileAndCaseResult(self, workB: Workbook, testCaseResult: TestCaseResult, caseResult): workB.save(self.CurrentScriptPath) logging.info('save scenario file: "{0}" successfully'.format( self.CurrentScriptPath)) testCaseResult.CaseResult = caseResult testCaseResult.EndTime = Tool.CurrentTime() self.testPlanResult.TestCaseResultCollection.append(testCaseResult)
def setLog(self): self.TestStateEndTime:str = Tool.CurrentTime() if self.StateResult == 'Passed' : self.StateLog = self.TestStateEndTime + ' Set state passed' elif self.StateResult == 'Failed' : self.StateLog = self.TestStateEndTime + ' Set state failed' elif self.StateResult == 'Error' : self.StateLog = self.TestStateEndTime + ' Set state, error occurred' else: self.StateLog = self.TestStateEndTime + ' Set state, not run' return self.StateLog
def test_execute(self): '''execute each test step by step''' try: wb_plan = self.settings.loadPanFileAndSetCaseNumber() wk_plan_sheet = wb_plan['Sheet1'] for test_case_number in range(2, self.settings.TestCaseNumbers + 2): self.test_case_result = self.settings.cleanUpAndSetUpPlanFile( wk_plan_sheet, test_case_number) self.settings.createWebDriver() try: wb_script = self.settings.loadScriptFile() wk_script_sheet = wb_script['Sheet1'] test_state_row: int = self.settings.getStateNumber( wb_script) for test_state_number in range(2, test_state_row + 2): self.settings.setStateFile(wk_script_sheet, test_state_number) self.test_state_result = TestStateResult( self.settings.StateFile) e_f = ExecuteFunction() self.test_state_result = e_f.SetState( self.settings.StateFile) self.test_state_result = self.settings.updateStateResult( wk_script_sheet, self.test_state_result, test_state_number) self.test_case_result.TestStateResultCollection.append( self.test_state_result) except Exception as exception: logging.error( f'there is error: "{str(exception)}" "{traceback.format_exc()}"' ) finally: test_case_result = ExecuteFunction.TestCase_Result( self.test_case_result) self.settings.updateScriptFileAndCaseResult( wb_script, self.test_case_result, test_case_result) MainFramework.settings.wedriver.quit() logging.info('webdriver quit successfully') for test_case_number in range(2, self.settings.TestCaseNumbers + 2): self.settings.updatePlanFile(wk_plan_sheet, test_case_number) finally: self.settings.testPlanResult.TestPlanEndTime = Tool.CurrentTime() wb_plan.save(self.settings.planFilePath) logging.info( f'save plan file: {self.settings.planFilePath} successfully')
def testExecute(self): try: wb_plan = self.settings.loadPanFileAndSetCaseNumber() wk_plan_sheet = wb_plan['Sheet1'] for i in range(2, self.settings.TestCaseNumbers + 2): self.testCaseResult = self.settings.cleanUpAndSetUpPlanFile( wk_plan_sheet, i) try: wb_script = self.settings.loadScriptFile() wk_script_sheet = wb_script['Sheet1'] testStateRow: int = self.settings.getStateNumber(wb_script) for i in range(2, testStateRow + 2): self.settings.setStateFile(wk_script_sheet, i) self.testStateResult = TestStateResult( self.settings.StateFile) ef = ExecuteFunction() self.testStateResult = ef.SetState( self.settings.StateFile) self.testStateResult = self.settings.updateStateResult( wk_script_sheet, self.testStateResult, i) self.testCaseResult.TestStateResultCollection.append( self.testStateResult) except Exception as e: logging.error('there is error: ' + str(e) + '.' + traceback.format_exc()) finally: self.settings.updateScriptFileAndCaseResult( wb_script, self.testCaseResult, ExecuteFunction.TestCase_Result(self.testCaseResult)) MainFramework.settings.wedriver.quit() logging.info('webdriver quit successfully') for i in range(2, self.settings.TestCaseNumbers + 2): self.settings.updatePlanFile(wk_plan_sheet, i) finally: self.settings.testPlanResult.TestPlanEndTime = Tool.CurrentTime() wb_plan.save(self.settings.planFilePath) logging.info('save plan file: "{0}" successfully'.format( self.settings.planFilePath))
def __init__(self, TestPlanFile): self.TestCaseResultCollection = [] self.TestPlanStartTime = Tool.CurrentTime() self.TestPlan = TestPlanFile
def __init__(self, testCaseFile): self.TestCaseFile = testCaseFile self.TestCaseName = self.TestCaseFile.replace(".xlsx", "") self.TestStateResultCollection = [] self.StartTime = Tool.CurrentTime()