Exemplo n.º 1
0
def init_app(plat, package_name, app_path, sleep_time, serialno=None):
    dev = None
    if plat.lower().find('android') >= 0:
        if serialno:
            if re.search('127.0.0.1:\d+', serialno):
                dev = connect_device('Android:///{}?cap_method=JAVACAP&ori_method=ADBORI'.format(serialno))
            else:
                dev = connect_device('Android:///{}'.format(serialno))
        else:
            dev = connect_device('Android:///')
        wake()
        install_android_app(current_device().adb, app_path)
        stop_app(package_name)
        start_app(package_name)
        sleep(sleep_time / 1.5)
    elif plat == 'PC_editor':
        w = Windows()
        dev = UnityEditorWindow()
        w.keyevent('^P')  # Ctrl+P运行
        sleep(sleep_time / 2)
        dev.stop_app = w.app  # 用于获取进程id,结束进程用
    elif plat == 'PC_win':
        w = Windows()
        w.start_app(app_path)
        sleep(sleep_time)
        w.connect(process=w.app.process)
        dev = connect_device("Windows:///?class_name=UnityWndClass")
        dev.stop_app = w.app
    # elif plat == 'iOS':
    #     pass
    # elif plat == 'MAC_editor':
    #     pass
    return dev
Exemplo n.º 2
0
 def setUp(self):
     stop_app("com.gameholic.drawsomethingbyspider")
     clear_app("com.gameholic.drawsomethingbyspider")
     wake()
     home()
     start_app("com.gameholic.drawsomethingbyspider")
     sleep(7)
     self.poco = UnityPoco()
     print("test reward level no coins start")
Exemplo n.º 3
0
 def setUp(self):
     stop_app("com.gameholic.drawsomethingbyspider")
     clear_app("com.gameholic.drawsomethingbyspider")
     wake()
     home()
     start_app("com.gameholic.drawsomethingbyspider")
     sleep(7)
     self.poco = UnityPoco()
     print("handBook test start")
Exemplo n.º 4
0
    def setUp(self):

        # connect_device("android:///")
        # self.poco1 = AndroidUiautomationPoco(force_restart=False)
        stop_app("com.gameholic.drawsomethingbyspider")
        clear_app("com.gameholic.drawsomethingbyspider")
        wake()
        home()
        start_app("com.gameholic.drawsomethingbyspider")
        sleep(7)
        self.poco = UnityPoco()
Exemplo n.º 5
0
def init_app(plat=SD.PLAT, package_name=SD.PACKAGE_NAME, app_path=SD.APP_PATH[SD.PLAT], sleep_time=SD.SLEEP_TIME,
             serialno=SD.SERIALNO):
    dev = None
    if plat == 'android':
        if SD.USE_ATX_SERVER2:
            atx_server2 = AtxServer2()
            device_info = atx_server2.get_usable_device_info()
            SD.UDID = device_info['udid']
            serialno = device_info['source']['remoteConnectAddress']
        if serialno and serialno.strip() != '':
            if re.search(r'127.0.0.1:\d+', serialno):
                logger.debug('模拟器用JAVACAP和ADBORI')
                dev = connect_device(f'Android:///{serialno}?cap_method=JAVACAP&ori_method=ADBORI')
            else:
                logger.debug(f'指定连接serialno: {serialno}')
                dev = connect_device(f'Android:///{serialno}')
        else:
            dev = connect_device('Android:///')
        wake()
        install_android_app(current_device().adb, app_path)
        stop_app(package_name)
        logger.debug(f'启动app:{package_name}')
        start_app(package_name)
        sleep(sleep_time / 1.5)
    elif plat == 'pc_editor':
        w = Windows()
        dev = UnityEditorWindow()
        w.keyevent('^P')  # Ctrl+P运行
        sleep(sleep_time / 2)
        dev.stop_app = w.app  # 用于获取进程id,结束进程用
    elif plat == 'pc_win':
        w = Windows()
        w.start_app(app_path)
        sleep(sleep_time)
        w.connect(process=w.app.process)
        dev = connect_device("Windows:///?class_name=UnityWndClass")
        dev.stop_app = w.app
    # elif plat == 'ios':
    #     pass
    # elif plat == 'mac_editor':
    #     pass
    return dev
