[python]Appium+python +pytest 实现APP自动化,基于安卓
1.安卓环境搭建
&关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装、启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人)
&目前appium环境搭建我还是比较喜欢根据虫师写的,搭建app自动化,之前搭过几次基本没啥问题而且也给出了下载链接 https://www.cnblogs.com/fnng/p/4540731.html
1.1https://nodejs.org/ 下载windows msi文件安装下一步到最后即可(node.js 6.4之前的,不然和下面appium版本冲突)
1.2http://pan.baidu.com/s/1jGvAISu 下载appium 目前以AppiumForWindows_1_4_0_0.zip版本搭建,下载后解决下一步到最后即可
1.3下载sdk http://dl.google.com/android/android-sdk_r23.0.2-windows.zip 解压后配置环境变量
ANDROID_HOME
%:\android\android-sdk-windows
path
%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;
1.4下载platform-tools
http://www.androiddevtools.cn/
1.5 appium放到环境变量里
C:\Program Files (x86)\Appium\node_modules\.bin放入path
2.0安装--注意点
&需要注意,如果appium安装的是1.4.0,那么node.js最好小于6.4.0不然会版本冲突
& 安装 pip install appium-python-client
3.真机运行
&手机连接电脑--打开 开发者模式--usb调试-
在cmd下查看手机id,我的查询到是 WJX7N17A17001123
adb devices
&命令启动Appium,CMD下输入下面的命令
ip,端口可定义
-U后面写手机的id
appium -a 127.0.0.1 -p 4723 –U WJX7N17A17001123 --no-reset
4.测试脚本,打开app
&需要获取先获取被测APP的appPackage和appActivity两个参数
先把apk放在电脑上
cmd-执行自己的apk目录
aapt dump badging E:\apk\com.eg.android.AlipayGphone.apk
注意~
sdk下载,可下载最新的,真机运行也需要,不然可能会报错 找不到build-tools
下载sdk源,有可能报错,自定义一个新的sdk库更新--mirrors.neusoft.edu.cn 端口80
脚本调试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # coding:utf-8 from appium import webdriver import os import time def setUpa(): desired_caps[ 'appActivity' ] = 'com.cardinfolink.yunshouyin.activity.SplashActivity' desired_caps = {} desired_caps[ 'platformName' ] = 'Android' # 设备系统 # desired_caps['platformVersion'] = '7.0' # 设备系统版本 desired_caps[ 'deviceName' ] = 'WJX7N17A17001123' # 设备名称 desired_caps[ 'appPackage' ] = 'com.eg.android.AlipayGphone' #上面提到获取的参数 desired_caps[ 'appActivity' ] = 'com.eg.android.AlipayGphone.AlipayLogin' #上面说到获取的参数 driver = webdriver.Remote( 'http://127.0.0.1:4723/wd/hub' ,desired_caps) time.sleep( 2 ) driver.find_element_by_id( 'com.alipay.android.phone.openplatform:id/saoyisao_iv' ).click() #操作和web自动化方法几乎一致 time.sleep( 2 ) driver.find_element_by_xpath( "//android.widget.ImageView[@resource-id='com.alipay.android.phone.openplatform:id/saomafu_iv']" ).click() driver.quit() |
这样一个demo就写完了~ 下面就靠自己设计自动化框架封装的实现 拉~ 这个暂时不说了
5.0模拟器运行
基于上面,模拟器需要的版本以下载,现在需要创建一个模拟器配置参考下虫师的即可
打开模拟器,adb devices 查看是否连接 连接了直接运行脚本需要改下deviceName即可
6.0脚本参数化,简单思路
&参考web自动化的参数化封装关键字即可
注意点,
Appium启动服务和关闭服务可以做成bat处理,然后python调用即可
#写下来似乎和pytest没啥关系,其实参考下pytest实现web自动化,都是一样的操作:https://www.cnblogs.com/Jack-cx/p/9357680.html
#我觉得如果公司主业务不是移动的,不建议做持续集成,必要性不大,甚至不要做app的ui自动化,以接口自动化/性能为主
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· 语音处理 开源项目 EchoSharp
· 《HelloGitHub》第 106 期
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 使用 Dify + LLM 构建精确任务处理应用