def reportPathCreate(self): list = [] #报告文件路径 reporPath = os.path.join(gl.reporterPath, gl.curTimeStr) self.isExistPath(reporPath) #创建文件夹 gl.setOverallStatus('reportPath', reporPath) imgPath = os.path.join(reporPath, 'Image') self.isExistPath(imgPath) #创建image文件夹 list.append(reporPath) list.append(imgPath) return list
def runFuncModule(self,webStart,sheetName): for dictData in self.loadTestData(str(sheetName)): #遍历功能模块表 print(dictData) if str.upper(str(dictData['action']))=='GET': gl.setOverallStatus('browserSelect',str(dictData['Element'])) #设置,要启动的浏览器类型 webStart.toUrl(str(dictData['Value'])) #打开login页面 continue if str.upper(str(dictData['flag']))=='Y': gl.setOverallStatus('description',dictData['Description']) gl.setOverallStatus('stepDiscription',dictData['step Description']) gl.setOverallStatus('expectResult',dictData['Expected Results ']) gl.setOverallStatus('Step',int(dictData['Step'])) webStart.Find_Element(element=dictData['Element'],index=dictData['Index'],value=dictData['Value'],action=dictData['action']) #有报错,停止执行 if str.upper(gl.getOverallStatus('stepResult')) =='FAILED': break #除了登录功能,其它模块执行完,关闭浏览器 if str.upper(str(sheetName))!='LOGIN': webStart.driver.quit()#功能执行完关闭浏览器
def report(*args, **kwargs): ret = func(*args, **kwargs) gl.setOverallStatus('action', kwargs.get('action', 'None')) gl.setOverallStatus('element', kwargs.get('element', 'None')) gl.setOverallStatus('value', kwargs.get('value', 'None')) return ret
def Find_Element(self, index='By.XPATH', element='', value='', action=''): action = str(action) element = str(element) index = str(index) value = str(value) #报告文件路径 reporPath = self.reportPathCreate() try: WebDriverWait(self.driver, 10, 1).until( ec.presence_of_element_located( (self.switchBy(index), element))) if str.lower(str(index)) != '': ement = self.driver.find_element(self.switchBy(index), element) else: ement = element #选择,执行的操作方式 if str.lower(str(action)) == 'switch_to': self.switch_to(index, action, ement) #swicth to切换操作 elif str.lower(str(action)) == 'driver': self.driver_Action(ement, action, value) else: self.mouse_Action(ement, action, value) #操作 #写日志 self.setReportDictVal(index, action, element, value, 'PASSED', '') imgPath = reporPath[1] + r'\image_' + self.getCurTime() + '.png' if str.lower(action) == 'verify': self.driver.save_screenshot(imgPath) gl.setOverallStatus('ImagePath', imgPath) self.reportx.writeReport(gl.Dict(), reporPath[0]) gl.setOverallStatus('ImagePath', '') except (NoSuchElementException, TimeoutException), ex: #写日志 self.setReportDictVal(index, action, element, value, 'FAILED', ex.message) imgPath = reporPath[1] + r'\image_' + self.getCurTime() + '.png' self.driver.save_screenshot(imgPath) gl.setOverallStatus('ImagePath', imgPath) gl.setOverallStatus('OVER_STATUS', 'FAILED') self.reportx.writeReport(gl.Dict(), reporPath[0])
def setReportDictVal(self, index, action, element, value, status, msg): gl.setOverallStatus('executeTime', self.getCurTime()) gl.setOverallStatus('index', index) gl.setOverallStatus('action', action) gl.setOverallStatus('element', element) gl.setOverallStatus('value', value) gl.setOverallStatus('stepResult', status) if msg != '': gl.setOverallStatus('stepDiscription', msg)
from Scripts import gl if __name__ == "__main__": gl.init() gl.setOverallStatus('userName', 'msh195') print(gl.getOverallStatus('userName'))