Exemplo n.º 6
0
def tests_runner(main_script, file_config):
    # читаем конфиг из config-файла
    package, data_config = read_data_from_config(file_config)
    gl_report = []

    # на сколько я понял это каждый раз открывает новое соединение
    
    '''
    # подключаемся к девайсу
    if run_on_emulator: # для эмулятора
        init_device(platform='Android', cap_method='JAVACAP', ori_method='ADBORI')
    else: # для девайса
        init_device(platform='Android')
        log('Init Device')
    '''
    init_device(platform='Android')
    dev = device()
    poco = UnityPoco()

    # вроде всё готово для тестов:
    t0 = time.time();
    out('Cases::tests_runner()... started')
    
    # выставляем значения по умолчанию потому что предыдущего теста не было
    last_test_stop_app = False
    need_wake = True
    # for line in data_csv:
    for line in data_config:
        # из config-файла
        test_id, f_wake, f_stop_before, f_clear_app, f_push_saves, \
        f_start_app, f_stop_after = parse_line_from_config(line)
    
        if need_wake:
            f_wake = True
            need_wake = False
    
        if last_test_stop_app:
            f_stop_before = True
            f_start_app = True
            last_test_stop_app = False
    
        # создаём логирование
        log_path = 'report(' + test_id + ')'
        set_logdir(log_path)
    
        #  пробуждаем устройство
        if f_wake: 
            wake()
            
        #  останавливаем приложение
        if f_stop_before: 
            stop_app(package);
            time.sleep(1)

        #  отчистить даные приложения            
        if f_clear_app: 
            clear_app(package)
            
        #  подсовываем сэйвы
        if f_push_saves != '': 
            push_my_saves(f_push_saves, package)
            
        #  стартуем приложение
        if f_start_app: 
            start_app(package)
            time.sleep(10)
            poco = UnityPoco()

        # запускаем тест
        tt0 = time.time();
        result, runned = test_runner(dev, poco, test_id)
        dtt = time.time() - tt0
        print('test: ' + test_id + '; ' + \
              'runned: ' + str(runned) + '; ' + \
              'result: ' + str(result) + '; ' + \
              'time(sec): ' + str(int(dtt)))
        print('-----------------------')
        if not result:
            last_test_stop_app = True
            f_stop_after = True
        gl_report.append([test_id, runned, result, dtt])
        
        #  останавливаем приложение
        if f_stop_after: 
            last_test_stop_app = True
            stop_app(package)
            
        # далее обязательная секция чтобы сгенерить отчёт
        report_path = get_log_path(main_script, log_path)
        print(report_path)
        simple_report(main_script, report_path, output='report(' + test_id + ').html')

    t1 = time.time()
    out('Cases::tests_runner()... complete (' + str(t1 - t0) + ' sec)')

    # заключительный репорт gl_report
    log_path = 'report'
    set_logdir(log_path)

    for gl_data in gl_report:
        txt = gl_data[0] + ' '
        prop = ''
        if not gl_data[1]:
            prop += 'тест не найден'
        else:
            txt += '(' + str(int(gl_data[3])) + ' sec)'
            if not gl_data[2]:
                prop += 'тест не пройден'
        out(txt, prop)

    # далее обязательная секция чтобы сгенерить отчёт
    report_path = get_log_path(main_script, log_path)
    print(report_path)
    simple_report(main_script, report_path, output='global_report.html')
Exemplo n.º 7
0
 def _wake(self):
     '''
     唤醒设备
     :return:
     '''
     wake()
Exemplo n.º 8
0
def runTest():
    stop_app("com.gameholic.drawsomethingbyspider")
    clear_app("com.gameholic.drawsomethingbyspider")
    wake()
    home()
    start_app("com.gameholic.drawsomethingbyspider")
    sleep(7)
    permissionClick()
    autoUpdate()
    login("wn10001", "z123456")
    waitLogin()
    sleep(5)
    poco = UnityPoco()


    #进入商店
    poco("Shop").click()
    sleep(1)
    #关闭购买去广告提示弹框

    if poco("BitchPopup").child("Image").child("Image").exists():
        print("弹出支付去广告成功")
        poco("Button").child("Text").click()
        if not poco("BitchPopup").child("Image").child("Image").exists():
            print("关闭弹框成功")
        sleep(1)
    #关闭商店
    poco("Return").click()
    sleep(1)
    if not poco(text="Limited").exists():
        print("退出商店成功")
    poco("Shop").click()
    sleep(1)
    #关闭购买去广告提示弹框
    if poco("BitchPopup").child("Image").child("Image").exists():
        print("弹出支付去广告成功")
        poco("Button").child("Text").click()
        sleep(1)
    #切换标签和购买
    #切换所有标签
    poco(text="Gift").click()
    sleep(1)
    if poco("PropName").get_text() == "Marvellous Gift":
        print("切换礼物标签成功")
    poco("Text (2)").click()
    sleep(1)
    if poco("PropName").get_text() == "Speed-up":
        print("切换到道具标签成功")
    poco(text="Diamonds").click()
    sleep(1)
    if poco(text="Super Gems Pack").get_text() == "Super Gems Pack":
        print("切换钻石标签成功")
    poco(text="Limited").click()
    sleep(1)
    if not poco("PropName").exists():
        print("切换到礼包标签成功")
    poco(text="Monster").click()    
    sleep(1)
    if poco(text="Green Fluffy").get_text() == "Green Fluffy":
        print("切换到怪物标签成功")
    #滑动列表
    poco(texture="monster_A1_1").wait_for_appearance()
    poco(texture="monster_A1_1").click()
    beforSwipe = poco(texture="monster_A1_1").get_position()
    
    poco.swipe([300.0/576, 850.0/1024],[300.0/576, 150.0/1024])
    sleep(2)
    afterSwipe = poco(texture="monster_A1_1").get_position()
    if beforSwipe != afterSwipe:
        print("滑动列表成功")
    else:
        print("滑动列表失败")
    #滑动回顶部
    poco.swipe([300.0/576, 150.0/1024],[300.0/576, 850.0/1024])
    sleep(2)
    #购买逻辑
    poco("Tree").child("ShopProp(Clone)")[0].child("BuyIt").child("Text").click()
    sleep(2)
    buyConfirm = poco("lable").get_text()
    if buyConfirm == "Confirm to purchase":
        print("打开确认购买弹框成功")
    #取消购买
    poco(text="Cancel").click()
    sleep(1)
    if not poco(text="Confirm to purchase").exists():
        print("取消购买成功")
    #wn10001购买怪物成功
    buy()
    #切换到钻石标签查看sdk调出
    poco(text="Diamonds").click()
    sleep(1)
    if poco(text="Super Gems Pack").get_text() == "Super Gems Pack":
        print("切换钻石标签成功")
    buy()

    #完成测试
    stop_app("com.gameholic.drawsomethingbyspider")
    sleep(2.0)
    snapshot(msg="app stopped")
    print("shop finish test")