Beispiel #1
0
 def test_001_DokiDemo_两主播多次PK(self):
     logger.info('test_001_DokiDemo_创建加入房间')
     driver_A = self.driverlist[0]   # 主播A
     driver_B = self.driverlist[1]   # 主播B
     failcount = 3  # 用例中出错后重新执行的次数
     runcount = 1
     num = 1
     caps = driver_A.desired_capabilities
     elementinfo, deviceid = pubfuc.getiteminfo(caps, 'QSDoki')
     while True:
         try:
             # 创建房间并返回房间号
             roomid_A = dokidemo_behavior.create_doki_room(driver_A, elementinfo)
             roomid_B = dokidemo_behavior.create_doki_room(driver_B, elementinfo)
             # 进行PK
             while True:
                 dokidemo_behavior.choose_room_pk(driver_A, roomid_B, elementinfo)
                 dokidemo_behavior.choose_room_pk(driver_B, roomid_A, elementinfo)
                 if num > 101 or runcount > failcount:
                     break
         except Exception as e:
             logger.info(f'第{num}次运行出错,设备是:{devicename}')
             # print(driver.page_source)
             img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{self.devicename[0]}.png')
             driver_A.save_screenshot(str(img_file))
             img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{self.devicename[1]}.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()
Beispiel #2
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)
Beispiel #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)
Beispiel #4
0
def joinandleaveroom(driver, roomid, devicename):
    fail_count = 1  # 用例中出错后重新执行的次数
    run_count = 1
    num = 1
    device_driver_info = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(device_driver_info, 'QSA50WW')
    size = driver.get_window_size()
    while True:
        try:
            if run_count > fail_count:
                break
            while num < 101:
                if num % 10 == 0:
                    logger.info(f"第{num}次{devicename}加入房间")
                joinroom(driver, elementinfo, roomid)
                driver.tap([[size['width'] / 2, size['height'] / 2]])
                sleep(10)
                driver.find_element_by_id(elementinfo['离开房间']['id']).click()
                sleep(6)
                num += 1
            break
        except Exception as e:
            logger.error(f'第{num}次运行出错,设备是:{devicename}')
            # print(driver.page_source)
            img_file = pubfuc.get_real_dir_path(
                __file__,
                f'../testresult/{pubfuc.getlocaltime()}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            logger.info(f'第{run_count}次重跑')
            run_count += 1
            # driver.close_app()
            # driver.launch_app()
            autopuloadlog(driver, device_driver_info, devicename, elementinfo)
Beispiel #5
0
def joinandleaveroom(driver, roomid, devicename):
    fail_count = 1  # 用例中出错后重新执行的次数
    run_count = 1
    num = 1
    device_driver_info = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(device_driver_info)
    #size = driver.get_window_size()
    while True:
        try:
            driver.find_element_by_id("com.powerinfo.demo.a50_stb:id/start_btn").click()
            sleep(20)
            driver.find_element_by_id("com.powerinfo.demo.a50_stb:id/img_close").click()
            sleep(20)

        except Exception as e:
            logger.error(f'第{num}次运行出错,设备是:{devicename}')
            # print(driver.page_source)
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            if not True:
                return
            logger.info(f'第{run_count}次重跑')
            run_count += 1
            driver.close_app()
            driver.launch_app()
Beispiel #6
0
def startback(driver, devicename):
    failcount = 1  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    while True:
        try:
            if runcount > failcount:
                break
            devicedriverinfo = driver.desired_capabilities  # 获取正在运行的设备的参数设置
            elementinfo, deviceid = pubfuc.getiteminfo(devicedriverinfo,
                                                       'bootstrap')
            while num < 101:
                logger.info(f'{num}次{devicename}创建房间')
                print(num)
                driver.find_element_by_id(elementinfo['设置']['id']).click()
                sleep(2)
                driver.find_element_by_id('iLive QS Huajiao').click()
                sleep(3)
                driver.find_element_by_id(elementinfo['创建房间']['id']).click()
                sleep(2)
                driver.find_element_by_id(elementinfo['离开房间']['id']).click()
                sleep(3)
                num += 1
            break
        except Exception as e:
            runcount += 1
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            img_file = pubfuc.get_real_dir_path(
                __file__,
                f'../testresult/{pubfuc.getlocaltime()}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
Beispiel #7
0
    def test_002_DokiDemo_多次加入离开房间(self):
        logger.info('test_002_DokiDemo_多次加入离开房间')
        driver_A = self.driverlist[0]   # 主播A
        failcount = 3  # 用例中出错后重新执行的次数
        runcount = 1
        num = 1
        elementinfo, deviceid = pubfuc.getiteminfo(driver_A.desired_capabilities, 'QSDoki')
        while True:
            try:
                # 进行PK
                print(f'第{num}次加入房间')
                dokidemo_behavior.join_doki_room(driver_A, elementinfo, self.roomid)
                # sleep(5)
                # driver_A.background_app(5)
                # sleep(5)
                driver_A.find_element_by_id(elementinfo['离开房间']['id']).click()
                sleep(3)
                num += 1
                if num > 501 or runcount > failcount:
                    break

            except Exception as e:
                logger.info(f'第{num}次运行出错,设备是:{self.devicename}')
                # print(driver.page_source)
                img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{self.devicename[0]}.png')
                driver_A.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()
Beispiel #8
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)
Beispiel #9
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)
Beispiel #10
0
def startroom(driver, devicename):
    failcount = 10  # 用例中出错后重新执行的次数
    runcount = 1
    success_flag = True
    num = 1
    while success_flag:
        try:
            if runcount > failcount:
                success_flag = False
            devicedriverinfo = driver.desired_capabilities  # 获取正在运行的设备的参数设置
            elementinfo, deviceid = pubfuc.getiteminfo(devicedriverinfo)
            chooseroomtype(driver, elementinfo)
            while num < 1001:
                logger.info(f'{num}次{devicename}创建房间')
                startnewroom(driver, elementinfo)
                sleep(5)
                driver.find_element_by_id(elementinfo['离开房间']['id']).click()
                sleep(2)
                while driver.find_element_by_id(elementinfo['创建房间']['id']) is None:
                    sleep(2)
                num += 1
        except Exception as e:
            runcount += 1
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{devicename}.png')
            driver.save_screenshot(str(img_file))
            sleep(3)
            logger.error(e.args[0], exc_info=True)
            if not success_flag:
                return
            driver.close_app()
            driver.launch_app()
