2015-07-15 2 views
0

У меня есть несколько тестовых примеров, для которых у меня есть соответствующие скрипты monkeyrunner. Вещь, с которой я сталкиваюсь с monkeyrunner, заключается в том, что в моем случае она становится зависимой от устройства, поскольку я записываю координаты для своей последовательности событий. У меня серьезные проблемы, когда я работаю, я не получаю того же самого устройства, которое всегда тестируется, в результате я получаю скрипты для каждого устройства, которое много переработано. Я новичок в python, поэтому мне было интересно, есть ли способ сохранить координаты в отдельном файле и моем сценарии generic, где я могу создать несколько файлов координат для работы с одним и тем же кодом python. Как сделатьОбщие сценарии бегунов обезьян

print "Initiating Calling process" 
device1.touch(688,1620,'DOWN_AND_UP') 
MonkeyRunner.sleep(4) 

#Dialer 
print "Opening Dialer" 
device1.touch(536,1694,'DOWN_AND_UP') 
MonkeyRunner.sleep(2) 
device1.touch(526,664,'DOWN_AND_UP') 
MonkeyRunner.sleep(4) 
device1.type(ph_nmber_1) 


#Device 1 calling 
print "Calling from Device 1" 
device1.touch(536,1562,'DOWN_AND_UP') 
MonkeyRunner.sleep(4) 
device1.touch(536,1562,'DOWN_AND_UP') 
MonkeyRunner.sleep(8) 

, например, это выше код для конкретных координат устройства являются в соответствии с этим устройством, как я могу удалить жесткое кодирование координат?

ответ

0

Одна из многих причин, по которой существует AndroidViewClient/culebra, заключается в том, чтобы решить проблему, о которой вы упомянули. Модульные тесты и скрипты, созданные этими инструментами, не зависят от устройства в максимально возможной степени.

Например, если описание содержание доступно вы будете иметь что-то вроде

vc.findViewWithContentDescriptionOrRaise(u'''Story Album''').touch() 

если текст доступен вместо этого, вы будете иметь

self.vc.findViewWithTextOrRaise(u'Create a new contact').touch() 

иначе, id s будет использовано

self.vc.findViewByIdOrRaise("com.samsung.android.app.episodes:id/timeline_add_album_layout").touch() 

Это видео иллюстрирует функцию, выполняющую те же тесты на телефоне и планшете: http://dtmilano.blogspot.ca/2014/11/culebra-cross-device-application-tests.html