开启真机的View Server引入HierarchyViewerBy写monkeyrunner自动化测试脚本

xiaoxiao2021-02-28  81

Android SDK自带一个工具叫做monitor,它里面的Hierarchy Viewer可以看到app的UI结构、控件属性等等。monkeyrunner有一个类By,通过By可以在代码中根据控件ID定位到该控件从而写更有针对性代码(比如点击按钮、比如获取文本框中的字符串)。

可是出于安全考虑,Hierarchy Viewer只能连接Android开发版手机或是模拟器。只有当设备或模拟器上启动一个叫做View Server的服务,Hierarchy Viewer才能与其进行socket通信,才能看到app的“View”。而绝大多数商业手机是无法开启View Server的,所以Hierarchy Viewer也就无法连接到普通的商业手机。而By又依赖于Hierarchy Viewer,所以如果想在普通的商业手机上通过控件ID去做一些操作,连接模拟器运行通过的脚本连接真机运行是会抛错的。

不过小米手机是个例外,通过执行如下命令可以轻易开启它的View Server:  adb shell service call window 1 i32 4939  然后通过执行如下命令判断是否开启View Server:  adb shell service call window 3  若返回值是:Result: Parcel(00000000 00000001 '........') 说明View Server处于开启状态  若返回值是:Result: Parcel(00000000 00000000 '........') 说明View Server处于关闭状态  如果想关闭View Server执行如下命令:  adb shell service call window 2 i32 4939

除了小米手机之外,别的手机能不能开启View Server?经过一番调查和实践,其实只要是root,并且装有busybox的手机,通过修改手机/system/framework中的某个文件,就能够开启View Server。

该文摘自:http://www.tuicool.com/articles/J3Y3Mb

WEL测试 认证博客专家 软件测试 性能测试 接口测试 一线的测试工作人员。喜欢专研并应用新的技术,用于提升测试效率。擅长:测试新人培训、测试进阶、接口测试、性能测试、问题定位、自动化、数据测试、渗透测试! 如果对测试感兴趣或者遇到一些难题,可以加我微信:Wel_Test,加时填好备注!
转载请注明原文地址: https://www.6miu.com/read-32443.html

最新回复(0)