小小千想和您聊一聊

当前位置: 首页> 技术分享> 如何在Android手机上进行自动化测试(三)

如何在Android手机上进行自动化测试(三)

  如何使用Poco对Android原生应用进行测试

  Poco支持直接对任何Android原生应用(非游戏引擎,非webview)进行UI层次结构识别,用法上与Poco在其他平台上一模一样。

  在AirtestIDE的Poco Assistant面板中选择Android模式之后,AirtestIDE会开始自动向手机里安装Pocoservice.apk和Pocoservice-test.apk,部分型号手机需要手动点击确认安装才能顺利安装。

  安装完成后,AirtestIDE会自动启动PocoService,它会定时抓取Android上界面的层次结构信息,稍等片刻就可以在AirtestIDE界面中看到当前界面的UI结构结构树。

  如果Pocoservice启动失败,会导致Pocoservice.apk反复重装,此时可以检查以下几个方面:

  是否有Android版本过低,Poco支持≥19,Android SDK API即Android 4.4及以上

  请关闭PC或手机上连接的网络代理代理,否则可能导致连不上Poco

  可以尝试卸载手机中的2个Pocoservice相关的APK后,手工重新安装一遍,在poco\poco\drivers\android\lib目录下能够找到这两个APK

  部分vivo和oppo手机需要将手机设置-输入法设置中,把Yosemite输入法设置为替换输入法+当前输入法

  一个使用计算器的例子

  在这里我们提供一个使用Poco对一个计算器应用编写代码的例子,并同时将App安装到手机上。

  按照前面说的,在AirtestIDE中的Poco辅助窗口拖放菜单中选择Android后,AirtestIDE将自动启动Pocoservice,显示出当前的UI控件结构树。此后就可以在AirtestIDE中进行Poco语句的编写和录制了。

  代码示例

  下面这段代码示例将演示一个简单的功能:点击计算器的界面,实现一个1 + 1 = 2的运算验证。


from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco()
poco('com.google.android.calculator:id/digit_1').click()
poco('com.google.android.calculator:id/op_add').click()
poco('com.google.android.calculator:id/digit_1').click()
poco('com.google.android.calculator:id/eq').click()
result = poco('com.google.android.calculator:id/formula').get_text()
assert_equal(result, '2', '1+1=2 ^^')


  在这段代码中,我们使用poco = AndroidUiautomationPoco()初始化了一个poco对象,然后分别选择了1 + 1按钮进行点击操作后,使用get_text接口非常轻松地获取到了结果控件的值2,并且使用断言语句进行结果验证。

  同时连接多台手机使用波科

  一个脚本里可以连接多台Android手机,并且用set_current接口在手机之间切换:


  from airtest.core.api import connect_device

  dev1 = connect_device("Android://127.0.0.1:5037/serialno1") # 连上第一台手机

  dev2 = connect_device("Android://127.0.0.1:5037/serialno2") # 第二台手机

  set_current(1)


  假如我们在连上手机后,想要分别使用poco去获取控件和单击两个台不同的手机,此时需要分别初始化两个poco,就像这样:


  from airtest.core.api import connect_device

  dev1 = connect_device("Android://127.0.0.1:5037/serialno1") # 连上第一台手机

  poco1 = AndroidUiautomationPoco(dev1)

  dev2 = connect_device("Android://127.0.0.1:5037/serialno2") # 第二台手机

  poco2 = AndroidUiautomationPoco(dev2)

  set_current(1) # 切到第二台手机

  poco2('com.google.android.calculator:id/digit_1').click()


  同理,如果不使用connect_device接口连接手机,或者通过直接在命令行中插入--device来自动连接手机的话,不需要在代码里重复执行connect_device。此时只需要分别获取到设备对象,并使用设备对象初始化poco就可以了:


  from airtest.core.api import G

  print(G.DEVICE_LIST) # 假设当前总共有2台手机

  poco1 = AndroidUiautomationPoco(G.DEVICE_LIST[0])

  poco2 = AndroidUiautomationPoco(G.DEVICE_LIST[1])


  以上内容,非原创,来自于官网翻译

上一篇:写不好测试用例是因为没时间吗?

下一篇:Android常用自动化测试工具

QQ技术交流群

千锋软件测试官方①群
858327674

加入群聊

用户登录

手机号:

密码:

图形验证码:

点击切换

用户注册

手机号:

登录密码:

图形验证码:

点击切换

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

手机号:

图形验证码:

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

新密码:

确认新密码:

获取课程

添加小千老师微信,获取课程信息

如何获取课程?

一、需拥有此本教材

如没有,可点击下方入口购买当当购买入口京东购买入口

二、添加小千老师,发送拥有凭证,解锁课程资源

1.购买该教材的订单信息
2.拥有的实体书信息等

更换手机号

新手机号:

图形验证码:

短信验证码:

获取验证码