Beispiel #11
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)
Beispiel #12
0
 def test_001参与者多次加入离开房间(self):
     logger.info('test_001参与者多次加入离开房间')
     fail_count = 5  # 用例中出错后重新执行的次数
     run_count = 1
     success_flag = True
     num = 1
     procs = []
     driver = self.driverlist[0]
     driver.find_element_by_id(
         "net.imusic.android.dokidoki:id/img_me").click()  #me界面
     sleep(2)
     driver.find_element_by_id(
         "net.imusic.android.dokidoki:id/ll_follow_container").click(
         )  #关注界面
     sleep(10)
     driver.tap([[600, 150]])
     sleep(10)
     while success_flag:
         try:
             if run_count > fail_count:
                 break
             while num < 1001:
                 if num % 10 == 0:
                     logger.info(f"第{num}次{self.device_name}加入房间")
                 driver.find_element_by_id(
                     "net.imusic.android.dokidoki:id/btn_live").click()
                 sleep(15)
                 driver.tap([[1000, 150]])
                 sleep(5)
                 num += 1
             break
         except Exception as e:
             logger.error(f'第{num}次运行出错,设备是:{self.device_name}')
             # print(driver.page_source)
             img_file = pubfuc.get_real_dir_path(
                 __file__,
                 f'../testresult/{pubfuc.getlocaltime()}-{self.device_name}.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'第{run_count}次重跑')
             run_count += 1
             driver.close_app()
             driver.launch_app()
             driver.find_element_by_id(
                 "net.imusic.android.dokidoki:id/img_me").click()  #me界面
             sleep(2)
             driver.find_element_by_id(
                 "net.imusic.android.dokidoki:id/ll_follow_container"
             ).click()  #关注界面
             sleep(10)
             driver.tap([[600, 150]])
             sleep(10)
Beispiel #13
0
def getlog(driver):
    elementinfo, deviceid = pubfuc.getiteminfo(driver.desired_capabilities)
    if 'desired' in driver.desired_capabilities:
        filepath = pubfuc.get_real_dir_path(__file__, '../testresult') + f'/{deviceid}_powerinfo/'
        print(filepath)
        # filepath = f'/Users/liminglei/Desktop/log/{deviceid}/'
        if Path(filepath).exists():
            subprocess.Popen(f'rm {filepath}', shell=True)
        subprocess.Popen(f'mkdir {filepath}', shell=True)
        subprocess.Popen(f'adb -s {deviceid} pull /sdcard/powerinfo {filepath}', shell=True)
Beispiel #14
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())
Beispiel #15
0
def startlivemeroom(driver, devicename):
    devicedriverinfo = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(devicedriverinfo, 'liveme')

    driver.find_element_by_xpath(elementinfo['开启直播']['xpath']).click()
    sleep(3)
    driver.find_element_by_xpath(elementinfo['多人直播']['xpath']).click()
    sleep(2)

    driver.find_element_by_xpath(elementinfo['开始直播']['xpath']).click()
    sleep(5)
    xml_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{devicename}.xml')
    with open(xml_file, 'a') as f:
        f.write(driver.page_source)
