2015-12-23 3 views

ответ

2

input - приложение для Java, и «задержка», которую вы видите, зависит от того, сколько времени потребуется устройству для запуска нового приложения Java. 1s типичен для старых устройств.

Вы не можете много сделать, если хотите продолжать использовать input. Альтернативой этому будет либо using sendevent command, либо изменение input, чтобы принять последовательность координат для отправки всего жеста сразу.

0

Хотя sendevent, безусловно, является альтернативой, он громоздкий и зависит от устройства.

Другая альтернатива существует: CulebraTester CulebraTester обеспечивает точку в режиме реального времени и нажмите тестовую запись через веб-браузер. Этот браузер подключен к тестируемому Android-устройству. Сгенерированный скрипт совместим с AndroidViewClient/culebra, который вы уже знаете. Основным отклонением между обоими решениями является использование другого back-end. AndroidViewClient/culebra обычно использует adb в качестве фонового в большинстве случаев, в то время как CulebraTester использует сервер, работающий на устройстве, поддерживаемый Ui Automator.

Этот тестовый сценарий. который автоматически генерируется CulebraTester

#! /usr/bin/env python 
# -*- coding: utf-8 -*- 
''' 
Copyright (C) 2013-2018 Diego Torres Milano 
Created on 2018-02-06 by CulebraTester 
         __ __ __ __ 
        /\/\/\/\ 
____________________/ __\/ __\/ __\/ __\_____________________________ 
___________________/ /__/ /__/ /__/ /________________________________ 
        |/\ /\ /\ /\ \___ 
        |/ \_/ \_/ \_/ \ o \ 
              \_____/--< 
@author: Diego Torres Milano 
@author: Jennifer E. Swofford (ascii art snake) 
''' 


import re 
import sys 
import os 
import time 

import unittest 
try: 
    sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src')) 
except: 
    pass 

import pkg_resources 
pkg_resources.require('androidviewclient>=12.4.0') 
from com.dtmilano.android.viewclient import ViewClient, CulebraTestCase 
from com.dtmilano.android.uiautomator.uiautomatorhelper import UiAutomatorHelper, UiScrollable, UiObject, UiObject2 

TAG = 'CULEBRA' 

class CulebraTests(CulebraTestCase): 

    @classmethod 
    def setUpClass(cls): 
     cls.kwargs1 = {'ignoreversioncheck': False, 'verbose': True, 'ignoresecuredevice': False} 
     cls.kwargs2 = {'forceviewserveruse': False, 'useuiautomatorhelper': True, 'ignoreuiautomatorkilled': True, 'autodump': False, 'startviewserver': True, 'compresseddump': True} 
     cls.options = {'start-activity': None, 'concertina': False, 'device-art': None, 'use-jar': False, 'multi-device': False, 'unit-test-class': True, 'save-screenshot': None, 'use-dictionary': False, 'glare': False, 'dictionary-keys-from': 'id', 'scale': 1, 'find-views-with-content-description': True, 'window': -1, 'orientation-locked': None, 'save-view-screenshots': None, 'find-views-by-id': True, 'log-actions': False, 'use-regexps': False, 'null-back-end': False, 'auto-regexps': None, 'do-not-verify-screen-dump': True, 'verbose-comments': False, 'gui': False, 'find-views-with-text': True, 'prepend-to-sys-path': False, 'install-apk': None, 'drop-shadow': False, 'output': None, 'unit-test-method': None, 'interactive': False} 
     cls.sleep = 5 

    def setUp(self): 
     super(CulebraTests, self).setUp() 

    def tearDown(self): 
     super(CulebraTests, self).tearDown() 

    def preconditions(self): 
     if not super(CulebraTests, self).preconditions(): 
      return False 
     return True 

    def testSomething(self): 
     if not self.preconditions(): 
      self.fail('Preconditions failed') 

     _s = CulebraTests.sleep 
     _v = CulebraTests.verbose 

     t = time.time() 
     for _ in range(100): 
      self.vc.click(x=321, y=996) 
     print (time.time() - t) 


if __name__ == '__main__': 
    CulebraTests.main() 

только был добавлен приуроченная цикл отправки 100 кликов события. Запуск показывает, как можно улучшить задержку с помощью этого метода.

+0

thx. но я получаю эту ошибку: Traceback (самый последний вызов последнего): Файл " test1.py", строка 30, в pkg_resources.require ('androidviewclient> = 12.4.0') Файл «/ USR/местные /lib/python2.7/dist-packages/pkg_resources/__init__.py ", строка 972, в требовании required = self.resolve (parse_requirements (требования)) Файл" /usr/local/lib/python2.7/dist -packages/pkg_resources/__ init__.py ", строка 858, в разрешении raise DistributionNotFound (req, requirers) pkg_resources.DistributionNotFound: дистрибутив 'androidviewclient> = 12.4.0' не найден и требуется приложением –

+0

Как это сделать вы устанавливаете? Easy_install, pip? –

+0

какие librays я должен установить с пипсом? –

Смежные вопросы