Вы можете написать Java-процедуру и скомпилировать ее и запустить в Oracle. В этой процедуре вы можете использовать:
UUID uuid = UUID.randomUUID();
return uuid.toString();
Для генерации желаемого значения.
Здесь ссылка на то, как компилировать Java-процедуры в Oracle.
input
- это Java-приложение, и «задержка», которую вы видите, зависит от того, сколько времени потребуется устройству для запуска нового приложения Java. 1s типичен для более старых устройств.
Вы не можете много сделать, если хотите продолжать использовать input
. Альтернативы этому будут либо с использованием команды sendevent
, либо изменения input
, чтобы принять последовательность координат для отправки всего жеста сразу.
Хотя sendevent
, безусловно, является альтернативой, это громоздко и зависит от устройства.
Существует еще одна альтернатива: CulebraTester CulebraTester обеспечивает запись в режиме реального времени и запись по клику через веб-браузер. Этот браузер подключен к тестируемому Android-устройству. Сгенерированный скрипт совместим с AndroidViewClient / culebra , который вы уже знаете. Основное отклонение между обоими решениями - использование другого back-end. AndroidViewClient / culebra обычно использует adb
в качестве своего back-end в большинстве случаев, в то время как 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 кликов. Запуск его показывает, как можно улучшить задержку с помощью этого метода.
pip install androidviewclient
? Возможно, вы должны задать еще один вопрос.
– Diego Torres Milano
6 February 2018 в 21:30