def module_init(module): result = [] for i in range(Data.getCasenumber(module)): result.append('Not Executed') result_dict = {module: result} globalData.EXECUTED.append(result_dict) for i in range(0, len(globalData.EXECUTED)): print globalData.EXECUTED[i].keys() print globalData.EXECUTED[i].values()
def test_logout(self): module_init('logout') globalData.MODULE = 'logout' try: for i in range(1, Data.getCasenumber('logout') + 1): globalData.LOG += generateLog.format_log('*******现在开始执行模块【logout】的第【' + str(i) + '】条用例*******') logout.logout(self, i) generateLog.generate_log() globalData.LOG = '' except: globalData.LOG += generateLog.format_log(traceback.format_exc()) generateLog.generate_log() globalData.LOG = ''
def test_register(self): module_init('register') globalData.MODULE = 'welcome' welcome.welcome(self, 'login') globalData.MODULE = 'register' try: for i in range(1, Data.getCasenumber('register') + 1): globalData.LOG += generateLog.format_log('*******现在开始执行模块【register】的第【' + str(i) + '】条用例*******') register.register(self, i) generateLog.generate_log() globalData.LOG = '' except: globalData.LOG += generateLog.format_log(traceback.format_exc()) generateLog.generate_log() globalData.LOG = ''
def test_logout(self): module_init('forgetpassword') globalData.MODULE = 'welcome' welcome.welcome(self, 'login') globalData.MODULE = 'forgetpassword' try: for i in range(1, Data.getCasenumber('forgetpassword') + 1): globalData.LOG += generateLog.format_log('*******现在开始执行模块【forgetpassword】的第【' + str(i) + '】条用例*******') forgetpassword.forgetpassword(self, i) generateLog.generate_log() globalData.LOG = '' except: globalData.LOG += generateLog.format_log(traceback.format_exc()) generateLog.generate_log() globalData.LOG = ''
def logout(self, i): reload(sys) sys.setdefaultencoding('utf-8') #构造前置条件 if(userStatus.isLoginSuccess(self) == False): if(userStatus.isRegisterSuccess(Data.getTestdata('register', 1, 2)) == False): dataBase.insert_buser(Data.getTestdata('register', 1, 2)) welcome.welcome(self, 'login') login.login_smoking(self, Data.getTestdata('login', 1, 2), Data.getTestdata('login', 1, 3)) #处理退出逻辑 try: tabElements.mineTab(self).click() globalData.LOG += generateLog.format_log("点击'我的'选项卡") settingElements.settingButton(self).click() globalData.LOG += generateLog.format_log("点击设置按钮") settingElements.logoutButton(self).click() globalData.LOG += generateLog.format_log("点击退出登录") el = loginElements.loginPage(self) globalData.LOG += generateLog.format_log("成功退出") Data.setExecutionresult(globalData.MODULE, i, 'Pass') except: globalData.LOG += generateLog.format_log("退出登录失败\n" + traceback.format_exc()) Data.setExecutionresult(globalData.MODULE, i, 'Fail')
def popupText(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('login', 'login', 'popupText', 1)))) return el except: globalData.LOG += generateLog.format_log("控件popupText未找到\n" + traceback.format_exc())
def withdrawcashButton(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('mine', 'mine', 'withdrawcashButton', 1)))) return el except: globalData.LOG += generateLog.format_log("控件withdrawcashButton未找到\n" + traceback.format_exc())
from CommonMethods import globalData, generateLog, Data import traceback def welcome(self, action): #校验版本更新 try: welcomeElements.versionUpdate_cancel(self).click() globalData.LOG += generateLog.format_log("取消版本更新") except Exception, e: globalData.LOG += generateLog.format_log("未提示版本更新,无需取消更新!") #校验欢迎页 try: el = welcomeElements.welcomePage(self) for i in range(1, 5): if(welcomeElements.welcome_title(self).get_attribute("name") == Data.getValue('welcome', 'welcome', 'welcome_title', i)): globalData.LOG += generateLog.format_log("欢迎第" + str(i) + "页显示正确") else: globalData.LOG += generateLog.format_log("欢迎第" + str(i) + "页显示错误: " + welcomeElements.welcome_title(self).get_attribute("name")) if(i != 4): self.driver.execute_script("mobile: scroll", {"direction": "right", "element": el.id}) except: globalData.LOG += generateLog.format_log("欢迎页错误\n" + traceback.format_exc()) #校验下一步操作 try: if(action == 'login'): welcomeElements.welcome_login(self).click() globalData.LOG += generateLog.format_log("欢迎页面点击登录") elif(action == 'register'): welcomeElements.welcome_register(self).click()
def eyeopenButton(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('forgetpassword', 'forgetpassword', 'eyeopenButton', 1)))) return el except: globalData.LOG += generateLog.format_log("控件eyeopenButton未找到\n" + traceback.format_exc())
def feedbackPage(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('setting', 'feedback', 'feedbackPage', 1)))) return el except: globalData.LOG += generateLog.format_log("控件feedbackPage未找到\n" + traceback.format_exc())
def register(self, i): reload(sys) sys.setdefaultencoding('utf-8') #构造前置条件:注册过的手机号,未注册过的手机号 if(Data.getPrecondition('register', i) == '注册过的手机号'): if(userStatus.isRegisterSuccess(Data.getTestdata('register', i, 2)) == False): dataBase.insert_buser(Data.getTestdata('register', i, 2)) else: if(userStatus.isRegisterSuccess(Data.getTestdata('register', i, 2)) == True): dataBase.del_buser(Data.getTestdata('register', i, 2)) redis.clear_vercode(Data.getTestdata('register', i, 2)) #进入注册页面校验 try: if(loginElements.loginPage(self)): globalData.LOG += generateLog.format_log('登录页面正确显示') loginElements.registerButton(self).click() globalData.LOG += generateLog.format_log('点击注册按钮') if(registerElements.registerPage(self)): globalData.LOG += generateLog.format_log('注册页面正确显示') except: if(registerElements.registerPage(self)): globalData.LOG += generateLog.format_log('注册页面正确显示') #处理注册手机号逻辑 registerElements.phoneText(self).clear() if(len(Data.getTestdata('register', i, 2)) > 11): registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)[0:11]) registerElements.phoneText(self).click() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)[11:len(Data.getTestdata('register', i, 2))]) else: registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) globalData.LOG += generateLog.format_log('输入手机号:' + Data.getTestdata('register', i, 2)) #处理验证码逻辑 if(Data.getTestdata('register', i, 3) == 'None'): registerElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log('点击发送验证码') if(Data.getTestdata('register', i, 13) == '1'): screenShot.get_screenshot(self, i) elif(Data.getTestdata('register', i, 13) == '2'): try: if(registerElements.popupText(self).get_attribute('name') == Data.getTestdata('register', i, 14)): globalData.LOG += generateLog.format_log('提示正确:' + Data.getTestdata('register', i, 14)) registerElements.confirmButton(self).click() globalData.LOG += generateLog.format_log('点击确定') Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('提示错误:' + registerElements.popupText(self).get_attribute('name')) registerElements.confirmButton(self).click() globalData.LOG += generateLog.format_log('点击确定') Data.setExecutionresult(globalData.MODULE, i, 'Fail') except: globalData.LOG += generateLog.format_log('手机号提示错误') globalData.LOG += generateLog.format_log('不对验证码进行校验') elif(Data.getTestdata('register', i, 3) == 'Y'): registerElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log("验证码发送中...") time.sleep(10) globalData.LOG += generateLog.format_log('验证码发送成功!') code = redis.registerVercode(Data.getTestdata('register', i, 2)) registerElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log("输入验证码: " + code) elif(Data.getTestdata('register', i, 15) == '6位错误的验证码'): registerElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log("验证码发送中...") time.sleep(10) globalData.LOG += generateLog.format_log('验证码发送成功!') code = '111111' registerElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log("输入错误验证码: " + code) elif(Data.getTestdata('register', i, 15) == '6位过期的验证码'): registerElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log("验证码发送中...") time.sleep(10) globalData.LOG += generateLog.format_log('验证码发送成功!') code = redis.registerVercode(Data.getTestdata('register', i, 2)) redis.expireregisterVercode(Data.getTestdata('register', i, 2)) registerElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log("输入验证码: " + code) elif(Data.getTestdata('register', i, 15) == '使用过的验证码'): registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) globalData.LOG += generateLog.format_log('输入手机号:' + Data.getTestdata('register', i, 2)) registerElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log("验证码发送中...") time.sleep(10) globalData.LOG += generateLog.format_log('验证码发送成功!') code = redis.registerVercode(Data.getTestdata('register', i, 2)) registerElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log("输入验证码: " + code) registerElements.cipherpasswordText(self).send_keys(Data.getTestdata('register', i, 4)) globalData.LOG += generateLog.format_log('输入密码:' + Data.getTestdata('register', i, 4)) registerElements.nicknameText(self).send_keys(Data.getTestdata('register', i, 6)) globalData.LOG += generateLog.format_log('输入昵称:' + Data.getTestdata('register', i, 6)) registerElements.registerButton(self).click() globalData.LOG += generateLog.format_log('点击‘立即注册’') tabElements.mineTab(self).click() globalData.LOG += generateLog.format_log("点击'我的'选项卡") settingElements.settingButton(self).click() globalData.LOG += generateLog.format_log("点击设置按钮") settingElements.logoutButton(self).click() globalData.LOG += generateLog.format_log("点击退出登录") if(loginElements.loginPage(self)): globalData.LOG += generateLog.format_log("成功退出") dataBase.del_buser(Data.getTestdata('register', i, 2)) loginElements.registerButton(self).click() globalData.LOG += generateLog.format_log('登录页面点击注册按钮') registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) globalData.LOG += generateLog.format_log('输入手机号:' + Data.getTestdata('register', i, 2)) redis.expireregisterVercode(Data.getTestdata('register', i, 2)) registerElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log('输入已经用过的验证码:' + code) elif(Data.getTestdata('register', i, 15) == '超过60s重新触发发送验证码'): registerElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log("验证码发送中...") if(registerElements.vercodeButton(self).get_attribute('name') != '发送验证码'): globalData.LOG += generateLog.format_log('验证码发送过程发送验证码按钮文案显示正确') else: globalData.LOG += generateLog.format_log('验证码发送过程发送验证码按钮文案显示错误:' + registerElements.vercodeButton(self).get_attribute('text')) time.sleep(60) globalData.LOG += generateLog.format_log('等待60s') if(registerElements.vercodeButton(self).get_attribute('name') == '重新发送'): globalData.LOG += generateLog.format_log('验证码发送完成60s后发送验证码按钮文案显示正确:重新发送') else: globalData.LOG += generateLog.format_log('验证码发送完成60s后发送验证码按钮文案显示错误:' + registerElements.vercodeButton(self).get_attribute('name')) redis.clear_vercode(Data.getNumber('register', 'register', 'phoneText', i)) globalData.LOG += generateLog.format_log('清除redis验证码缓存') registerElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log("验证码发送中...") time.sleep(10) globalData.LOG += generateLog.format_log('验证码发送成功!') else: registerElements.vercodeText(self).clear() registerElements.vercodeText(self).send_keys(Data.getTestdata('register', i, 3)) globalData.LOG += generateLog.format_log("输入验证码: " + Data.getTestdata('register', i, 3)) #处理注册密码逻辑 if(Data.getTestdata('register', i, 4) == 'None'): globalData.LOG += generateLog.format_log('不对密码进行校验') else: registerElements.passwordText(self).send_keys(Data.getTestdata('register', i, 4)) globalData.LOG += generateLog.format_log('输入密码:' + Data.getTestdata('register', i, 4)) #处理密码明暗文逻辑 if(Data.getTestdata('register', i, 5) == 'None'): globalData.LOG += generateLog.format_log('不对密码明暗文进行校验') elif(Data.getTestdata('register', i, 5) == 'Y'): if('•' in registerElements.cipherpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:暗文') else: globalData.LOG += generateLog.format_log('密码显示错误:明文') registerElements.eyecloseButton(self).click() globalData.LOG += generateLog.format_log("切换密码为明文") if('•' not in registerElements.plainpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:明文') else: globalData.LOG += generateLog.format_log('密码显示错误:暗文') registerElements.eyeopenButton(self).click() globalData.LOG += generateLog.format_log("切换密码为暗文") if('•' in registerElements.cipherpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:暗文') else: globalData.LOG += generateLog.format_log('密码显示错误:明文') #处理昵称逻辑 try: if(Data.getTestdata('register', i, 6) == 'None'): globalData.LOG += generateLog.format_log('不对昵称进行校验') else: registerElements.nicknameText(self).clear() registerElements.nicknameText(self).send_keys(Data.getTestdata('register', i, 6)) globalData.LOG += generateLog.format_log("输入昵称: " + Data.getTestdata('register', i, 6)) except: screenShot.get_screenshot(self, i) globalData.LOG += generateLog.format_log('输入的昵称报错') #处理邀请码逻辑 if(Data.getTestdata('register', i, 7) == 'None'): globalData.LOG += generateLog.format_log('不对邀请码进行校验') elif(Data.getTestdata('register', i, 7) == 'Y'): if(Data.getTestdata('register', i, 15) == '邀请码为空'): registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清空邀请码') elif(Data.getTestdata('register', i, 15) == '默认个人邀请码'): invite_code = dataBase.invite_code('12300000000', Data.getTestdata('register', i, 2), 1) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code): globalData.LOG += generateLog.format_log('个人邀请码预填正确:' + invite_code) else: globalData.LOG += generateLog.format_log('个人邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) elif(Data.getTestdata('register', i, 15) == '默认机构邀请码'): invite_code = dataBase.invite_code('12300000001', Data.getTestdata('register', i, 2), 2) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code): globalData.LOG += generateLog.format_log('机构邀请码预填正确:' + invite_code) else: globalData.LOG += generateLog.format_log('机构邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) elif(Data.getTestdata('register', i, 15) == '个人改成其他个人邀请码'): invite_code1 = dataBase.invite_code('12300000002', Data.getTestdata('register', i, 2), 1) invite_code2 = dataBase.invite_code('12300000003', Data.getTestdata('register', i, 2), 1) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('个人邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('个人邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入新的个人邀请码:' + invite_code2) elif(Data.getTestdata('register', i, 15) == '机构改成其他机构邀请码'): invite_code1 = dataBase.invite_code('12300000004', Data.getTestdata('register', i, 2), 2) invite_code2 = dataBase.invite_code('12300000005', Data.getTestdata('register', i, 2), 3) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('机构邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('机构邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入新的机构邀请码:' + invite_code2) elif(Data.getTestdata('register', i, 15) == '清除邀请码注册'): invite_code = dataBase.invite_code('12300000006', Data.getTestdata('register', i, 2), 1) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code): globalData.LOG += generateLog.format_log('个人邀请码预填正确:' + invite_code) else: globalData.LOG += generateLog.format_log('个人邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除预填的邀请码') elif(Data.getTestdata('register', i, 7) == 'N'): if(Data.getTestdata('register', i, 15) == '邀请码不存在'): invite_code = '1111' registerElements.invitecodeText(self).clear() registerElements.invitecodeText(self).send_keys(invite_code) globalData.LOG += generateLog.format_log('输入不存在的邀请码:' + invite_code) elif(Data.getTestdata('register', i, 15) == 'Capp邀请码'): invite_code = dataBase.invite_code('12300000007', Data.getTestdata('register', i, 2), 4) registerElements.invitecodeText(self).clear() registerElements.invitecodeText(self).send_keys(invite_code) globalData.LOG += generateLog.format_log('输入Capp邀请码:' + invite_code) elif(Data.getTestdata('register', i, 15) == '个人邀请码改成Capp邀请码'): invite_code1 = dataBase.invite_code('12300000008', Data.getTestdata('register', i, 2), 1) invite_code2 = dataBase.invite_code('12300000009', Data.getTestdata('register', i, 2), 4) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('个人邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('个人邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入Capp邀请码:' + invite_code2) elif(Data.getTestdata('register', i, 15) == '个人邀请码改成不存在的邀请码'): invite_code1 = dataBase.invite_code('12300000010', Data.getTestdata('register', i, 2), 1) invite_code2 = '1111' registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('个人邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('个人邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入不存在的邀请码:' + invite_code2) elif(Data.getTestdata('register', i, 15) == '个人邀请码改成机构邀请码'): invite_code1 = dataBase.invite_code('12300000011', Data.getTestdata('register', i, 2), 1) invite_code2 = dataBase.invite_code('12300000012', Data.getTestdata('register', i, 2), 2) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('个人邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('个人邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入机构邀请码:' + invite_code2) elif(Data.getTestdata('register', i, 15) == '机构邀请码改成Capp邀请码'): invite_code1 = dataBase.invite_code('12300000013', Data.getTestdata('register', i, 2), 2) invite_code2 = dataBase.invite_code('12300000014', Data.getTestdata('register', i, 2), 4) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('机构邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('机构邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入Capp邀请码:' + invite_code2) elif(Data.getTestdata('register', i, 15) == '机构邀请码改成不存在的邀请码'): invite_code1 = dataBase.invite_code('12300000015', Data.getTestdata('register', i, 2), 3) invite_code2 = '1111' registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('机构邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('机构邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入不存在的邀请码:' + invite_code2) elif(Data.getTestdata('register', i, 15) == '机构邀请码改成个人邀请码'): invite_code1 = dataBase.invite_code('12300000016', Data.getTestdata('register', i, 2), 2) invite_code2 = dataBase.invite_code('12300000017', Data.getTestdata('register', i, 2), 1) registerElements.phoneText(self).clear() registerElements.phoneText(self).send_keys(Data.getTestdata('register', i, 2)) if(registerElements.invitecodeText(self).get_attribute('value') == invite_code1): globalData.LOG += generateLog.format_log('机构邀请码预填正确:' + invite_code1) else: globalData.LOG += generateLog.format_log('机构邀请码预填错误:' + registerElements.invitecodeText(self).get_attribute('value')) registerElements.invitecodeText(self).clear() globalData.LOG += generateLog.format_log('清除邀请码') registerElements.invitecodeText(self).send_keys(invite_code2) globalData.LOG += generateLog.format_log('输入个人邀请码:' + invite_code2) #处理经纪宝注册协议勾选逻辑 if(Data.getTestdata('register', i, 8) == 'None'): globalData.LOG += generateLog.format_log('不对经纪宝注册协议勾选进行校验') elif(Data.getTestdata('register', i, 8) == 'Y'): if(registerElements.protocolCheckbox(self, 1)): globalData.LOG += generateLog.format_log('《经纪宝注册协议》默认勾选') else: globalData.LOG += generateLog.format_log('《经纪宝注册协议》默认未勾选错误') registerElements.protocolCheckbox(self, 1).click() globalData.LOG += generateLog.format_log("不勾选《经纪宝注册协议》") registerElements.protocolCheckbox(self, 2).click() globalData.LOG += generateLog.format_log("勾选《经纪宝注册协议》") if(registerElements.protocolCheckbox(self, 1)): globalData.LOG += generateLog.format_log('《经纪宝注册协议》已勾选') else: globalData.LOG += generateLog.format_log('《经纪宝注册协议》未勾选错误') else: if(registerElements.protocolCheckbox(self, 1)): globalData.LOG += generateLog.format_log('《经纪宝注册协议》默认勾选') else: globalData.LOG += generateLog.format_log('《经纪宝注册协议》默认未勾选错误') registerElements.protocolCheckbox(self, 1).click() globalData.LOG += generateLog.format_log('不勾选《经纪宝注册协议》') #处理经纪宝注册协议内容逻辑 if(Data.getTestdata('register', i, 8) == 'None'): globalData.LOG += generateLog.format_log('不对经纪宝注册协议内容校验') elif(Data.getTestdata('register', i, 8) == 'Y'): registerElements.protocolLink(self).click() globalData.LOG += generateLog.format_log('点击《经纪宝注册协议》') if(registerElements.protocolPage(self)): globalData.LOG += generateLog.format_log('《经纪宝注册协议》页面显示正确') else: globalData.LOG += generateLog.format_log('《经纪宝注册协议》页面显示错误') if(registerElements.protocolText(self)): globalData.LOG += generateLog.format_log('《经纪宝注册协议》内容显示正确') else: globalData.LOG += generateLog.format_log('《经纪宝注册协议》内容显示错误') registerElements.backButton(self).click() globalData.LOG += generateLog.format_log('返回注册页面') #校验客服电话 if(Data.getTestdata('register', i, 11) == 'None'): globalData.LOG += generateLog.format_log('不对注册页面的客服电话校验') elif(Data.getTestdata('register', i, 11) == 'Y'): try: el = registerElements.servicephoneText(self) globalData.LOG += generateLog.format_log('注册页面的客服电话显示正确') except: generateLog.format_log('注册页面的客服电话错误\n' + traceback.format_exc()) #处理点击注册按钮逻辑 if(Data.getTestdata('register', i, 10) == 'None'): globalData.LOG += generateLog.format_log('不对点击注册进行校验') registerElements.loginButton(self).click() globalData.LOG += generateLog.format_log('注册页面点击登录按钮') elif(Data.getTestdata('register', i, 10) == 'Y'): registerElements.registerButton(self).click() globalData.LOG += generateLog.format_log("点击注册按钮") if(Data.getTestdata('register', i, 13) == '1'): screenShot.get_screenshot(self, i) registerElements.loginButton(self).click() globalData.LOG += generateLog.format_log('注册页面点击登录按钮') elif(Data.getTestdata('register', i, 13) == '2'): try: if(registerElements.popupText(self).get_attribute('name') == Data.getTestdata('register', i, 14)): globalData.LOG += generateLog.format_log('弹框提示正确:' + Data.getTestdata('register', i, 14)) try: registerElements.cancelButton(self).click() globalData.LOG += generateLog.format_log('点击取消') except: registerElements.confirmButton(self).click() globalData.LOG += generateLog.format_log('点击确定') Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('弹框提示错误') Data.setExecutionresult(globalData.MODULE, i, 'Fail') registerElements.loginButton(self).click() globalData.LOG += generateLog.format_log('注册页面点击登录按钮') except: globalData.LOG += generateLog.format_log('弹框提示错误') #处理注册成功校验逻辑 if(Data.getTestdata('register', i, 12) == 'Y'): try: if(tabElements.mineTab(self)): globalData.LOG += generateLog.format_log('注册成功') tabElements.mineTab(self).click() globalData.LOG += generateLog.format_log("点击'我的'选项卡") if(Data.getTestdata('register', i, 13) == '3'): mineElements.invitecodeLink(self).click() globalData.LOG += generateLog.format_log('进入活动邀请码页面') el = mineElements.invitecodeText(self) globalData.LOG += generateLog.format_log('错误邀请码未显示') mineElements.backButton(self).click() globalData.LOG += generateLog.format_log('回到我的页面') settingElements.settingButton(self).click() globalData.LOG += generateLog.format_log("点击设置按钮") settingElements.logoutButton(self).click() globalData.LOG += generateLog.format_log("点击退出登录") el = loginElements.loginPage(self) globalData.LOG += generateLog.format_log("成功退出") Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('注册成功页面显示错误') Data.setExecutionresult(globalData.MODULE, i, 'Fail') except: globalData.LOG += generateLog.format_log('注册失败') Data.setExecutionresult(globalData.MODULE, i, 'Fail') elif(Data.getTestdata('register', i, 12) == 'None'): globalData.LOG += generateLog.format_log('不对注册成功逻辑进行校验')
def protocolPage(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('register', 'register', 'protocolPage', 1)))) return el except: globalData.LOG += generateLog.format_log("控件protocolPage未找到\n" + traceback.format_exc())
def cipherpasswordText(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('register', 'register', 'cipherpasswordText', 1)))) return el except: globalData.LOG += generateLog.format_log("控件cipherpasswordText未找到\n" + traceback.format_exc())
def loginButton(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.ID, Data.getXpath('register', 'register', 'loginButton', 1)))) return el except: globalData.LOG += generateLog.format_log("控件loginButton未找到\n" + traceback.format_exc())
def login(self, i): reload(sys) sys.setdefaultencoding('utf-8') #构造前置条件:已注册或者未注册 if(Data.getPrecondition('login', i) == '手机号未注册'): if(userStatus.isRegisterSuccess(Data.getTestdata('login', i, 2)) == True): dataBase.del_buser(Data.getTestdata('login', i, 2)) else: if(userStatus.isRegisterSuccess(Data.getTestdata('register', i, 2)) == False): dataBase.insert_buser(Data.getTestdata('login', i, 2)) redis.clear_vercode(Data.getTestdata('login', i, 2)) redis.uncheckexamstatus(Data.getTestdata('login', i, 2)) redis.uncheckfacesignin(Data.getTestdata('login', i, 2)) redis.uncheckdailymsg_complaint(Data.getTestdata('login', i, 2)) dataBase.uncheckmugshot(Data.getTestdata('login', i, 2)) dataBase.uncheckdailymsg_id(Data.getTestdata('login', i, 2)) if(userStatus.isLoginSuccess(self) == True): logout.logout_smoking(self) #进入登录页面校验 try: if(loginElements.loginPage(self)): globalData.LOG += generateLog.format_log('登录页面正确显示') except: globalData.LOG += generateLog.format_log('登录页面显示错误') #处理登录手机号逻辑 try: loginElements.usernameText(self).clear() loginElements.usernameText(self).send_keys(Data.getTestdata('login', i, 2)) globalData.LOG += generateLog.format_log('输入手机号:' + Data.getTestdata('login', i, 2)) except: globalData.LOG += generateLog.format_log('手机号输入错误\n' + traceback.format_exc()) #处理登录密码逻辑 try: loginElements.cipherpasswordText(self).clear() loginElements.cipherpasswordText(self).send_keys(Data.getTestdata('login', i, 3)) globalData.LOG += generateLog.format_log('输入密码:' + Data.getTestdata('login', i, 3)) except: globalData.LOG += generateLog.format_log('密码输入错误\n' + traceback.format_exc()) #处理登录密码明暗文逻辑 try: if(Data.getTestdata('login', i, 4) == 'None'): globalData.LOG += generateLog.format_log('不对密码明暗文进行校验') elif(Data.getTestdata('login', i, 4) == 'Y'): if('•' in loginElements.cipherpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:暗文') else: globalData.LOG += generateLog.format_log('密码显示错误:明文') loginElements.eyecloseButton(self).click() globalData.LOG += generateLog.format_log("切换密码为明文") if('•' not in loginElements.plainpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:明文') else: globalData.LOG += generateLog.format_log('密码显示错误:暗文') loginElements.eyeopenButton(self).click() globalData.LOG += generateLog.format_log("切换密码为暗文") if('•' in loginElements.cipherpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:暗文') else: globalData.LOG += generateLog.format_log('密码显示错误:明文') except: globalData.LOG += generateLog.format_log('明暗文逻辑错误\n' + traceback.format_exc()) #处理登录页面客服电话逻辑 try: if(Data.getTestdata('login', i, 5) == 'None'): globalData.LOG += generateLog.format_log('不对客服电话校验') else: if(loginElements.servicephoneText(self)): globalData.LOG += generateLog.format_log('客服电话显示正确') except: globalData.LOG += generateLog.format_log('客服电话显示错误\n' + traceback.format_exc()) #登录按钮点击逻辑校验 try: if(Data.getTestdata('login', i, 6) == 'Y'): loginElements.loginButton(self).click() globalData.LOG += generateLog.format_log('点击登录按钮') if(Data.getTestdata('login', i, 8) == '2'): if(Data.getTestdata('login', i, 10) == '账号锁定'): for j in range(0, 4): loginElements.confirmButton(self).click() globalData.LOG + generateLog.format_log('点击确定按钮') loginElements.loginButton(self).click() globalData.LOG += generateLog.format_log('点击登录按钮') try: if(loginElements.popupText(self).get_attribute('name') == Data.getTestdata('login', i, 9)): globalData.LOG += generateLog.format_log('弹框提示正确:' + Data.getTestdata('login', i, 9)) loginElements.confirmButton(self).click() globalData.LOG += generateLog.format_log('点击确定') Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('弹框提示错误: ' + loginElements.popupText(self).get_attribute('name') ) Data.setExecutionresult(globalData.MODULE, i, 'Fail') except: globalData.LOG += generateLog.format_log('弹框提示错误') except: globalData.LOG += generateLog.format_log('登录错误\n' + traceback.format_exc()) #登录成功逻辑校验 try: if(Data.getTestdata('login', i, 7) == 'Y'): if(tabElements.mineTab(self)): globalData.LOG += generateLog.format_log('登录成功') tabElements.mineTab(self).click() globalData.LOG += generateLog.format_log("点击'我的'选项卡") settingElements.settingButton(self).click() globalData.LOG += generateLog.format_log("点击设置按钮") settingElements.logoutButton(self).click() globalData.LOG += generateLog.format_log("点击退出登录") el = loginElements.loginPage(self) globalData.LOG += generateLog.format_log("成功退出") Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('注册成功页面显示错误') Data.setExecutionresult(globalData.MODULE, i, 'Fail') elif(Data.getTestdata('login', i, 7) == 'None'): globalData.LOG += generateLog.format_log('不对注册成功逻辑进行校验') except: globalData.LOG += generateLog.format_log('登录失败') Data.setExecutionresult(globalData.MODULE, i, 'Fail')
def endvideoButton(self): try: el = WebDriverWait(self.driver, 60).until(EC.element_to_be_clickable((By.XPATH, Data.getXpath('account', 'account', 'endvideoButton', 1)))) time.sleep(5) return el except: globalData.LOG += generateLog.format_log("控件endvideoButton未找到\n" + traceback.format_exc())
def videoreadyButton(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('account', 'account', 'videoreadyButton', 1)))) return el except: globalData.LOG += generateLog.format_log("控件videoreadyButton未找到\n" + traceback.format_exc())
def generate_report(): time = relatedTime.reporttime() file = globalData.PATH + '/TestResult/TestReport' + '_' + time + '.xlsx' image = globalData.PATH + '/TestData/app.png' #新建工作簿 workbook = xlsxwriter.Workbook(file) #新建工作表:环境 summary = workbook.add_worksheet('Summary') #新建工作表:概况 analysis = workbook.add_worksheet('Analysis') #新建工作表:模块明细 modules = [] for i in range(0, len(globalData.EXECUTED)): modules.append(workbook.add_worksheet(globalData.EXECUTED[i].keys()[0])) #格式设定 #设置工作表Summary单元格的宽高 summary.set_column('A:B', 40) for i in range(20, 24): summary.set_row(i, 20) #设置工作表analysis单元格的宽高 analysis.set_column('A:G', 15) for i in range(1, 50): analysis.set_row(i, 20) #设置工作表单元格的宽高 for i in range(0, len(modules)): modules[i].set_column('A:B', 15) title_format = workbook.add_format({ 'bold': 2, 'border': 1, 'align': 'center', 'valign': 'vcenter', 'font_name': u'黑体', 'font_size': 20}) info_format = workbook.add_format({ 'bold': 1, 'border': 1, 'align': 'center', 'valign': 'vcenter', 'font_name': u'黑体', 'font_size': 11}) table_format = workbook.add_format({ 'bold': 0, 'border': 0, 'align': 'center', 'valign': 'vcenter', 'font_name': u'黑体', 'font_size': 11}) header = [{'header': 'Moudule', 'total_string': 'Totals', 'format': table_format}, {'header': 'Total', 'total_function': 'sum','format': table_format}, {'header': 'Pass', 'total_function': 'sum','format': table_format}, {'header': 'Fail', 'total_function': 'sum','format': table_format}, {'header': 'Not Executed', 'total_function': 'sum','format': table_format}, {'header': 'Result', 'format': table_format} ] module_header = [{'header': 'Case NO.', 'format': table_format}, {'header': 'Result', 'format': table_format}] title = { 'name': u'用例执行概况', 'name_font': {'size': 14, 'bold': True}, 'num_font': {'黑体': True }, } module_title = { 'name': u'模块用例执行概况', 'name_font': {'size': 14, 'bold': True}, 'num_font': {'黑体': True }, } url_format = workbook.add_format({ 'font_color': 'blue', 'underline': 1, 'bold': 0, 'border': 0, 'align': 'center', 'valign': 'vcenter', 'font_name': u'黑体', 'font_size': 11 }) #获取用例执行数据 data = [] for i in range(0, len(globalData.EXECUTED)): module = globalData.EXECUTED[i].keys()[0] Total, Pass, Fail, Notexecuted, Result = get_module_result(globalData.EXECUTED[i].values()[0]) data.append([module, Total, Pass, Fail, Notexecuted, Result]) #获取总的用例执行结果 result = '' for i in range(0, len(data)): if(data[i][5] == 'Fail'): result = 'Fail' break if(result == ''): result = 'Pass' #制作封面 version = globalData.VERSION summary.merge_range('A1:B2', u'自动化测试报告', title_format) summary.merge_range('A3:B20', '', title_format) summary.insert_image('A3', image, {'x_scale': 1.5, 'y_scale': 1.5, 'x_offset': 175, 'y_offset': 45}) summary.write("A21", u'产品', info_format) summary.write("B21", u'Bapp-经纪宝', info_format) summary.write("A22", u'环境', info_format) summary.write("B22", u'测试环境', info_format) summary.write("A23", u'APP版本', info_format) summary.write("B23", version, info_format) summary.write("A24", u'执行结果', info_format) summary.write("B24", result, info_format) summary.write("A25", u'执行日期', info_format) summary.write("B25", relatedTime.currenttime()[0:10], info_format) #绘制用例执行概况表格 rows = len(globalData.EXECUTED) analysis.add_table("A2:F" + str(rows +3), {'data': data, 'columns': header, 'style': 'Table Style Light 11', 'total_row': 1}) analysis.merge_range('A1:F1', u'用例执行概况', title_format) analysis.write("F" + str(rows + 3), result, table_format) #绘制模块用例执行明细的超链接 for i in range(0, len(globalData.EXECUTED)): analysis.write_url('A' + str(i + 3), 'internal:' + globalData.EXECUTED[i].keys()[0] + '!A1', url_format, globalData.EXECUTED[i].keys()[0]) #绘制用例执行概况饼状图 analysis_pie_chart = workbook.add_chart({'type': 'pie'}) analysis_pie_chart.add_series({ 'categories': '=(Analysis!$C$2:$E$2)', 'values': '=(Analysis!$C$' + str(rows + 3) + ':$E$' + str(rows + 3) + ')', 'data_labels': {'value': True, 'percentage': True} }) analysis_pie_chart.set_title(title) analysis_pie_chart.set_size({'width': 400, 'height': 400}) analysis.insert_chart('A' + str(rows + 7), analysis_pie_chart) #绘制模块用例执行概况柱形图 analysis_column_chart = workbook.add_chart({'type': 'column', 'subtype': 'percent_stacked'}) analysis_column_chart.add_series({ 'name': '=Analysis!$C$2', 'categories': '=Analysis!$A$3:$A$' + str(rows + 2), 'values': '=Analysis!$C$3:$C$' + str(rows + 2), 'data_labels': {'value': True, 'percentage': True} }) analysis_column_chart.add_series({ 'name': '=Analysis!$D$2', 'categories': '=Analysis!$A$3:$A$' + str(rows + 2), 'values': '=Analysis!$D$3:$D$' + str(rows + 2), 'data_labels': {'value': True, 'percentage': True} }) analysis_column_chart.add_series({ 'name': '=Analysis!$E$2', 'categories': '=Analysis!$A$3:$A$' + str(rows + 2), 'values': '=Analysis!$E$3:$E$' + str(rows + 2), 'data_labels': {'value': True, 'percentage': True} }) analysis_column_chart.set_x_axis({'name': u'模块'}) analysis_column_chart.set_y_axis({'name': u'百分比'}) analysis_column_chart.set_title(module_title) analysis_column_chart.set_style(10) analysis_column_chart.set_size({'width': 600, 'height': 400}) analysis.insert_chart('A' + str(rows + 25), analysis_column_chart) #绘制模块用例执行情况明细表 for i in range(0, len(modules)): case_count = Data.getCasenumber(globalData.EXECUTED[i].keys()[0]) module_data = [] for j in range(0, len(globalData.EXECUTED[i].values()[0])): module_data.append([j + 1, globalData.EXECUTED[i].values()[0][j]]) modules[i].add_table("A1:B" + str(case_count + 1), {'data': module_data, 'columns': module_header, 'style': 'Table Style Light 11'}) #关闭工作簿 workbook.close()
try: registerElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log("输入验证码: " + code) except Exception, e: globalData.LOG += generateLog.format_log("注册页面验证码输入框错误\n" + traceback.format_exc()) try: registerElements.pswfirstSecureText(self).send_keys(str(password)) globalData.LOG += generateLog.format_log("输入注册密码: " + str(password)) except Exception, e: globalData.LOG += generateLog.format_log("注册页面密码输入框错误\n" + traceback.format_exc()) #注册昵称验证 try: registerElements.nicknameText(self).send_keys(unicode(str(nickname), 'utf-8')) globalData.LOG += generateLog.format_log("输入昵称: " + Data.getValue('register', 'register', 'nicknameText', 1)) except Exception, e: globalData.LOG += generateLog.format_log("注册页面昵称输入框错误\n" + traceback.format_exc()) #注册页面注册按钮验证 try: registerElements.registerButton(self).click() globalData.LOG += generateLog.format_log("点击注册按钮") except Exception, e: globalData.LOG += generateLog.format_log("注册页面注册按钮错误\n" + traceback.format_exc()) #验证注册成功 try: el = tabElements.customerTab(self) globalData.LOG += generateLog.format_log("注册完成页面正确显示") except Exception, e:
def forgetpassword(self, i): reload(sys) sys.setdefaultencoding('utf-8') #构造前置条件:注册 if(Data.getPrecondition('forgetpassword', i) != '未注册的手机号'): dataBase.insert_buser(Data.getTestdata('forgetpassword', i, 2)) session = dataBase.db_session() session.execute("update b_user set password = '******' where mobilephone = '" + Data.getTestdata('forgetpassword', i, 2) + "'") session.commit() oldpassword = dataBase.get_buser_password(Data.getTestdata('forgetpassword', i, 2)) if(userStatus.isLoginSuccess(self) == True): logout.logout_smoking(self) redis.clear_vercode(Data.getTestdata('forgetpassword', i, 2)) #进入忘记密码校验 try: loginElements.forgetpswLink(self).click() if(forgetpswElements.fetchpasswordPage(self)): globalData.LOG += generateLog.format_log('忘记密码页面显示正确') except: globalData.LOG += generateLog.format_log('忘记密码页面显示错误\n' + traceback.format_exc()) #处理手机号逻辑 try: forgetpswElements.phoneText(self).clear() forgetpswElements.phoneText(self).send_keys(Data.getTestdata('forgetpassword', i, 2)) globalData.LOG += generateLog.format_log('输入手机号:' + Data.getTestdata('forgetpassword', i, 2)) except: globalData.LOG += generateLog.format_log('手机号错误\n' + traceback.format_exc()) #处理验证码逻辑 try: if(Data.getTestdata('forgetpassword', i, 3) == 'None'): forgetpswElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log('点击发送验证码') if(Data.getTestdata('forgetpassword', i, 8) == '1'): screenShot.get_screenshot(self, i) elif(Data.getTestdata('forgetpassword', i, 8) == '2'): if(forgetpswElements.popupText(self).get_attribute('name') == Data.getTestdata('forgetpassword', i, 9)): globalData.LOG += generateLog.format_log('提示正确:' + Data.getTestdata('forgetpassword', i, 9)) forgetpswElements.confirmButton(self).click() globalData.LOG += generateLog.format_log('点击确定') Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('提示错误:' + forgetpswElements.popupText(self).get_attribute('name')) forgetpswElements.confirmButton(self).click() globalData.LOG += generateLog.format_log('点击确定') Data.setExecutionresult(globalData.MODULE, i, 'Fail') globalData.LOG += generateLog.format_log('不对验证码进行校验') elif(Data.getTestdata('forgetpassword', i, 3) == 'Y'): forgetpswElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log('验证码发送中...') time.sleep(3) globalData.LOG += generateLog.format_log('验证码发送成功!') code = redis.registerVercode(Data.getTestdata('forgetpassword', i, 2)) forgetpswElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log('输入验证码:' + code) elif(Data.getTestdata('forgetpassword', i, 10) == '6位错误的验证码'): forgetpswElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log('验证码发送中...') time.sleep(3) globalData.LOG += generateLog.format_log('验证码发送成功!') code = '111111' forgetpswElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log('输入错误验证码:' + code) elif(Data.getTestdata('forgetpassword', i, 10) == '6位过期的验证码'): forgetpswElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log('验证码发送中...') time.sleep(3) globalData.LOG += generateLog.format_log('验证码发送成功!') code = redis.registerVercode(Data.getTestdata('forgetpassword', i, 2)) redis.expireregisterVercode(Data.getTestdata('forgetpassword', i, 2)) forgetpswElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log('输入过期验证码:' + code) elif(Data.getTestdata('forgetpassword', i, 10) == '使用过的验证码'): forgetpswElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log('验证码发送中...') time.sleep(3) globalData.LOG += generateLog.format_log('验证码发送成功!') code = redis.registerVercode(Data.getTestdata('forgetpassword', i, 2)) forgetpswElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log('输入验证码:' + code) forgetpswElements.cipherpasswordText(self).send_keys(Data.getTestdata('forgetpassword', i, 4)) globalData.LOG += generateLog.format_log('输入密码:' + Data.getTestdata('forgetpassword', i, 4)) forgetpswElements.findButton(self).click() globalData.LOG += generateLog.format_log('点击确定按钮,回到登录页面') loginElements.forgetpswLink(self).click() globalData.LOG += generateLog.format_log('点击忘记密码链接') forgetpswElements.phoneText(self).send_keys(Data.getTestdata('forgetpassword', i, 2)) globalData.LOG += generateLog.format_log('输入手机号:' + Data.getTestdata('forgetpassword', i, 2)) redis.expireregisterVercode(Data.getTestdata('forgetpassword', i, 2)) forgetpswElements.vercodeText(self).send_keys(code) globalData.LOG += generateLog.format_log('输入使用过的验证码:' + code) elif(Data.getTestdata('forgetpassword', i, 10) == '超过60s重新触发发送验证码'): forgetpswElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log('验证码发送中...') time.sleep(3) globalData.LOG += generateLog.format_log('验证码发送成功!') if(forgetpswElements.vercodeButton(self).get_attribute('name') != '发送验证码'): globalData.LOG += generateLog.format_log('验证码发送过程发送验证码按钮文案显示正确') else: globalData.LOG += generateLog.format_log('验证码发送过程发送验证码按钮文案显示错误:' + forgetpswElements.vercodeButton(self).get_attribute('text')) time.sleep(60) globalData.LOG += generateLog.format_log('等待60s') if(forgetpswElements.vercodeButton(self).get_attribute('name') == '重新发送'): globalData.LOG += generateLog.format_log('验证码发送过程发送验证码按钮文案显示正确') Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('验证码发送过程发送验证码按钮文案显示错误:' + forgetpswElements.vercodeButton(self).get_attribute('text')) Data.setExecutionresult(globalData.MODULE, i, 'Fail') redis.clear_vercode(Data.getNumber('register', 'register', 'phoneText', i)) globalData.LOG += generateLog.format_log('清除redis验证码缓存') forgetpswElements.vercodeButton(self).click() globalData.LOG += generateLog.format_log("验证码发送中...") time.sleep(3) globalData.LOG += generateLog.format_log('验证码发送成功!') else: forgetpswElements.vercodeText(self).clear() forgetpswElements.vercodeText(self).send_keys(Data.getTestdata('forgetpassword', i, 3)) globalData.LOG += generateLog.format_log('输入验证码:' + Data.getTestdata('forgetpassword', i, 3)) except: globalData.LOG += generateLog.format_log('验证码错误\n' + traceback.format_exc()) #处理密码逻辑 try: if(Data.getTestdata('forgetpassword', i, 4) == 'None'): globalData.LOG += generateLog.format_log('不对密码进行校验') else: forgetpswElements.cipherpasswordText(self).send_keys(Data.getTestdata('forgetpassword', i, 4)) globalData.LOG += generateLog.format_log('输入密码:' + Data.getTestdata('forgetpassword', i, 4)) except: globalData.LOG += generateLog.format_log('密码错误\n' + traceback.format_exc()) #处理密码明暗文逻辑 try: if(Data.getTestdata('forgetpassword', i, 5) == 'None'): globalData.LOG += generateLog.format_log('不对密码明暗文进行校验') elif(Data.getTestdata('forgetpassword', i, 5) == 'Y'): if('•' in forgetpswElements.cipherpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:暗文') else: globalData.LOG += generateLog.format_log('密码显示错误:明文') forgetpswElements.eyecloseButton(self).click() globalData.LOG += generateLog.format_log("切换密码为明文") if('•' not in forgetpswElements.plainpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:明文') else: globalData.LOG += generateLog.format_log('密码显示错误:暗文') forgetpswElements.eyeopenButton(self).click() globalData.LOG += generateLog.format_log("切换密码为暗文") if('•' in forgetpswElements.cipherpasswordText(self).get_attribute('value')): globalData.LOG += generateLog.format_log('密码显示正确:暗文') else: globalData.LOG += generateLog.format_log('密码显示错误:明文') except: globalData.LOG += generateLog.format_log('明暗文逻辑错误\n' + traceback.format_exc()) #处理点击确定按钮逻辑 try: if(Data.getTestdata('forgetpassword', i, 6) == 'None'): globalData.LOG += generateLog.format_log('不对点击确定进行校验') forgetpswElements.backButton(self).click() globalData.LOG += generateLog.format_log('忘记密码页面点击返回按钮') elif(Data.getTestdata('forgetpassword', i, 6) == 'Y'): forgetpswElements.findButton(self).click() globalData.LOG += generateLog.format_log("点击确定按钮") if(Data.getTestdata('forgetpassword', i, 8) == '1'): screenShot.get_screenshot(self, i) forgetpswElements.backButton(self).click() globalData.LOG += generateLog.format_log('忘记密码页面点击返回按钮') elif(Data.getTestdata('forgetpassword', i, 8) == '2'): if(forgetpswElements.popupText(self).get_attribute('name') == Data.getTestdata('forgetpassword', i, 9)): globalData.LOG += generateLog.format_log('弹框提示正确:' + Data.getTestdata('forgetpassword', i, 9)) forgetpswElements.confirmButton(self).click() globalData.LOG += generateLog.format_log('点击确定') Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('弹框提示错误') Data.setExecutionresult(globalData.MODULE, i, 'Fail') forgetpswElements.backButton(self).click() globalData.LOG += generateLog.format_log('忘记密码页面点击返回按钮') except: globalData.LOG += generateLog.format_log('忘记密码\n' + traceback.format_exc()) #处理忘记密码成功校验逻辑 try: if(Data.getTestdata('forgetpassword', i, 7) == 'Y'): newpassword = dataBase.get_buser_password(Data.getTestdata('forgetpassword', i, 2)) if(loginElements.loginPage(self) and oldpassword != newpassword): globalData.LOG += generateLog.format_log('忘记密码成功') Data.setExecutionresult(globalData.MODULE, i, 'Pass') else: globalData.LOG += generateLog.format_log('登录页面显示错误') Data.setExecutionresult(globalData.MODULE, i, 'Fail') elif(Data.getTestdata('forgetpassword', i, 7) == 'None'): globalData.LOG += generateLog.format_log('不对忘记密码成功逻辑进行校验') except: globalData.LOG += generateLog.format_log('忘记密码失败') Data.setExecutionresult(globalData.MODULE, i, 'Fail')
def confirmButton(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('setting', 'reset', 'confirmButton', 1)))) return el except: globalData.LOG += generateLog.format_log("控件confirmButton未找到\n" + traceback.format_exc())
def cameralimitButton(self): try: el = WebDriverWait(self.driver, 3).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('mine', 'personalinfo', 'cameralimitButton', 1)))) return el except: globalData.LOG += generateLog.format_log("控件cameralimitButton未找到\n" + traceback.format_exc())
def registerLink(self): try: el = WebDriverWait(self.driver, 5).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('login', 'login', 'registerLink', 1)))) return el except: globalData.LOG += generateLog.format_log("控件registerLink未找到\n" + traceback.format_exc())
def welcome_title(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('welcome', 'welcome', 'welcome_title', 1)))) return el except: globalData.LOG += generateLog.format_log("控件welcome_title未找到\n" + traceback.format_exc())
def personcenterButton(self): try: el = WebDriverWait(self.driver, 5).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('first', 'first', 'personcenterButton', 1)))) return el except: globalData.LOG += generateLog.format_log("控件personcenterButton未找到\n" + traceback.format_exc())
def affiliateLink(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('mine', 'mine', 'affiliateLink', 1)))) return el except: globalData.LOG += generateLog.format_log("控件affiliateLink未找到\n" + traceback.format_exc())
def versionUpdate_cancel(self): try: el = WebDriverWait(self.driver, 3).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('welcome', 'welcome', 'versionUpdate_cancel', 1)))) return el except: globalData.LOG += generateLog.format_log("控件versionUpdate_cancel未找到\n" + traceback.format_exc())
def currentcontinuouscommissionText(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('mine', 'currentrecord', 'currentcontinuouscommissionText', 1)))) return el except: globalData.LOG += generateLog.format_log("控件currentcontinuouscommissionText未找到\n" + traceback.format_exc())
def tradeTab(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('tab', 'trade', 'tradeTab', 1)))) return el except: globalData.LOG += generateLog.format_log("控件tradeTab未找到\n" + traceback.format_exc())
def incomedetailrecommandText(self): try: el = WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.XPATH, Data.getXpath('mine', 'historyrecord', 'incomedetailrecommandText', 1)))) return el except: globalData.LOG += generateLog.format_log("控件incomedetailrecommandText未找到\n" + traceback.format_exc())