上篇文章以一个简单的案例-抖音“喜欢”视频列表的抓包过程为例,简单介绍了使用mitmproxy结合python代码实现抓包的过程。更近一步,另一个简单案例-但是当“喜欢”列表很长,想要抓到所有视频的信息,则需要不断的上滑屏幕。因此本文结合这个案例常见,使用appium实现模拟滑动,结合上文的mitmproxy抓包,抓取某用户“喜欢”的全量视频信息。下文均以安卓端为例展开,介绍下appium实现自动化测试的过程。
Appium是一个开源移动端测试自动化框架,可以测试原生的、混合的、以及移动端的web项目。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。
在Android端,appium基于WebDriver协议,利用Bootstrap.jar,最后通过调⽤用UiAutomator的命令,实现App的自动化测试。
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,整个工作流结束。
可以跨平台同时支持Android、iOS
支持多种语言,java、python、php、Ruby等等
简单的前序介绍就到这里,下面分4个步骤,以windows端appium为例,讲解下appium的安装和使用。
Appium本身的安装过程并不复杂,一直下一步即可。但是要首先安装jdk、android sdk、python和nodejs,并正确配置环境变量。
Appium官网地址:http://appium.io/
这里可以直接安装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”如下图:
对应下载安装: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,可以看到版本号即可。
到python下载地址下载:https://www.python.org/downloads/
之后一路下一步安装完成即可。注意这里要记住安装路径,配置python环境变量。
同上文android sdk和jdk的环境变量配置,这里直接编辑Path,新建一行填入python的安装路径即可。
安装成功验证方式:在命令行中输入python --version,可以看到版本号即可。
下载地址:https://nodejs.org/zh-cn/download/
Nodejs的安装简单,下载对应的安装包,下一步安装即可。之后类似上文,配置环境变量即可。
安装成功验证方式:在命令行中输入python --version,可以看到版本号即可。
正确下载安装即可:https://github.com/appium/appium-desktop
这里直接一路下一步即可,不贴图。
Appium Desktop是一款适用于Mac,Windows和Linux的开源应用程序,它以美观而灵活的用户界面提供Appium自动化服务器的强大功能。
Step中一路下一步成功安装appium后,在配置界面,填入Step中的两个环境变量即可。
当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即可。
这里务必注意,Appium-Python-Client一定要使用1.0.2,不然会有很多报错。
编写对应的操作模拟代码,即可实现一系列的自动化模拟操作。
对应代码此处暂不放,有需要请私信沟通。
什么是Mitmproxy:
Mitmproxy是开源的网络代理服务,可以结合代码轻松实现手机端的抓包需求。
安装和简单的使用步骤:
STEP1:下载和安装Mitmproxy
STEP2:手机端的配置
STEP3:Mitmproxy界面初识
STEP4:结合python代码实现简单的抓包
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。