Beispiel #16
0
def backapp(driver, roomid, devicename):
    failcount = 5  # 用例中出错后重新执行的次数
    runcount = 1
    success_flag = True
    num = 1
    device_driver_info = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(device_driver_info)
    while success_flag:
        try:
            if runcount > failcount:
                break
            isios = 'desired' not in device_driver_info
            if 'RoomI' not in driver.page_source:
                chooseroomtype(driver, elementinfo)  # 选择多人群聊
            # startnewroom(driver, elementinfo)  # 加入房间
            joinroom(driver, elementinfo, roomid)
            sleep(10)
            bundleid = size = None
            if isios:
                bundleid = driver.capabilities['bundleId']
                size = driver.get_window_size()
            while num < 1001:
                if num % 10 == 0:
                    logger.info(f"第{num}次{devicename}切后台")
                if isios:
                    backiosapp(driver, size, bundleid, time=5)
                else:
                    driver.background_app(5)
                sleep(5)
                # 切后台回来后,查看离开房间按钮是否可用,确定正确切回了前台
                driver.find_element_by_id(elementinfo['离开房间']['id']).get_attribute('enabled')
                # logger.info(f"离开房间按钮是否可用:{back_is_enable}")
                num += 1
            driver.find_element_by_id(elementinfo['离开房间']['id']).click()
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            # print(driver.page_source)
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{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, device_driver_info, devicename, elementinfo)
Beispiel #17
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())
Beispiel #18
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)
Beispiel #19
0
def audiojoinroom(driver,devicename,roomid):
    fail_count = 5  # 用例中出错后重新执行的次数
    run_count = 1
    success_flag = True
    num = 1
    device_driver_info = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(device_driver_info)
    print(roomid)
    while success_flag:
        try:
            if run_count > fail_count:
                break
            while num < 501:
                if 'RoomI' not in driver.page_source:
                    driver.find_element_by_xpath("//android.widget.TextView[@text='游戏连麦']").click()
                    sleep(10)
                    #print(driver.page_source)
                    driver.find_element_by_xpath("//android.widget.TextView[@text='纯音频群聊']").click()
                    sleep(5)
                if num % 10 == 0:
                    logger.info(f"第{num}次{devicename}加入房间")
                joinroom(driver, elementinfo, roomid, False)
                sleep(5)
                driver.find_element_by_id(elementinfo['离开房间']['id']).click()
                sleep(6)
                num += 1
            break
        except Exception as e:
            logger.error(f'第{num}次运行出错,设备是:{devicename}')
            # print(driver.page_source)
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{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'第{run_count}次重跑')
            run_count += 1
            driver.close_app()
            driver.launch_app()
            autopuloadlog(driver, device_driver_info, devicename, elementinfo)
Beispiel #20
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)
Beispiel #21
0
def lockscreen(driver, roomid, devicename):
    failcount = 5  # 用例中出错后重新执行的次数
    runcount = 1
    num = 1
    device_driver_info = driver.desired_capabilities  # 获取正在运行的设备的参数设置
    elementinfo, deviceid = pubfuc.getiteminfo(device_driver_info)
    while True:
        try:
            if runcount > failcount:
                break
            if 'RoomI' not in driver.page_source:
                chooseroomtype(driver, elementinfo)  # 选择多人群聊
            # startnewroom(driver, elementinfo)  # 加入房间
            joinroom(driver, elementinfo, roomid)
            sleep(10)
            while num < 1001:
                if num % 10 == 0:
                    logger.info(f"第{num}次{devicename}锁屏")
                driver.lock(5)
                sleep(3)
                # 锁屏回来后,查看离开房间按钮是否可用,确定正确切回了前台
                driver.find_element_by_id(elementinfo['离开房间']['id']).get_attribute('enabled')
                # logger.info(f"离开房间按钮是否可用:{back_is_enable}")
                num += 1
            driver.find_element_by_id(elementinfo['离开房间']['id']).click()
            break
        except Exception as e:
            logger.info(f'第{num}次运行出错,设备是:{devicename}')
            # print(driver.page_source)
            img_file = pubfuc.get_real_dir_path(__file__, f'../testresult/{pubfuc.getlocaltime()}-{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, device_driver_info, devicename, elementinfo)
Beispiel #22
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)
Beispiel #23
0
    tests = [MainTest("test_001参与者多次加入离开房间")]
