def wrapper(*args, **kwargs): module = __import__('FundApp.TestCase', fromlist=['TestCase']) print("-------module-------", module) classname = func.__qualname__.split('.')[0] print("-------classname-------", classname) cls = getattr(module, classname) total = reruns while total >= 0: try: date = time.strftime('%Y%m%d-%H%M%S', time.localtime()) ret = func(*args, **kwargs) name = func.__qualname__ + date + "SUCCESS" + '.PNG' Driver.screenshot(name) return ret except exceptions as e: date = time.strftime('%Y%m%d-%H%M%S', time.localtime()) name = func.__qualname__ + date + "FAILED" + '.PNG' Driver.screenshot(name) if total == 0: raise e total -= 1 time.sleep(1) print( "failed,try again....\n failed reason:\n{}".format(e)) cls().setUp()
def test_06_invest_nny_first(self, amount="200",): """ 散标 """ #todo: 红米note安全键盘元素大概无法定位 HomePage().invest_view.click() InvestPage().to_nny_invest() # scroll('up',duration=0.2).click(textContains="万") el = Driver.d(textContains="万") for _ in range(10): if el.exists(timeout=2): el.click() break swipe_up() Driver.d(text="立即投标").click() Driver.d(resourceId="com.nonoapp:id/et_invest_count").click() for i in list(amount): Driver.d(text=i).click() Driver.d(text='确定').click() Driver.d(resourceId="com.nonoapp:id/cb_agree_protocol").click() text = Driver.d(resourceId="com.nonoapp:id/btn_pay_detail_next").get_text() Driver.d(resourceId="com.nonoapp:id/btn_pay_detail_next").click() if text == u"余额支付": Driver.d(text="确定").click() elif text == '充值支付': confirm_button = Driver.d(text='确定') if Driver.d.device_info['serial'] == "cdc6dc40" else Driver.d(description='确定') confirm_button.click() MockPage().confirm_button_view.click() assert Driver.d(description="支付成功,等待满标").exists(timeout=5) \ or Driver.d(text="支付成功,等待满标").exists(timeout=5) Driver.d(resourceId="btn_next").click() Driver.screenshot()
def test_07_withdraw(self, amount=None): """ 提现 """ HomePage().click_mine_view() text = MinePage().user_balance_view.get_text() if text == "****": Driver.d(resourceId="com.nonoapp:id/iv_mine_eye").click() text = MinePage().user_balance_view.get_text() balance = str_to_no(text) MinePage().withdraw_view.click() if Driver.d(text="冻结余额").exists(timeout=4): Driver.d(text="继续交易").click() else: global withdraw_amount withdraw_amount = random.randrange(3, 10000) or amount print("余额:{},\n提现:{}".format(balance,withdraw_amount)) Driver.d(resourceId="com.nonoapp:id/et_withdraw_amount").set_text(withdraw_amount) back() Driver.d(text='确认提现').click() Driver.d(text='确定').click() MockPage().confirm_button_view.click() text = MinePage().user_balance_view.get_text() balance_new = str_to_no(text) assert float(balance) - float(balance_new) == float(withdraw_amount) print('提现后剩余金额:{}'.format(balance_new)) Driver.screenshot()
def test_03_activity_center(self): """ 活动中心 """ HomePage().discover_view.click(timeout=20) DiscoverPage().activity_center_view.click() Driver.screenshot() back() Driver.screenshot()
def test_02_sign_in(self): """ 每日签到 """ HomePage().discover_view.click(timeout=20) DiscoverPage().sign_in_view.click() if Driver.d(text='签到成功').exists(timeout=3): Driver.d(text='确定').click() assert Driver.d(text='恭喜你签到成功').exists(timeout=3) Driver.screenshot()
def test_05_debt_transfer_records(self): """债权转让记录""" global debt_transfer_reason HomePage().click_mine_view() # MinePage().debt_text_view.click() scroll('up').click(text='债转') Driver.d(text=u"转让记录").click() assert Driver.d(text=u"3天后下架").exists(timeout=5) assert Driver.d(text=debt_transfer_reason).exists(timeout=5) Driver.screenshot()
def test_01_page_check(self): """ 发现页元素检查 """ HomePage().discover_view.click(timeout=20) assert Driver.d(text='普通会员').exists(timeout=3) assert Driver.d(text='每日签到').exists(timeout=3) # assert Driver.d(text='翻翻乐').exists(timeout=3) assert Driver.d(text='活动中心').exists(timeout=3) assert Driver.d(text='做任务 拿奖励').exists(timeout=3) assert Driver.d(text='我的任务').exists(timeout=3) assert Driver.d(text='邀请好友').exists(timeout=3) Driver.screenshot()
def test_09_transaction_records_withdraw(self): """交易记录--提现""" HomePage().click_mine_view() SitTester().click("交易记录").click("提现").sleep(2) text = Driver.d(resourceId="com.nonoapp:id/tv_finance_actual_amount").get_text() records = str(withdraw_amount - 2 if withdraw_amount < 20000 else withdraw_amount - 3) assert records in text print('提现记录:{}'.format(text)) assert Driver.d(resourceId="com.nonoapp:id/tv_finance_desc").get_text() == "提现" Driver.d(resourceId="com.nonoapp:id/tv_finance_desc").click() time.sleep(3) Driver.screenshot()
def test_04_invite_friends(self): """ 邀请好友 - 取消 """ HomePage().discover_view.click(timeout=20) DiscoverPage().invite_friends_view.click() if Driver.d(description="邀请好友 ").exists(timeout=4): Driver.d(description="邀请好友 ").click() else: Driver.d(text="邀请好友 ").click() assert Driver.d(text='微信').exists(timeout=3) assert Driver.d(text='朋友圈').exists(timeout=3) assert Driver.d(text='QQ').exists(timeout=3) assert Driver.d(text='短信').exists(timeout=3) Driver.d(text='取消').click() Driver.screenshot()
def test_02_invest_yys_first(self, amount="100"): """ 月月升投资 """ HomePage().invest_view.click() InvestPage().to_yys_invest() Driver.d(text='授权出借').click() ele = Driver.d(text='进行风险评测') if ele.exists(timeout=5): ele.click() risk_evaluation_steps(Driver.d) Driver.d(text="授权出借").click() invest_pay_steps(Driver.d,amount) Driver.d(resourceId="com.nonoapp:id/btn_titlebar_right").click() info = Driver.d(resourceId="com.nonoapp:id/tv_first_des").get_text() print(info) Driver.d(resourceId="com.nonoapp:id/tv_titlebar_text_right").click() time.sleep(2) Driver.screenshot()
def test_01_invest_txzt_first(self, product_pattern='3个月', amount=None): """ 贴心智投 """ amount = amount if amount is not None else random.randint(1, 10)*1000 HomePage().invest_view.click() InvestPage().to_txzt_invest() Driver.d(textContains=product_pattern).click() Driver.d(text="授权出借").click() ele = Driver.d(text='进行风险评测') if ele.exists(timeout=4): ele.click() risk_evaluation_steps(Driver.d) Driver.d(text="授权出借").click() invest_pay_steps(d=Driver.d, amount="{}".format(amount)) Driver.d(text=u"知道啦").click_exists(timeout=5) Driver.d(resourceId='com.nonoapp:id/btn_titlebar_right').click() info = Driver.d(resourceId="com.nonoapp:id/tv_first_des").get_text() print(info) Driver.d(text="完成").click() time.sleep(2) Driver.screenshot()
def test_05_check_my_task(self): """ 检查我的任务页面 """ time.sleep(3) #显式的等待... HomePage().discover_view.click(timeout=20) # Driver.d(resourceId='com.nonoapp:id/ll_home_welfare_my_task').click(timeout=5) scroll('up').click(text='我的任务') if Driver.d(description='去邀请').exists(timeout=3): assert True elif Driver.d(text='去邀请').exists(timeout=3): assert True else: assert False if Driver.d(description='我的福利').exists(timeout=3): Driver.d(description='我的福利').click() else: Driver.d(text='我的福利').click() # assert self.d(description='去出借').exists(timeout=3) assert Driver.d(text='抵用券').exists(timeout=3) assert Driver.d(text='补贴券').exists(timeout=3) assert Driver.d(text='特权本金').exists(timeout=3) Driver.screenshot()
def test_03_buy_debt(self): """ 债转购买--首次购买 """ HomePage().invest_view.click() InvestPage().to_debt_invest() Driver.d(text=u"受让债权").click() Driver.d(resourceId="com.nonoapp:id/cb_agree_protocol").click() text = Driver.d(resourceId="com.nonoapp:id/btn_pay_detail_next").get_text() Driver.d(resourceId="com.nonoapp:id/btn_pay_detail_next").click() if text == u"余额支付": Driver.d(text="确定").click() for ele in [Driver.d(description='确定'), Driver.d(text='确定')]: if ele.exists(timeout=5): ele.click() break elif text == '充值支付': for ele in [Driver.d(description='确定'), Driver.d(text='确定')]: if ele.exists(timeout=5): ele.click() break time.sleep(1) assert Driver.d(description="出借成功").exists(timeout=4) Driver.d(resourceId="btn_next").click() Driver.screenshot() time.sleep(3)
def _requests(self): Driver.screenshot("ocr.png") with open("ocr.png", 'rb') as f: image = f.read() return self.accurate( image) if self._hight_precision else self.general(image)