Пример #1
0
def edit_per_info_test(driver, devicename):
    failcount = 10  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    elementinfo, deviceid = pubfuc.getiteminfo(driver.desired_capabilities, "zuji")
    while True:
        try:
            if runcount > failcount:
                break
            while num < 100:
                logger.info(f'第{num}、{num+1}次修改个人信息')
                sleep(3)
                edit_per_info(driver, elementinfo)
                sleep(2)
                back_android(driver)
                sleep(2)
                num += 2
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            logger.info(pubfuc.getlocaltime())
            sleep(20)
Пример #2
0
def allot_remove_manager_test(driver, devicename):
    failcount = 10  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    elementinfo, deviceid = pubfuc.getiteminfo(driver.desired_capabilities, "zuji")
    while True:
        try:
            if runcount > failcount:
                break
            logger.info(f'第{num}次添加管理员')
            sleep(3)
            team_name = "t1"
            browse_team(driver, elementinfo)
            select_team(driver, team_name)
            allot_manager(driver, elementinfo)
            sleep(2)
            logger.info(f'第{num}次取消管理员')
            remove_manager(driver, elementinfo)
            sleep(2)
            back_android(driver)
            sleep(2)
            num + 1
        except Exception as e:
            logger.info(f'第{num}次运行出错')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            logger.info(pubfuc.getlocaltime())
            sleep(20)
Пример #3
0
def create_team_test(driver, devicename):
    failcount = 10  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    elementinfo, deviceid = pubfuc.getiteminfo(driver.desired_capabilities, "zuji")
    while True:
        try:
            if runcount > failcount:
                break
            while num < 51:
                logger.info(f'第{num}次创建球队')
                browse_team(driver,elementinfo)
                create_team(driver, elementinfo)
                sleep(2)
                driver.find_element_by_xpath(elementinfo['退出']['xpath']).click()
                sleep(2)

                num += 1
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            logger.info(pubfuc.getlocaltime())
            sleep(20)
Пример #4
0
def playgamevideo(driver, devicename):
    failcount = 3  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    elementinfo, deviceid = pubfuc.getiteminfo(driver.desired_capabilities, "zuji")

    while True:
        try:
            if runcount > failcount:
                break
            driver.find_element_by_xpath("//android.widget.TextView[@text='lidw的主队']").click()
            sleep(2)
            driver.find_element_by_xpath(elementinfo['视频']['xpath']).click()
            sleep(3)
            phone_size = driver.get_window_size()
            size = driver.find_element_by_xpath(elementinfo['视频播放器']['xpath']).size
            print(phone_size, size)
            while num < 501:
                logger.info(f'第{num}次播放视频')
                driver.tap([[300, 400]])
                driver.swipe(start_x=size['width'] * 0.2, start_y=size['height'] * 0.7, end_x=size['width'] * 0.5,
                             end_y=size['height'] * 0.7,duration=3000)
                sleep(10)
                driver.tap([[300, 400]])
                driver.swipe(start_x=size['width'] * 0.2, start_y=size['height'] * 0.7, end_x=size['width'] * 0.5,
                             end_y=size['height'] * 0.7, duration=3000)
                sleep(10)
                driver.tap([[300, 400]])
                driver.swipe(start_x=size['width'] * 0.2, start_y=size['height'] * 0.7, end_x=size['width'] * 0.5,
                             end_y=size['height'] * 0.7, duration=3000)
                sleep(10)

                driver.tap([[300, 400]])
                sleep(0.5)
                driver.find_element_by_xpath(elementinfo['视频全屏']['xpath']).click()

                sleep(10)
                driver.tap([[300, 400]])
                sleep(0.5)
                driver.find_element_by_xpath(elementinfo['视频切换多视频']['xpath']).click()
                sleep(2)
                driver.back()
                num += 1
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            logger.info(pubfuc.getlocaltime())
            sleep(20)
