appium 如何调用 adb_带你了解可用于Android APP自动化测试的框架:Appium

Appium是一个开源的测试自动化框架,可用于原生,混合和移动Web应用程序测试。 它使用WebDriver协议驱动iOS,Android和Windows应用程序。Appium类库封装了标准Selenium(还不熟悉Selenium的可以查看我前一篇文章带你了解Web自动化测试工具Selenium的使用)客户端类库,为用户提供所有常见的JSON格式Selenium命令以及额外的移动设备控制相关的命令,如多点触控手势和屏幕朝向。其工作原理如下:

98d93da92fcab6d4ddb7d5dddff45b1f.png

首先,Appium支持多语言,因为它针对流的几种语言分别开发的相应的Appium库。好处就是我们可以选择自己熟悉的语言编写Appium脚本。其次,Appium支持多平台,包括MAC和Windows。它针对这两大平台开发了Appium-Server。最后,Appium又同时支持Android 和 iOS两个操作系统。这就使得Appium变得非常灵活。这个工作原理同Selenium一样的,Selenium也是 Selenium-Client =》 Selenium-Server =》 浏览器 这样的流程。

本文章聚焦于Android APP的自动化测试。先来看下最终效果(这里我使用的终端设备是Android 模拟器):

40f2a0d37e5d082b6436b4d1947ff9c9.gif

可以看到,Appium会自动打开APP,自动点击按钮,自动输入用户名密码登录,自动选择题目选项,最后提交等全过程,均无需人工干预。

接下来我们看下代码是怎么写的,当然,要运行这个单元测试,必须要先下载Appium并启动Appium-Server:

/**

从中我们可以看到,基本用法同Selenium差不多,一样也是通过id(这个id指的是Android控件的id)、className(className指的是Android控件的完整类名)等来定位元素,那么问题来了,这个又不是网页,没法通过F12来检查元素,我们也没有Android APP源码,要如何知道控件id是什么呢?

这里就要用的Appium本身自带的元素检查器了。启动一个检查器会话,填写待连接设备的信息,启动会话,同时设备也要打开APP进入到目标页面:

ea461d8af41f52c1969fb6f204d3e248.png

这里就可以看到整个页面的结构,点击某个元素,例如用户名输入框,可以看到,其id为org.javamaster.fragmentlearning:id/username,className为android.widget.EditText,text内容为

用户名等等关于这个元素的所有信息:

804fe9f1892f533a23c5d5573f96eebe.png

所以我们的login方法就可以这么写了:

public 

anticipateExam()方法同理分析。

最后如果不想每次运行单元测试之前都要先启动Appium的话,可以用npm命令npm install -g appium安装一个Appium-Server,然后测试类这样写:

public 

此外Appium也可以操纵WebView(假设APP源码已调用WebView.setWebContentsDebuggingEnabled(true)方法打开了WebView的调试模式),这里可以看下效果:

f024bdf27e7558a54b172d261b10f71c.gif

可以看到,Appium在WebView打开的网页里自动输入了内容,自动点击了按钮。

各位可以查看webViewSearch()方法来研究其用法,这里不再展开。

想更多了解Appium,可以查阅官方文档:

简介 - Appium​appium.io

源码github地址:

https://github.com/jufeng98/online-exam​github.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值