Android 自动黑盒测试渲染脚本

Android 自动黑盒测试渲染脚本,android,testing,monkeyrunner,Android,Testing,Monkeyrunner,我需要找到一个解决方案来测试一些渲染脚本。基本上是一些在屏幕上显示一些动画的应用程序。如果显示动画,则测试通过,否则测试失败。 我没有apk的来源。 直到现在,使用monkeyrunner,我通常会拍摄两张截图并进行比较。如果两张不同的图片通过了测试。现在,由于android emulator中的一个错误,我无法再拍摄屏幕截图。如果您无法使用MonkeyRunner拍摄屏幕截图,我建议尝试使用shell命令在设备上拍摄屏幕截图,将生成的图像拉到主机,然后将图像读取到MonkeyImage 首先,

我需要找到一个解决方案来测试一些渲染脚本。基本上是一些在屏幕上显示一些动画的应用程序。如果显示动画,则测试通过,否则测试失败。 我没有apk的来源。
直到现在,使用monkeyrunner,我通常会拍摄两张截图并进行比较。如果两张不同的图片通过了测试。现在,由于android emulator中的一个错误,我无法再拍摄屏幕截图。

如果您无法使用MonkeyRunner拍摄屏幕截图,我建议尝试使用shell命令在设备上拍摄屏幕截图,将生成的图像拉到主机,然后将图像读取到MonkeyImage

首先,让设备自己拍摄屏幕截图:

monkeyDevice.shell("screencap -p /sdcard/screen.png")
其次,从设备中提取屏幕截图:

from subprocess import call
call(["adb", "pull", "/sdcard/screen.png"])
第三,将屏幕截图作为MonkeyImage加载

image = MonkeyRunner.loadImageFromFile('screen.png')
现在,您可以使用image.sameAs与普通图像进行比较


请注意,MonkeyRunner.loadImageFromFile是在SDK版本13中添加的。

欢迎!通常我们会尽量避免问题中的感谢标语,以保持其整洁,你可以在这里阅读“为什么”。我已经告诉过你,这不再有效,因为andoird中有一个bug,图片总是黑色的,所以我需要一个解决方法抱歉,我以为只有MonkeyRunner的屏幕截图不符合你的描述。您可能会编写ActivityInstrumentationTestCase2类,并使用getActivity访问根视图。拥有根视图后,可以通过多种方式(请参阅:)将其写入文件,并按上述方式提取生成的文件。在进行黑盒测试时,必须使用签名工具使用与instrumentation应用相同的密钥对目标应用重新签名: