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')
Exemple #6
0
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
Exemple #11
0
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
Exemple #12
0
def test_video_page(driver):
    page = VideoPage(driver)
    navigate.to(driver, page)
    driver.performance('video page loading')
    time.sleep(5)
    driver.performance('video page')