Exemplo n.º 1
0
def push_my_saves(saves_name, package):
    save_from = './saves/' + saves_name

    '''
    save_from = './saves/save_common'
    if test_id == Cases.TUTORIAL_1: save_from = './saves/save_tutorial_1'
    if test_id == Cases.TUTORIAL_2: save_from = './saves/save_tutorial_2'
    if test_id == Cases.TUTORIAL_3: save_from = './saves/save_tutorial_3'
    # if test_id == Cases.TUTORIAL_4: save_from = './saves/save_tutorial_4'
    if test_id == Cases.TUTORIAL_5: save_from = './saves/save_tutorial_5'
    if test_id == Cases.TUTORIAL_6: save_from = './saves/save_tutorial_6'
    if test_id == Cases.TUTORIAL_7: save_from = './saves/save_tutorial_7'
    if test_id == Cases.TUTORIAL_8: save_from = './saves/save_tutorial_8'
    if test_id == Cases.TUTORIAL_9: save_from = './saves/save_tutorial_9'
    if test_id == Cases.TUTORIAL_10: save_from = './saves/save_tutorial_10'
    '''

    clear_app(package)
    
    full_path_to = 'sdcard/Android/data/' + package
    shell('mkdir ' + full_path_to)
    full_path_to = 'sdcard/Android/data/' + package + "/files"
    shell('mkdir ' + full_path_to)
    shell('mkdir ' + full_path_to + '/2020-04-09-17-10-42')
    shell('mkdir ' + full_path_to + '/Settings')
    a = Android()
    a.adb.push(save_from + '/events.tsf', full_path_to + '/2020-04-09-17-10-42/')
    a.adb.push(save_from + '/profile.tsf', full_path_to + '/2020-04-09-17-10-42/')
    a.adb.push('./saves/Settings/settings.tsf', full_path_to + '/Settings/')
    a.adb.push('./saves/nw_save10.save', full_path_to + '/')
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 dr_finalizer():
        stopapp = request.config.getoption("stopapp")
        if stopapp == True or stopapp == 'True':
            stop_app(APP_PACKAGE)
            clear_app(APP_PACKAGE)
            print()
            print('conftest: stop app')

        if airtesthtml and airtestlog:
            custom_report(case_info,
                          logdir,
                          online_path=online_path,
                          proj_name=PROJ_NAME,
                          static_root=static_root)
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 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")
Exemplo n.º 8
0
def poco(request, driver_class):
    # connect_device()
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco

    case_name = request.node._nodeid
    airtestlog = request.config.getoption("airtestlog")
    if airtestlog:
        split_path = request.module.__file__.split(PROJ_NAME)
        log_parentdir = split_path[0] + PROJ_NAME + '\\' + GL.REPORT_DIR
        if not os.path.exists(log_parentdir):
            os.mkdir(log_parentdir)
        jkbuildid = request.config.getoption("--jkbuildid")
        jkjobname = request.config.getoption("--jkjobname")

        if jkbuildid != -1 and jkjobname:
            logdir = os.path.join(log_parentdir, jkjobname)
            if not os.path.exists(logdir):
                os.mkdir(logdir)
            logdir = os.path.join(logdir, jkbuildid)
            if not os.path.exists(logdir):
                os.mkdir(logdir)
        else:
            logdir = log_parentdir
        #log_subdir = request.module.__name__+' '+request.function.__name__
        logdir = os.path.join(logdir, request.module.__name__)
        if not os.path.exists(logdir):
            os.mkdir(logdir)
        logdir = os.path.join(logdir, request.function.__name__)
        if not os.path.exists(logdir):
            os.mkdir(logdir)
        print('    logdir: ', logdir)
        #request.logdir=logdir
        G.LOGGING.debug('logdir: %s' % logdir)
        set_logdir(logdir)

    airtesthtml = request.config.getoption("airtesthtml")
    if airtesthtml and airtestlog:
        from airtest.report.report import custom_report
        from airttest_settings import jk_server, static_server
        case_info = {"name": case_name, "desc": request.node.function.__doc__}

        if jkbuildid != -1 and jkjobname:
            #'http://xx.xx.x.x:8080/jenkins/job/JOBNAME/ws/report/JOBNAME/'
            print('jk jk_server: ', jk_server)
            #jk_logdir=logdir.split(PROJ_NAME)[1]
            #print('jk log dir: ',jk_logdir)
            #online_report=jk_server+'/job/'+jkjobname+'ws'+jk_logdir.replace('\\','/')+'/'
            online_path = jk_server + '/job/' + jkjobname + '/ws/'
            static_root = jk_server + '/job/' + jkjobname + '/ws/files/statics/'
        else:
            online_path = None
            static_root = None

    startapp = request.config.getoption("startapp")
    print('startapp: ', startapp)
    print('type(startapp): ', type(startapp))
    if startapp == True or startapp == 'True':
        clear_app(APP_PACKAGE)
        print('conftest: start app')
        start_app(APP_PACKAGE)

    poco = AndroidUiautomationPoco(use_airtest_input=True,
                                   screenshot_each_action=True)
    yield poco

    #yield driver_class

    def dr_finalizer():
        stopapp = request.config.getoption("stopapp")
        if stopapp == True or stopapp == 'True':
            stop_app(APP_PACKAGE)
            clear_app(APP_PACKAGE)
            print()
            print('conftest: stop app')

        if airtesthtml and airtestlog:
            custom_report(case_info,
                          logdir,
                          online_path=online_path,
                          proj_name=PROJ_NAME,
                          static_root=static_root)

    request.addfinalizer(dr_finalizer)