前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安卓自动化测试工具appium的使用案例

安卓自动化测试工具appium的使用案例

原创
作者头像
singleli
修改2020-10-26 23:54:46
3.9K0
修改2020-10-26 23:54:46
举报
文章被收录于专栏:腾讯云终端专家服务

前言:

上篇文章以一个简单的案例-抖音“喜欢”视频列表的抓包过程为例,简单介绍了使用mitmproxy结合python代码实现抓包的过程。更近一步,另一个简单案例-但是当“喜欢”列表很长,想要抓到所有视频的信息,则需要不断的上滑屏幕。因此本文结合这个案例常见,使用appium实现模拟滑动,结合上文的mitmproxy抓包,抓取某用户“喜欢”的全量视频信息。下文均以安卓端为例展开,介绍下appium实现自动化测试的过程。

前序知识:

1)什么是appium

Appium是一个开源移动端测试自动化框架,可以测试原生的、混合的、以及移动端的web项目。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。

在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。

2)appium 在android端工作流

1. client端也就是我们的webdriver测试脚本。

2. 中间是起的Appium的服务,Appium⽀持标准的WebDriver JSONWireProtocol,Appium在服务端起了一个Server(默认端口4723)。Appium Server接收web driver client标准restful请求,解析请求内容,调⽤用对应的框架响应操作。

3. appium server会把请求转发给中间件Bootstrap.jar ,它是用java写的,安装在手机上Bootstrap监听4724端口并接收appium 的命令,最终通过调⽤用UiAutomator的命令来实现所请求的命令。

4. 最后Bootstrap将执行的结果返回给appium server。

5. appium server再将结果返回给 appium client,整个工作流结束。

3)appium的优势

可以跨平台同时支持Android、iOS

支持多种语言,java、python、php、Ruby等等

Appium的安装与使用:

简单的前序介绍就到这里,下面分4个步骤,以windows端appium为例,讲解下appium的安装和使用。

STEP1:下载和安装appium

Appium本身的安装过程并不复杂,一直下一步即可。但是要首先安装jdk、android sdk、python和nodejs,并正确配置环境变量。

Appium官网地址:http://appium.io/

1)android sdk的安装与环境变量的配置

这里可以直接安装android sdk,或者对于终端开发者而言,直接安装Android Studio也可,安装过程中会下载sdk。

以Android Studio方式为例,列举一下sdk路径查看方式。

到android studio下载地址下载:https://developer.android.com/studio/#downloads

之后一路下一步安装完成即可。

AndroidStudio完成安装后,就附带了sdk,位置如下:

通过File-Setting进入Android Studio的设置界面,在如下图的路径中,可以看到所下载的Android SDK路径,记住这个路径地址,在Step2配置appium中要使用。

安装完成后,配置环境变量,新建ANDROID_HOME,配置变量值为刚才记录的位置

之后,编辑变量“Path”,新建“%ANDROID_HOME%\tools”如下图:

2)jdk的安装与环境变量的配置

对应下载安装:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

这里同样记录下jdk的安装位置,之后正确配置环境变量即可:

首先新建变量JAVA_HOME,变量值为刚才jdk的安装路径。

之后,编辑变量“Path”,新建“%JAVA_HOME%\bin”和“%JAVA_HOME%\jre\bin”

安装成功验证方式:在命令行中输入java -version,可以看到版本号即可。

3)python3的安装与环境变量的配置

到python下载地址下载:https://www.python.org/downloads/

之后一路下一步安装完成即可。注意这里要记住安装路径,配置python环境变量。

同上文android sdk和jdk的环境变量配置,这里直接编辑Path,新建一行填入python的安装路径即可。

安装成功验证方式:在命令行中输入python --version,可以看到版本号即可。

4)nodejs的安装和配置

下载地址:https://nodejs.org/zh-cn/download/

Nodejs的安装简单,下载对应的安装包,下一步安装即可。之后类似上文,配置环境变量即可。

安装成功验证方式:在命令行中输入python --version,可以看到版本号即可。

5)Appium的安装

正确下载安装即可:https://github.com/appium/appium-desktop

这里直接一路下一步即可,不贴图。

STEP2:appium的配置

Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面提供Appium自动化服务器的强大功能。

Step中一路下一步成功安装appium后,在配置界面,填入Step中的两个环境变量即可。

STEP3:appium的使用

当Step2正确配置后,直接点击start server即可。

此时,会在接麦你中展示服务运行,和监听的端口号(默认4723)。

此时,如下图点击放大镜按钮,可以简单测试下安装成果:

在弹出的Automatic Server配置界面中,填入如下配置:

这里对参数做简单说明:

{

"platformName": "Android",

"platformVersion": "6.0.1",(这里填写测试手机的实际安卓版本号)

"deviceName": "127.0.0.1:7555",(这里使用如下图adb devices命令查看,下图为模拟器的实例)

"appPackage": "com.ss.android.ugc.aweme",(抖音包名)

"appActivity": "com.ss.android.ugc.aweme.splash.SplashActivity",(抖音activity)

"noReset": true

}

配置完成后,如下图点击start session,即可看到效果,手机端的抖音,已经成功打开了。

附:

当报错如下图,原因是手机/模拟器没有成功连接,以mumu模拟器为例,运行命令adb connect 127.0.0.1:7555即可。

STEP4:如何结合python代码实现模拟滑动

这里务必注意,Appium-Python-Client一定要使用1.0.2,不然会有很多报错。

编写对应的操作模拟代码,即可实现一系列的自动化模拟操作。

对应代码此处暂不放,有需要请私信沟通。

总结:

什么是Mitmproxy:

Mitmproxy是开源的网络代理服务,可以结合代码轻松实现手机端的抓包需求。

安装和简单的使用步骤:

STEP1:下载和安装Mitmproxy

STEP2:手机端的配置

STEP3:Mitmproxy界面初识

STEP4:结合python代码实现简单的抓包

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 前序知识:
    • 1)什么是appium
      • 2)appium 在android端工作流
        • 3)appium的优势
        • Appium的安装与使用:
          • STEP1:下载和安装appium
            • 1)android sdk的安装与环境变量的配置
            • 2)jdk的安装与环境变量的配置
            • 3)python3的安装与环境变量的配置
            • 4)nodejs的安装和配置
            • 5)Appium的安装
          • STEP2:appium的配置
            • STEP3:appium的使用
              • STEP4:如何结合python代码实现模拟滑动
              • 总结:
              相关产品与服务
              消息队列 TDMQ
              消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档