Пример #5
0
def start_match(driver, devicename):
    # 260, 320, 380
    # 再来一局
    # //XCUIElementTypeButton[@name="再来一局"]
    failcount = 3  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    devicedriverinfo = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(devicedriverinfo, 'zhifou')
    while True:
        try:
            if runcount > failcount:
                break
            driver.find_element_by_id(elementinfo['参与挑战']['id']).click()
            sleep(3)
            size = driver.get_window_size()
            x = size['width'] / 2
            y = size['height'] * 0.8
            end_y = size['height'] * 0.2
            driver.swipe(x, y, x, end_y)

            driver.find_element_by_xpath(elementinfo['宋词']['xpath']).click()
            sleep(25)
            driver.find_element_by_id(elementinfo['直接参数']['id']).click()
            sleep(20)
            driver.keyevent(4)
            sleep(20)
            if elementinfo['退出']['id'] not in driver.page_source:
                raise RuntimeError('加入房间失败')

            size = driver.get_window_size()

            #  for i in range(100):
            #     driver.tap([[size['width'] / 2, 260]])
            #    sleep(2)

            #sleep(2)
            driver.find_element_by_id(elementinfo['退出']['id']).click()
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(
                __file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            logger.info(pubfuc.getlocaltime())
Пример #6
0
def joingame(driver_A, driver_B, devicename):
    failcount = 10  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    elementinfo, deviceid = pubfuc.getiteminfo(driver_A.desired_capabilities, "zuji")
    while True:
        try:
            if runcount > failcount:
                break
            while num < 501:
                logger.info(f'第{num}次开始比赛')
                create_team_game(driver_A, elementinfo)
                game_code = get_game_code(driver_A, elementinfo)
                join_game_by_code(driver_B, elementinfo, game_code)

                driver_A.find_element_by_xpath(elementinfo['开始比赛']['xpath']).click()
                sleep(2)
                driver_A.find_element_by_id("android:id/button1").click()
                sleep(10)

                # 结束比赛
                driver_A.find_element_by_xpath(elementinfo['结束比赛']['xpath']).click()
                sleep(2)
                driver_A.find_element_by_id("android:id/button1").click()
                sleep(1)
                driver_A.find_element_by_id("android:id/button1").click()
                driver_B.find_element_by_id("android:id/button1").click()
                sleep(8)

                # 清理视频
                clean_game_video(driver_A, elementinfo)
                clean_game_video(driver_B, elementinfo)

                num += 1
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver_A.save_screenshot(str(img_file))
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}-B.png')
            driver_B.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver_A.close_app()
            driver_A.launch_app()
            driver_B.close_app()
            driver_B.launch_app()
            logger.info(pubfuc.getlocaltime())
            sleep(20)
Пример #7
0
def login(driver, devicename):
    failcount = 1  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    elementinfo, deviceid = pubfuc.getiteminfo(driver.desired_capabilities)
    while True:
        try:
            if runcount > failcount:
                break
            driver.find_element_by_xpath(elementinfo['我的']['xpath']).click()
            sleep(1)
            driver.find_element_by_xpath("//android.widget.TextView[@text='请登录']").click()
            while num < 11:
                logger.info(f'第{num}次登录')
                sleep(2)
                driver.find_element_by_xpath("//android.widget.EditText[@text='请输入手机号']").send_keys('18610122196')
                driver.find_element_by_xpath("//android.widget.EditText[@text='请输入密码']").send_keys('sjdd1234')
                driver.tap([[200, 200]])  # 点击空白处返回按钮
                sleep(1)
                driver.find_element_by_xpath("//android.widget.TextView[@text='登录']").click()
                # s1 = driver.find_element_by_xpath("//android.widget.TextView[@text='微信']").size
                # s2 = driver.find_element_by_xpath("//android.widget.TextView[@text='微信']").location
                # driver.tap([[s2['x']+50, s2['y']-60]])
                # driver.find_element_by_xpath("//android.widget.ViewGroup/android.widget.ViewGroup").click()
                sleep(3)
                driver.find_element_by_xpath("//android.widget.TextView[@text='登录成功']")
                driver.find_element_by_xpath("//android.widget.Button[@text='OK']").click()
                sleep(2)
                driver.tap([[200, 200]])
                driver.find_element_by_xpath("//android.widget.TextView[@text='我的']").click()
                sleep(1)
                driver.find_element_by_xpath("//android.widget.TextView[@text='设置']").click()
                sleep(1)
                driver.find_element_by_xpath("//android.widget.TextView[@text='退出登录']").click()
                sleep(1)
                driver.find_element_by_xpath("//android.widget.Button[@text='确定']").click()
                num += 1
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            logger.info(pubfuc.getlocaltime())
Пример #8
0
def login_logout_test(driver, devicename):
    failcount = 3  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    elementinfo, deviceid = pubfuc.getiteminfo(driver.desired_capabilities, 'zuji')
    while True:
        try:
            if runcount > failcount:
                break
            sleep(3)
            driver.find_element_by_xpath(elementinfo['我的']['xpath']).click()
            sleep(1)
            if '请登录' in driver.page_source:
                driver.find_element_by_xpath("//android.widget.TextView[@text='请登录']").click()
            else:
                logout(driver)
            while num < 501:
                logger.info(f'第{num}次登录')
                sleep(2)
                loginbyphonenumber(driver)
                sleep(2)
                driver.tap([[200, 200]])
                logout(driver)
                num += 1
            sleep(2)
            # 为保证接下来用例正常运行,测试完登录功能后登录账户
            loginbyphonenumber(driver)
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            logger.info(pubfuc.getlocaltime())
            sleep(20)
