def test_invest_2_failed_no(self): bp = BidPage(self.driver) bp.invest(0) time.sleep(1) expected = '请正确填写投标金额' BasePage(self.driver).wait_eleVisible(BidPageLocator.invest_failed_popup) actual = self.driver.find_element(*BidPageLocator.invest_failed_popup).text self.assertEqual(expected, actual)
def test_invest_1_failed_invalid_data(self): # IndexPage(self.driver).click_firstBid() bp = BidPage(self.driver) bp.invest(-100) time.sleep(1) expected = '请正确填写投标金额' BasePage(self.driver).wait_eleVisible(BidPageLocator.invest_failed_popup) actual = self.driver.find_element_by_xpath('//div[@class="text-center"]').text self.assertEqual(expected, actual)
def test_invest_failed_no100(self, back_home): logger.info(" **** 异常用例:投资失败 检验:???? ***** ") # 前置 - 步骤 - 断言 # 1、首页 - 选择第1个标,点击抢投标按钮 HomePage(back_home).click_first_invest_button() # 2、标页面 - 输入投资金额50,点击投资按钮。 bp = BidPage(back_home) bp.invest(50) # 断言 assert bp.get_msg_on_invest_faild_popup() == "投标金额必须为100的倍数"
def test_invest_0_failed_no100(self): IndexPage(self.driver).click_firstBid() bp = BidPage(self.driver) bp.invest(150) time.sleep(1) expected = '投标金额必须为100的倍数' # actual = BasePage(self.driver).get_element_attribute(BidPageLocator.invest_failed_popup1, "text-center", "投资_非100倍数") BasePage(self.driver).wait_eleVisible(BidPageLocator.invest_failed_popup) actual = self.driver.find_element_by_xpath('//div[@class="text-center"]').text self.assertEqual(expected, actual)
def test_invest_success(self, back_home): logger.info(" **** 正向用例:登陆成功 检验:用户余额是否变化,标的可余额是否变化 ***** ") # 前置 - 步骤 - 断言 # 1、首页 - 选择第1个标,点击抢投标按钮 HomePage(back_home).click_first_invest_button() # 2、标页面 - 获取用户的 投资前的余额 bp = BidPage(back_home) user_money_before_invest = bp.get_user_left_money() # 2、标页面 - 获取标的 投资前的标余额 bid_money_before_invest = bp.get_bid_left_money() # 2、标页面 - 输入投资金额2000,点击投资按钮。 bp.invest(2000) # 3、标页面 - 点击查看并激活 bp.click_activation_button_on_success_popup() # 1、用户的钱少了没有 # 投资之前 - 投资之后 = 2000 # 用户页面 - 得到用户当前余额 user_money_after_invest = UserPage(back_home).get_user_left_money() # 2、标的可投余额少了没有 # 标前 - 标后 = 2000 # 用户页面 - 回退一次 UserPage(back_home).back_last_page().refresh_page() # 刷新页面, # 标页面 - 获取投资后的标余额 bid_money_after_invest = bp.get_bid_left_money() # 1、用户的钱少了没有 assert float(user_money_before_invest) - float( user_money_after_invest) == 2000 assert float(bid_money_before_invest) * 10000 - float( bid_money_after_invest) * 10000 == 2000
def test_invest_failed_no100(self,prepare_nev): # LoginPage(prepare_nev).login(CD.user,CD.passwd) #首页-抢投标按钮-进入投标页面 IndexPage(prepare_nev).click_firstBid() #投标输入框,输入 time.sleep(3) BidPage(prepare_nev).invest(110) #点击投标按钮 a = BidPage(prepare_nev).get_errorMsg_from_pageCenter() #断言文本定位://div[@class="text-center"] assert a,'投标金额必须为100的倍数'
def test_invest_failed_invalid_data(self,prepare_nev): # time.sleep(5) # LoginPage(prepare_nev).login(CD.user, CD.passwd) # # 首页-抢投标按钮-进入投标页面 # IndexPage(prepare_nev).click_firstBid() # 投标输入框,输入 time.sleep(3) input_clear=BidPage(prepare_nev).invest(00000) # 点击投标按钮 a = BidPage(prepare_nev).get_errorMsg_from_pageCenter() # 断言文本定位://div[@class="text-center"] assert a, '请正确填写投标金额'
def test_invest_failed_no10(self,prepare_nev): # time.sleep(5) # LoginPage(prepare_nev).login(CD.user,CD.passwd) # 首页-抢投标按钮-进入投标页面 # time.sleep(3) # IndexPage(prepare_nev).click_firstBid() # 投标输入框,输入 time.sleep(3) BidPage(prepare_nev).bid(72) # 点击投标按钮 a = BidPage(prepare_nev).get_button_text() # 投资为1的时候按钮定位://button[@class="btn btn-special height_style"] assert a, '请输入10的整数倍'
def setUpClass(cls): logging.info("=====用例类前置:初始化浏览器会话=======") cls.driver = webdriver.Chrome() cls.driver.maximize_window() cls.driver.get(CD.web_login_url) LoginPage(cls.driver).login(CD.user, CD.password) IndexPage(cls.driver).click_first_bid() cls.bid_page = BidPage(cls.driver)
def init_driver(): driver = webdriver.Chrome() driver.maximize_window() driver.get(CD.login_url) LoginPage(driver).login(CD.user, CD.passwd) bp = BidPage(driver) yield driver,bp driver.quit()
def test_invest_failed_by_No100(self, login_web): logging.info("*********投资用例:异常场景:投资金额为非100的整数倍*********") # 首页 - 选一个标来投资 - 直接选第一个标 - --- / 随机选一个 IndexPage(login_web).click_first_investButton() # 标页面 - 获取投资前的个人余额 bid_page = BidPage(login_web) userMoney_beforeInvest = bid_page.get_user_leftMoney() # 标页面 - 输入投资金额 ,点击投标按钮 bid_page.invest(ID.no100_data["money"]) # 获取提示信息 errorMsg = bid_page.get_errorMsg_from_popup() # 刷新 login_web.refresh() # 获取用户余额 userMoney_afterInvest = bid_page.get_user_leftMoney() # 断言 assert errorMsg == ID.no100_data["check"] assert userMoney_afterInvest == userMoney_beforeInvest # # def test_invest_fail_no10(self): # pass #异常场景 - 用户余额不够 - 手功用例 #异常场景 - 投资》标的可投余额 - 手功用例
def test_invest_failed_invalid_money(self, invalid_data): logging.info("投资功能 - 异常场景用例:投资金额有效性校验 - 投资金额为非100的整数倍、错误的格式等") # 1、标页面 - 获取输入框当中,投资前的用户余额 user_money_before_invest = BidPage(self.driver).get_user_money() # 2、标页面 - 获取标的余额,投资前。 bid_money_before_invest = BidPage(self.driver).get_bid_left_money() # 3、标页面:投标动作; self.BidPage(self.driver).invest(invalid_data["money"]) # 4、获取页面提示信息 error_msg = self.BidPage(self.driver).get_errorMsg_from_pageCenter() # 5、刷新当前页面,获取用户余额、标余额。 self.driver.refresh() user_money_after_invest = self.BidPage(self.driver).get_user_money() bid_money_after_invest = self.BidPage(self.driver).get_bid_left_money() # 6、断言 - 提示信息是否正确。标的金额不变,用户的余额也不变。 self.assertEqual(error_msg, invalid_data["check"]) self.assertEqual(user_money_before_invest, user_money_after_invest) self.assertEqual(bid_money_before_invest, bid_money_after_invest)
def setUpClass(cls): cls.driver = webdriver.Chrome() cls.driver.maximize_window() cls.driver.get(login_url) cls.lg = LoginPage(cls.driver) cls.lg.login(noraml_login['phone'], noraml_login['pwd']) cls.indexpage = IndexPage(cls.driver) cls.indexpage.click_bid_random() cls.bit = BidPage(cls.driver)
def setUpClass(cls): # 初始化浏览器会话 logging.info("===用例类前置:初始化浏览器会话,登陆前程贷系统=======") cls.driver = webdriver.Chrome() cls.driver.maximize_window() cls.driver.get(CD.web_login_url) LoginPage(cls.driver).login(CD.user, CD.passwd) # 首页 - 选一个标来投资 - 直接选第一个标 -- / 随机选一个 IndexPage(cls.driver).click_first_bid() cls.bid_page = BidPage(cls.driver)
def setUpClass(cls): # 初始化浏览器会话 # 通过excel读取本功能当中需要的所有测试数 cls.driver = webdriver.Chrome() cls.driver.maximize_window() cls.driver.get(CD.web_login_url) LoginPage(cls.driver).login(LD.success_data["user"], LD.success_data["password"]) # 1. 在首页投资 ---不根据标名,根据抢投标。默认第一个表 IndexPage(cls.driver).click_first_bid() cls.bid_page = BidPage(cls.driver)
def setUpClass(cls): cls.driver = webdriver.Chrome() cls.driver.get('http://120.78.128.25:8765/Index/login.html') cls.driver.maximize_window() cls.ip = IndexPage(cls.driver) cls.bp = BidPage(cls.driver) cls.lp = LoginPage(cls.driver) cls.up = UserPage(cls.driver) # 登陆账号 cls.lp.login(LD.sucess_data['phone'], LD.sucess_data['password']) # 选择投标 cls.ip.select_invest()
def test_invest_success(self): """ 正向场景 - 投资成功:投资金额固定为20000 """ # 步骤 logging.info("投资功能 - 正常场景用例:投资20000元成功。用户可用余额减少20000,标余额减少20000 ") # 1、首页 - 第一标 - 抢投标 HomePage(self.driver).click_first_bid() # 2、标页面 - 获取输入框当中,投资前的用户余额 user_money_before_invest = BidPage(self.driver).get_user_money() # 3、标页面 - 获取标的余额,投资前。 bid_money_before_invest = BidPage(self.driver).get_bid_left_money() # 4、标页面 - 输入金额20000,点击投标 BidPage(self.driver).invest(ID.success["money"]) # 5 、标页面 - 成功弹出框当中,点击查看并激活 BidPage(self.driver).click_active_button_in_success_popup() # 6 、个人页面获取用户的余额 user_money_after_invest = UserPage(self.driver).get_user_left_money() # 7 、 回退到表页面刷新后再次获取表的余额 self.driver.back() time.sleep(2) self.driver.refresh() #成功投资后标的余额 bid_money_after_invest = self.bp.get_bid_left_money() # 断言 # 1、用户余额少了20000 self.assertEqual( ID.success["money"], int( float(user_money_after_invest) - float(user_money_before_invest))) # 2、标的可投余额少了20000 self.assertEqual( ID.success["money"], int( float(bid_money_after_invest) - float(bid_money_before_invest)))
def access_invest(): global driver # 初始化浏览器会话 logger.info("======用例类前置:初始化浏览器会话,登录XXX系统======") driver = webdriver.Chrome() driver.maximize_window() driver.get(CD.web_login_url) LoginPage(driver).login(CD.user, CD.passwd) # 首页-选一个标来投资,直接选第一个标/随机选一个标 IndexPage(driver).click_bid_by_random() ## 投标页面 bid_page = BidPage(driver) yield (driver,bid_page) logger.info("======用例类后置:关闭浏览器会话,清理环境======") driver.quit()
def test_invest_success(self,prepare_nev): # LoginPage(prepare_nev).login(CD.user, CD.passwd)#self.driver对象调用setupClass内里的类方法传参 #步骤 # # 1、首页 - 选标投资。默认选第一个标。 # IndexPage(prepare_nev).click_firstBid() # 2.0标页面 - 金额输入框中,获取用户投标前的余额 bp = BidPage(prepare_nev) userMoney_beforeInvest = bp.get_userLeftMoney() # 2、标页面 - 金额输入,投资操作。 bp.invest(TD.money) # 3、标页面 - 投资成功的弹出框中,点击查看并激活 bp.click_activeButton_on_investSuccess_popup() #断言 userMoney_afterInvest = UserPage(prepare_nev).get_userLeftMoney() assert float(userMoney_beforeInvest),userMoney_afterInvest+TD.money
def test_invest_3_success(self): # 步骤 # 1、首页 - 选标投资。默认选第一个标。 # IndexPage(self.driver).click_firstBid() # 2.0标页面 - 金额输入框中,获取用户的当前余额 bp = BidPage(self.driver) userMoney_beforeInvest = bp.get_userLeftMoney() money_before = int(userMoney_beforeInvest.split('.', 2)[0]) # 2、标页面 - 金额输入,投资操作。 bp.invest(TD.money) # 3、标页面 - 投资成功的弹出框中,点击查看并激活 bp.click_activeButton_on_investSuccess_popup() # 断言 userMoney_afterInvest = UserPage(self.driver).get_userLeftMoney() money_after = int((userMoney_afterInvest.split("元", 2)[0]).split('.', 2)[0]) + TD.money self.assertEqual(money_before, money_after)
def test_invest_success(self): ''' 首页-选择第一个标的前投标按钮 标的页面,获取投资前的用户余额(用于后面期望中的比较) 标的页面,输入投资金额,进行投资操作,投资成功的弹框 ''' HomePage(self.driver).click_firstBib() bid_p = BidPage(self.driver) #获取投资之前的余额 money_beforeInvest = bid_p.get_userLeftMoney() bid_p.invest(invest_1) bid_p.click_button_on_investSuccessPopup() #验证 money_afterInvest = UserPage(self.driver).get_userLeftMoney() self.assertEqual(int(float(money_beforeInvest)-float(money_afterInvest)),invest_1)
def test_invest_success(self, login_web): logging.info("*********投资用例:正常场景-投资成功*********") # 首页 - 选一个标来投资 - 直接选第一个标 - --- / 随机选一个 IndexPage(login_web).click_first_investButton() # 标页面 - 获取投资前的个人余额 bid_page = BidPage(login_web) userMoney_beforeInvest = bid_page.get_user_leftMoney() # 标页面 - 输入投资金额 ,点击投标按钮 bid_page.invest(ID.invest_money) # 标页面 - 投资成功弹出框 ,点击查看并激活按钮 bid_page.click_activeButton_from_investSuccess_popup() # #验证 # 个人页面 - 获取用户当前余额 userMoney_afterInvest = UserPage(login_web).get_user_leftMoney() # 1、余额:投资前获取一下,投资后再获取一下。求差值,如果等于投资金额,那正确。 assert ID.invest_money == int( float(userMoney_beforeInvest) - float(userMoney_afterInvest))
def test_invest_success(self): # 步骤: # 1.首页-选标 IndexPage(self.driver).click_firstBid() # 2.标页面-输入金额,进行投资 bp = BidPage(self.driver) # 2.0 标页面获取当前余额 userMoney_beforeInvest = bp.get_userLeftMoney() bp.invest(TD.money) # 3.标页面-投资成功的弹出框中,点击 查看并激活 bp.click_activeButton_on_investSuccess_popup() # 断言: # 1.投资前的金额-现在的余额=投资的金额 # 1.0个人页面获取用户可用余额 # 2.0-1.0=投资的金额 userMoney_afterInvest = UserPage(self.driver).get_userLeftMoney() investMoney = userMoney_beforeInvest - userMoney_afterInvest self.assertEqual(investMoney, TD.money)
def test_invest_failed_no10(self): IndexPage(self.driver).click_firstBid() invest_no10_Failed = BidPage(self.driver).invest_no10_Failed(TD.no10_money) # 断言 self.assertEqual("请输入10的整数倍", invest_no10_Failed)