class TestLogin(unittest.TestCase): def setUp(self): # 打开谷歌浏览器,访问课堂派网址 warnings.simplefilter('ignore', ResourceWarning) self.driver = webdriver.Chrome() self.driver.maximize_window() self.driver.get(cd.login_url) self.lp = LoginPage(self.driver) pass def tearDown(self): # self 指的是实例名 # 退出浏览器会话 self.driver.quit() pass def test_01_login_success(self): # 登陆页面-输入用户名 # 登陆页面-输入密码 # 登陆页面-点击登陆按钮 self.lp.login(ld.normal_data["user"], ld.normal_data["passwd"]) # 断言 # 首页-获取元素,确认是否存在 self.assertTrue(IndexPage(self.driver).if_user_is_exist()) @ddt.data(*ld.incorrect_datas) def test_02_login_abnormal(self, data): self.lp.login(data["user"], data["passwd"]) self.assertEqual(data["check"], self.lp.get_error_msg())
def test_login_success(self): logger.info("************登录成功用例****************") lp = LoginPage(self.driver) lp.login(*LoginData.success_data) # 进行断言 try: self.assertTrue(HomePage(self.driver).get_quit_ele_exists()) logger.info("断言成功") except AssertionError as e: logger.exception("断言失败") raise e
def test_login_failed_layui(self, data_info): logger.info("*************登录失败场景2用例***************") lp = LoginPage(self.driver) lp.login(data_info["phone"], data_info["pwd"]) msg_text = lp.get_msg_from_login_layui() # 进行断言 try: self.assertEquals(msg_text, data_info["check"]) logger.info("断言成功") except AssertionError as e: logger.exception("断言失败") raise e
def test_login_failed_form(self, data_info): logger.info("*************登录失败场景1用例*************") # 进行登录操作 lp = LoginPage(self.driver) # 输入空的账号/密码/错误的手机号 lp.login(data_info["phone"], data_info["pwd"]) # 进行断言 try: self.assertEqual(lp.get_msg_from_login_form(), data_info["check"]) logger.info("断言成功") except AssertionError as e: logger.exception("断言失败") raise e
def init_loginedEnv(): #启动浏览器静默模式 option = webdriver.ChromeOptions() option.add_argument('headless') driver = webdriver.Chrome(chrome_options=option) #driver=webdriver.Chrome() driver.get(login_url) #窗口最大化 driver.maximize_window() LoginP=LoginPage(driver) LoginP.wait_iframe_and_switch_to_it(LoginP.account_iframe) LoginP.login(login_data['username'],login_data['passwd']) yield driver driver.quit()
class TestCase(unittest.TestCase): index = 1 def setUp(self) -> None: # #利用缓存跳过登录 # option=webdriver.ChromeOptions() # option.add_argument("--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data") # self.driver = webdriver.Chrome(options=option) self.logger = Logger() self.driver=browser_type("chr") self.lp = LoginPage(self.driver, LoginPage.url) self.lp.login("13800138006", "123456", "1111") # 使用实例变量self才能调用别的方法内的属性 self.sp = SearchPage(self.driver, SearchPage.url) def tearDown(self) -> None: self.sp.quit_browser() # # 登录模块 # @data(*test_data) # @unpack # def test_1_login(self, **test_data): # username = test_data['username'] # password = test_data['password'] # vercode = test_data['vercode'] # self.lp.login(username, password, vercode) # sleep(5) # self.assertEqual(self.lp.get_username(), test_data["veridate"], msg="登录失败") # self.logger.log().info("第{0}个用例,参数username:{1},password:{2},vercode:{3}".format(TestCase.index, username, password, vercode)) # TestCase.index+=1 #搜索模块 @file_data('../config/data.yaml') def test_2_search(self, **kwargs): searchtext = kwargs['search']["text"] varidata = kwargs["varidata"] sleep(5) self.sp.search_shop(searchtext) self.assertEqual(self.sp.get_search_text(), varidata, msg="搜索失败") self.logger.log().info("搜索内容为{},验证内容为{},实际结果为{}".format(searchtext, varidata,self.sp.get_search_text()))
class TestCase: index = 1 def setup(self): # #利用缓存跳过登录 # option=webdriver.ChromeOptions() # option.add_argument("--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data") # self.driver = webdriver.Chrome(options=option) self.logger = Logger() self.driver = browser_type("chr") self.driver.maximize_window() self.lp = LoginPage(self.driver, LoginPage.url) self.sp = SearchPage(self.driver, SearchPage.url) self.cp = OrderList(self.driver, OrderList.url) self.lp.login(13800138006, 123456, 1111) def teardown(self): self.driver.quit() #登录模块 @data(*test_data) @unpack def test_1_login(self, **test_data): username = test_data['username'] password = test_data['password'] vercode = test_data['vercode'] self.lp.login(username, password, vercode) sleep(3) self.logger.log().info( "第{0}个用例,参数username:{1},password:{2},vercode:{3}".format( TestCase.index, username, password, vercode)) TestCase.index += 1 assert self.lp.assert_text() == test_data["veridate"] #搜索模块 @file_data('../config/search.yaml') def test_2_search(self, **kwargs): self.lp.login("13800138006", "123456", "1111") # 使用实例变量self才能调用别的方法内的属性 searchtext = kwargs["text"] varidata = kwargs["varidata"] sleep(3) self.sp.search_shop(searchtext) self.logger.log().info("搜索内容为{},验证内容为{},实际结果为{}".format( searchtext, varidata, self.sp.assert_text())) assert self.sp.assert_text() == varidata #订单号查询 @pytest.mark.parametrize("order, expect", excel_data2) def test_03_check(self, order, expect): self.cp.check_shop(order) assert expect == self.cp.assert_text()
def click_searchbt(self): self.loc(self.searchbt).click() def assert_text(self): return self.loc(self.searchtext).text def search_shop(self,searchtext): self.input_search(searchtext) self.click_searchbt() sleep(1) if __name__ == '__main__': #同一个driver完整执行登录后搜索流程 searchtext = "华为" username = 13800138006 password = 123456 vercode = 1111 driver = webdriver.Chrome() lp = LoginPage(driver,LoginPage.url) lp.login(username, password, vercode) sp = SearchPage(driver,SearchPage.url) sleep(2) sp.input_search(searchtext)
def login(driver, userName, passWd): lp = LoginPage(driver) lp.login(userName, passWd) info("login successfully!") print(dateTimeChinese())