通用猴子赛跑者脚本

时间:2015-07-15 03:34:16

标签: android generics automation coordinates monkeyrunner

我有多个测试用例,我有各自的monkeyrunner脚本。 我与monkeyrunner合作的是,在我的情况下,它变得依赖于设备,因为我记录了我的事件序列的协调。我有重大问题,因为我工作时,我不会总是测试相同的设备,因此我最终为每个设备制作脚本,这是很多重新工作。 我是python的新手,所以我想知道是否有一种方法可以将坐标保存在separtate文件中并且我的脚本是通用的,其中我可以创建多个坐标文件以使用相同的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)
例如,上面的代码是针对特定设备的坐标是根据该设备如何删除坐标的硬编码?

1 个答案:

答案 0 :(得分: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