=======
    tests = [StbTest("test_001参与者多次加入离开房间")]
>>>>>>> origin/master
    # tests = [testcase.leaktest.IRoomLeakTest('test_04只收流')]
    #tests = [QSDokiDemoTest('test_002_DokiDemo_多次加入离开房间')]  # test_001_A50参与者多次加入离开房间
    # tests = [testcase.P31link191test.P31linkTest('test_001_p31link参与者多次加入离开房间')]
    # tests = [MPdemotest("test_001_mpdemo参与者多次加入离开房间")]
    # tests = [TongZhuoHaiWaiTest('test_001同桌多次加入离开房间')]
    # tests = [ZhifouTest('test_001参与者加入离开房间')]
    # tests = [ZhiMianHaoYouTest('test_001_直面正确添加好友')]
    suite.addTests(tests)

    logger = pubfunc.setcustomlogger('autolog')  # 可以添加第二个参数False来控制打印日志到屏幕上test_001参与者多次加入离开房间

    runner = unittest.TextTestRunner(verbosity=2)
    runner.run(suite)

    result_dir = pubfunc.get_real_dir_path(__file__, '../testresult/')
    result_file = os.path.join(result_dir, 'autolog.log')

    appium_log = []
    img_list = []
    for imgfile in os.listdir(result_dir):
        if os.path.splitext(imgfile)[1] == '.png':
            img_list.append(os.path.join(result_dir, imgfile))
        elif 'appiumlog' in imgfile:
            appium_log.append(os.path.join(result_dir, imgfile))

    # pubfunc.send_mail(mail_recievers, result_file, img_list, appium_log)
Beispiel #24
0
 def test_002参与者多次PK(self):
     logger.info('test_002参与者多次PK')
     fail_count = 10  # 用例中出错后重新执行的次数
     run_count = 1
     success_flag = True
     num = 1
     driverA = self.driverlist[0]
     driverB = self.driverlist[1]
     sleep(10)
     driverA.implicitly_wait(4)
     while success_flag:
         try:
             if run_count > fail_count:
                 break
             dokidokibehavior.create_doki_room(driverA)
             dokidokibehavior.create_doki_room(driverB)
             sleep(10)
             while num < 1001:
                 logger.info(f"第{num}次进行pk")
                 driverA.find_element_by_id(
                     "net.imusic.android.dokidoki:id/btn_interaction"
                 ).click()
                 sleep(4)
                 driverA.find_element_by_id(
                     "net.imusic.android.dokidoki:id/ll_pk").click()
                 sleep(4)
                 driverA.find_element_by_id(
                     "net.imusic.android.dokidoki:id/rl_friends").click()
                 sleep(4)
                 driverA.find_element_by_id(
                     "net.imusic.android.dokidoki:id/tv_invite").click()
                 sleep(5)
                 driverB.find_element_by_id(
                     "net.imusic.android.dokidoki:id/tv_accept").click()
                 sleep(10)
                 driverA.tap([[550, 1050]], duration=100)
                 driverB.tap([[550, 1050]])
                 sleep(4)
                 driverA.tap([[940, 940]])
                 driverB.tap([[940, 940]])
                 sleep(10)
                 driverB.find_element_by_id(
                     "net.imusic.android.dokidoki:id/tv_end_pk").click(
                     )  #结束PK
                 sleep(2)
                 driverB.find_element_by_id(
                     "net.imusic.android.dokidoki:id/tv_right").click()
                 sleep(10)
                 driverA.tap([[550, 1050]], duration=100)
                 driverB.tap([[550, 1050]])
                 sleep(4)
                 driverA.tap([[940, 940]])
                 driverB.tap([[940, 940]])
                 sleep(10)
                 num += 1
             break
         except Exception as e:
             logger.error(f'第{num}次运行出错,设备是:{self.device_name}')
             img_file_A = pubfuc.get_real_dir_path(
                 __file__,
                 f'../testresult/{pubfuc.getlocaltime()}-{self.device_name[0]}.png'
             )
             driverA.save_screenshot(str(img_file_A))
             img_file_B = pubfuc.get_real_dir_path(
                 __file__,
                 f'../testresult/{pubfuc.getlocaltime()}-{self.device_name[1]}.png'
             )
             driverB.save_screenshot(str(img_file_B))
             sleep(3)
             logger.error(e.args[0], exc_info=True)
             if not success_flag:
                 return
             logger.info(f'第{run_count}次重跑')
             run_count += 1
             driverA.close_app()
             driverA.launch_app()
             driverB.close_app()
             driverB.launch_app()