def setup_class(self): my_logger.info("##########所有测试用例之前,setupClass整个测试类只执行一次##########") print("##########所有测试用例之前,setupClass整个测试类只执行一次##########") self.driver = webdriver.Chrome() self.driver.get(CD.web_login_url) self.lg = LoginPage(self.driver) #点击登录的按钮,进入登陆的页面 self.lg.enter_Login()
def prepare_login(self, driver, logging, name, testdatas): logging.info('前提:登录状态') BottomWidget(driver, logging, name).switch_bottom_widget('我') LoginPage(driver, logging, name).input_tele(testdatas['tele']) LoginPage(driver, logging, name).input_pwd(testdatas['pwd']) time.sleep(2) if UserPage(driver, logging, name).popbox_is_visiable(): UserPage(driver, logging, name).click_popbox_btn_later() time.sleep(2) try: assert not IndexPage(driver, logging, name).visiable_login_btn() logging.info('确认登录成功!') except Exception as e: logging.exception('登录失败!') raise e
def test_login_2_passwd_wrongFormat(self, data1): my_logger.info('此时输入的用户名{0}密码是{1}'.format(data1['user'], data1['passwd'])) #步骤 输入用户名密码点击登录 self.lg.login(data1['user'], data1['passwd']) #断言 登录页面中,获取登陆框中文本内容 #对比文本内容与期望值是否一致 assert LoginPage(self.driver).pwd_errMsg(), data1['check']
def test_login_1_user_wrongFormat(self, data): my_logger.info('此时输入的用户名是{0}密码是{1}'.format(data['user'], data['passwd'])) #步骤 输入用户名 密码点击登录 self.lg.login(data['user'], data['passwd']) #断言,登录页面提示 #登录页面中,获取登录框中文本内容 #对比文本内容与期望值是否相等 assert LoginPage(self.driver).user_errMsg() == data['check']
def test_login_tele_wrong(self, init_class_keep, init_session, testdatas): init_session.info('手机号输入错误用例') name = '手机号输入错误' if BottomWidget(init_class_keep, init_session, name).visiable_bottom_widget('我'): BottomWidget(init_class_keep, init_session, name).switch_bottom_widget('我') LoginPage(init_class_keep, init_session, name).input_tele(testdatas['tele']) time.sleep(2) try: assert LoginPage(init_class_keep, init_session, name).get_popbox_text() == testdatas['msg'] init_session.info('Test Pass!') except Exception as e: init_session.info('Test Fail') raise e finally: LoginPage(init_class_keep, init_session, name).popbox_prompt_btn()
def test_login_success(self, init_class_keep, init_session, testdatas): init_session.info('成功登录用例') name = '成功登录' BottomWidget(init_class_keep, init_session, name).switch_bottom_widget('我') LoginPage(init_class_keep, init_session, name).input_tele(testdatas['tele']) LoginPage(init_class_keep, init_session, name).input_pwd(testdatas['pwd']) time.sleep(2) if UserPage(init_class_keep, init_session, name).popbox_is_visiable(): UserPage(init_class_keep, init_session, name).click_popbox_btn_later() time.sleep(2) # BottomWidget(init_keep,init_session,name).switch_bottom_widget('首页') try: assert not IndexPage(init_class_keep, init_session, name).visiable_login_btn() init_session.info('确认登录成功!') except Exception as e: init_session.exception('登录失败!') raise e
class TestLogin(): #针对整个类文件的,在整个测试类开始执行前打开浏览器,并进行初始化 def setup_class(self): my_logger.info("##########所有测试用例之前,setupClass整个测试类只执行一次##########") print("##########所有测试用例之前,setupClass整个测试类只执行一次##########") self.driver = webdriver.Chrome() self.driver.get(CD.web_login_url) self.lg = LoginPage(self.driver) #点击登录的按钮,进入登陆的页面 self.lg.enter_Login() # 在整个测试类执行完,关闭浏览器 def teardown_class(self): my_logger.info( "############所有测试用例之后,tearDownClass,整个测试类只执行一次##########") print("############所有测试用例之后,tearDownClass,整个测试类只执行一次##########") self.driver.quit() #为了每个测试用例不互相干扰,所以每个测试用例执行完毕后刷新浏览器 def teardown(self): my_logger.info("********tearDown每个测试用例执行后都要执行一次********") print("********tearDown每个测试用例执行后都要执行一次********") self.driver.refresh() """ unitest中用例的执行顺序,是按照ACSII码的顺序加载测试用例的,数字与字母的顺序为0--9,A--Z,a--z, 因为正常的用例执行后,会进行页面的跳转,所以才会把正常的用例放在最后面执行,因此才给用例编上号 """ #异常用例 用户不存在,用户名为空 @pytest.mark.parametrize('data', LD.userwrongdate) def test_login_1_user_wrongFormat(self, data): my_logger.info('此时输入的用户名是{0}密码是{1}'.format(data['user'], data['passwd'])) #步骤 输入用户名 密码点击登录 self.lg.login(data['user'], data['passwd']) #断言,登录页面提示 #登录页面中,获取登录框中文本内容 #对比文本内容与期望值是否相等 assert LoginPage(self.driver).user_errMsg() == data['check'] # # # # #异常用例 密码为空,密码不正确 @pytest.mark.parametrize('data1', LD.passwdwrongdata) def test_login_2_passwd_wrongFormat(self, data1): my_logger.info('此时输入的用户名{0}密码是{1}'.format(data1['user'], data1['passwd'])) #步骤 输入用户名密码点击登录 self.lg.login(data1['user'], data1['passwd']) #断言 登录页面中,获取登陆框中文本内容 #对比文本内容与期望值是否一致 assert LoginPage(self.driver).pwd_errMsg(), data1['check'] # #正常用例 登陆成功的用例 def test_login_3_success(self): my_logger.info('正常登陆的用户名是{0},密码是{1}'.format(LD.loginsucess['user'], LD.loginsucess['passwd'])) #输入用户名密码,点击登录 self.lg.login(LD.loginsucess['user'], LD.loginsucess['passwd']) #断言,首页当中能否找到用户这个元素 assert IndexPage(self.driver).isExitUser() # if __name__=="__main__": # pytest