def test_wait_for_refreshing(driver): page = VideoListPage(driver) navigate.to(driver, page) assert page.wait_for_loading() page.video_tab.click() assert page.wait_for_refreshing()
def test_home_page(driver): home_page = HomePage(driver) navigate.to(driver, home_page) time.sleep(5) driver.performance('home page') # tab_list = home_page.top_tab_list # assert tab_list # tab_for_you = home_page.top_tab_name(tab_list[0]) # assert tab_for_you.text.strip() == 'For You' # article_list = home_page.article_list # assert article_list # article_time = home_page.article_time(article_list[0]) # assert article_time.text.strip() == 'just now' home_page.swipe_in_element(home_page.article_container, from_y=0.2, to_y=0.8, delay=1000) driver.performance('home page refresh') time.sleep(10) for i in range(3): home_page.swipe_in_element(home_page.article_container) time.sleep(1) refresh_tips = home_page.refresh_tips if refresh_tips: break assert refresh_tips
def test_home_page_title_unique(driver, record): """检测文章重复性""" page = HomePage(driver) navigate.to(driver, page) time.sleep(5) checked = [] for i in range(5): title_list = page.get_all_title_text() for title in title_list: assert (title not in checked), '标题重复: {}'.format(title) checked.append(title) page.next_page() page.next_page() # 退出重进,再测一次 package = driver.current_package time.sleep(2) driver.back() time.sleep(2) driver.activate_app(package) time.sleep(5) checked = [] for i in range(5): title_list = page.get_all_title_text() for title in title_list: assert (title not in checked), '标题重复: {}'.format(title) checked.append(title) page.next_page() page.next_page()
def test_home_page_element(driver): page = HomePage(driver) navigate.to(driver, page) title_list = page.article_tile_list for title in title_list: print(title.text) assert title_list assert False, 'for screen shot'
def test_offline_page(driver): page = OfflinePage(driver) navigate.to(driver, page) driver.performance('offline page') start_btn = page.start_btn assert start_btn start_btn.click() time.sleep(0.5) driver.performance('offline page download')
def test_article_page(driver): page = ArticlePage(driver) navigate.to(driver, page) time.sleep(2) driver.performance('article page') container = page.news_contaner for i in range(8): page.swipe_in_element(container, delay=200) time.sleep(0.3) driver.performance('article page bottom')
def test_home_page_element_1(driver): page = HomePage(driver) navigate.to(driver, page) time.sleep(5) page.swipe_in_element(page.article_container, delay=1000) time.sleep(2) title_list = page.article_tile_list for title in title_list: print(title.text) assert title_list assert False, 'for screen shot'
def test_home_page_element_2(driver): page = HomePage(driver) navigate.to(driver, page) title_list = page.article_tile_list title_list[0].click() time.sleep(3) driver.back() time.sleep(3) title_list = page.article_tile_list for title in title_list: print(title.text) assert title_list assert False, 'for screen shot'
def test_video_list(driver): page = VideoListPage(driver) navigate.to(driver, page) driver.performance('video list page loading') time.sleep(10) #等待加载,视频页有可能Failed to Dump Window Hierarchy # video_list_containner = page.container # assert video_list_containner video_list = page.video_list assert video_list driver.performance('video list') page.stopped_play_button(video_list[0]).click() time.sleep(2) driver.performance('video list playing')
def test_video_list_stopped_info(driver): """视频列表页,视频停止播放状态下的信息""" page = VideoListPage(driver) navigate.to(driver, page) assert page.wait_for_loading() video_tab = page.video_tab # 评论数/点赞数格式 # 不到1k,则为0-999 cnt_pattern = r'(^([1-9]\d{0,2})$)|(^0$)' # 超过1k,则同时满足以下两个条件 # 1. 不能以0开头,必须以k结尾 # 2. 如果有点,点后必须有数字 cnt_pattern_1 = r'^[1-9]\d*(\.\d+)?k$' # 刷新5次,每次只查看第一个video的信息,因为只有第一个视频能确保看到所有信息 for i in range(5): video_tab.click() assert page.wait_for_refreshing() video_item = page.video_list[0] play_button = page.stopped_play_button(video_item) assert play_button is not None, "找不到播放按钮" el_duration = page.stopped_duration(video_item) if el_duration is not None: duration = el_duration.text.strip() duration_ok = (duration == '' or re.match(r'^(\d[1-9]:)?\d\d:\d\d$', duration)) assert duration_ok, '时长格式错误:{}'.format(duration) publisher = page.publisher(video_item) assert publisher is not None, '未发现作者信息' favor_cnt_el = page.favor_cnt(video_item) assert favor_cnt_el is not None, '未发现点赞数' favor_cnt = favor_cnt_el.text.strip() favor_cnt_ok = ((re.match(cnt_pattern, favor_cnt) != None) or (re.match(cnt_pattern_1, favor_cnt) != None)) assert favor_cnt_ok, '点赞数格式错误' commont_cnt_el = page.commont_cnt(video_item) assert commont_cnt_el is not None, '未发现评论数' commont_cnt = commont_cnt_el.text.strip() commont_cnt_ok = ((re.match(cnt_pattern, commont_cnt) != None) or (re.match(cnt_pattern_1, commont_cnt) != None)) assert commont_cnt_ok, '评论数格式错误' share_btn = page.share_btn(video_item) assert share_btn is not None
def test_article_data_usage(driver): home = HomePage(driver) article = ArticlePage(driver) navigate.to(driver, home) time.sleep(10) article_list = home.article_list for item in article_list: all_before, detail_before = net_info(driver, user_id=driver.uid) item.click() time.sleep(3) container = article.news_contaner for i in range(4): article.swipe_in_element(container, delay=200) time.sleep(1) time.sleep(3) all_article, detail_article = net_info(driver, user_id=driver.uid) article.read_mod_btn.click() time.sleep(5) web_mod_container = article.web_mod_container for i in range(5): article.swipe_in_element(web_mod_container, delay=200) time.sleep(2) time.sleep(5) all_web_mod, detail_web_mod = net_info(driver, user_id=driver.uid) article_data_usage = all_article - all_before web_data_usage = all_web_mod - all_article print('{}, {}, {:.2f}%, {},{},{}'.format( article_data_usage, web_data_usage, 100 * (((web_data_usage - article_data_usage) / web_data_usage)), str(list(detail_before.values()))[1:-1], str(list(detail_article.values()))[1:-1], str(list(detail_web_mod.values()))[1:-1] )) article.back_btn.click() time.sleep(2) assert False
def test_video_page(driver): page = VideoPage(driver) navigate.to(driver, page) driver.performance('video page loading') time.sleep(5) driver.performance('video page')