Пример #9
0
def changerole(driver, roomid, devicename):
    failcount = 5 # 用例中出错后重新执行的次数
    runcount = 1
    success_flag = True
    num = 1
    devicedriverinfo = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(devicedriverinfo)
    while True:
        try:
            if runcount > failcount:
                break
            if 'RoomI' not in driver.page_source:
                chooseroomtype(driver, elementinfo)  # 选择多人群聊
            joinroom(driver, elementinfo, roomid)  # 加入房间
            sleep(10)
            if elementinfo['离开房间']['id'] not in driver.page_source:
                raise RuntimeError('加入房间失败')
            while num < 1001:
                if num % 10 == 0:
                    logger.info(f"第{num}次{devicename}切换角色")
                driver.find_element_by_id(elementinfo['切换角色']['id']).click()
                sleep(6)
                num += 1
            driver.find_element_by_id(elementinfo['离开房间']['id']).click()
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            err_time = pubfuc.getlocaltime()
            # xml_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.xml')
            # with open(xml_file, 'a') as f:
            #     f.write(driver.page_source)
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            if not success_flag:
                return
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            autopuloadlog(driver, devicedriverinfo, devicename, elementinfo)
Пример #10
0
def uploadlog(driver, elementinfo):
    if not driver.find_element_by_xpath(elementinfo['uploadlog']['xpath']).is_displayed():
        driver.execute_script("mobile: dragFromToForDuration",
                              {'fromX': 100, 'fromY': 350, 'toX': 100, 'toY': 50, 'duration': 1})
    driver.find_element_by_xpath(elementinfo['uploadlog']['id']).click()
    sleep(10)
    # driver.find_element_by_xpath(elementinfo['CN']['xpath']).click()
    uoloadtime = pubfuc.getlocaltime()
    sleep(1)
    iswaite = driver.find_element_by_xpath(elementinfo['OK']['xpath']) is None
    while iswaite:
        sleep(3)
        iswaite = driver.find_element_by_xpath(elementinfo['OK']['xpath']) is None
    if 'Upload Success' not in driver.page_source:
        driver.find_element_by_xpath(elementinfo['OK']['xpath']).click()
        uploadlog(driver, elementinfo)
    logger.info(f"上传是否成功: {not iswaite}")
    driver.find_element_by_xpath(elementinfo['OK']['xpath']).click()
    logger.info(f"upload log time is : {uoloadtime}")
    return uoloadtime
Пример #11
0
def switchwifi(driver, roomid, devicename):
    failcount = 10  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    devicedriverinfo = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(devicedriverinfo)
    while True:
        try:
            if runcount > failcount:
                break
            if 'RoomI' not in driver.page_source:
                chooseroomtype(driver, elementinfo)  # 选择多人群聊
            joinroom(driver, elementinfo, roomid)  # 加入房间
            sleep(10)
            if elementinfo['离开房间']['id'] not in driver.page_source:
                raise RuntimeError('加入房间失败')
            while num < 1001:
                if num % 10 == 0:
                    logger.info(f"第{num}次{devicename}断网10s左右恢复")
                switch_wifi(driver, 6)
                driver.find_element_by_id(elementinfo['离开房间']['id']).get_attribute('enabled')
                num += 1
            driver.find_element_by_id(elementinfo['离开房间']['id']).click()
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            err_time = pubfuc.getlocaltime()
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{err_time}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{runcount}次重跑')
            runcount += 1
            driver.close_app()
            driver.launch_app()
            autopuloadlog(driver, devicedriverinfo, devicename, elementinfo)