• 一文搞定移动端appium自动化环境


    【appium环境搭建】

    1、Mac系统:11.6
    2、Xcode:12.5.1
    从App Store中下载Xcode
    3、安装brew:3.2.12
    4、安装nodejs:12.18.1
    • 从nodejs官网下载安装包安装
    • brew install node
    5、安装libimobiledevice
    • brew install -- HEAD libimobiledevice
      常用命令:
        idevicesyslog:查看系统日志
        idevice_id -l:查看当前已连接的设备uuid
        idevicescreenshot:截图
        ideviceinfo:查看设备信息
        ideviceinfo -k ProductVersion:查看系统版本
        idevicename:获取设备名称
        idevicedate:获取设备时间
    6、安装ios-deploy
    • npm install -g ios-deploy
    • cnpm install -g ios-deploy
      常用命令:
        ios-deploy -c:查看相关链接设备,包括USB和Wi-Fi连接的
        ios-deploy -c --no-wifi:查看通过USB连接的设备
        ios-deploy --id [uuid] --bundle [xxx.app]:安装应用
    7、安装ideviceinstaller
    • brew install ideviceinstaller
      常用命令:
        ideviceinstaller -l:打印已安装的app列表
        ideviceinstaller -u 2721277896a12c5170b349ef1a0c350c305d85ce -l:指定设备打印已安装的app列表
        ideviceinstaller -i xxx:安装ipa包
        ideviceinstaller -g xxx:覆盖安装ipa包
        ideviceinstaller -U com.tencent.QQMusic:卸载QQ音乐的ipa包
        idevicediagnostics restart:重启设备
    8、安装carthage
    • brew install carthage 验证:carthage version
    9、安装appium的三种方式
    • npm install -g appium【建议FQ安装原版appium,会自动解决一些依赖问题】
    • cnpm install -g appium
        appium-doctor检查appium安装情况
      • appium-doctor --ios 检查iOS安装情况
      • appium-doctor -- android 检查Android安装情况

    我使用appium-desktop进行脚本的编写和调试,所以这里只介绍appium-desktop下的android和ios!!!

    网上的资料均为已过时老版本的appium,对iOS的支持需要替换appium自带的WDA,其实在appium-desktop 1.21.0 版本中已大可不必替换!

    【iOS】

    0、关于开发者账号
     
    在 iOS 上通过 App Store 下载的应用,携带的是分发证书(Distribution Certificate),是禁止被测试的。
    所以,需要获取 ipa 安装包再重新签名才可以被Appium 测试。
     
    1、真机上安装WDA
    • 安装包版appium下的WDA路径:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent
    • 打开该路径下的WebDriverAgent.xcodeproj文件
    • 修改如下几个地方:
     
     
     
     
    • 在Xcode中用快捷键:command + U
    • 中间会出现几次访问钥匙串,直接输入机器密码。稍等片刻在手机上即可看到WDA【一个无logo的应用】
    • 在设备中进行信任:设置-通用-设备管理-点击出现的开发者app-点击信任
    2、真机上运行脚本
     1 import time
     2 from appium import webdriver
     3 
     4 class Test_Demo():
     5     def setup(self):
     6         caps = {}
     7         caps["deviceName"] = "iPhone SE" # 设备的名称,在手机设置-通用-关于手机 可自行设置
     8         caps["udid"] = "2721277896a12c5170b349ef1a0c350c305d85cw" # 设备的udid,指定后只会在一台机器上运行脚本
     9         # caps["udid"] = "auto" # 如果设备有多台可使用auto自动选择
    10         caps["platformVersion"] = "14.8" # 设备的系统版本
    11         caps["platformName"] = "ios" # 设备的操作系统
    12         caps["automationName"] = "xcuitest" 
    13         caps["noReset"] = True # 不要重复安装
    14 
    15         caps["xcodeOrgId"] = "8278HWK4WG" # 看查看自己的team id
    16         caps["xcodeSigningId"] = "iPhone Developer" # 固定写死即可
    17         # Xcode编译后app的路径
    18         caps["app"] = "/Users/xxx/Library/Developer/Xcode/DerivedData/UICatalog-dxrwbrhjaphogpgoapcncfjznios/Build/Products/Debug-iphoneos/UICatalog.app"
    19 
    20         self.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
    21         self.driver.implicitly_wait(20)
    22 
    23     def test_click(self):
    24         self.driver.find_element_by_accessibility_id("Buttons").click()
    25 
    26     def teardown(self):
    27         time.sleep(20)
    28         self.driver.quit()
    相关链接:
     
     

    【Android】

    1、安装adb
    • 安装Android studio下sdk并配置系统环境变量
    1 #Android
    2 ANDROID_HOME=/Users/xxx/Library/Android/sdk
    3 #adb start
    4 export PATH=$ANDROID_HOME/platform-tools:$PATH
    5 #uiautomatorviewer start
    6 export PATH=$ANDROID_HOME/tools/bin:$PATH
    7 #emulator start
    8 export PATH=$ANDROID_HOME/emulator:$PATH
    9 export ANDROID_HOME
    • brew install android-platform-tools
    2、连接设备编写脚本
     
     
    相关链接:
     
     
    遇到问题:
    1、Error running xcrun simctl
    打开Xcode-->Preferences-->Locations-->Command Line Tools 选择版本号就可以
    2、opencv4nodejs cannot be found.
    sudo npm install -g opencv4nodejs --ignore-scripts
     

  • 相关阅读:
    rsync+inotify实现实时同步案例
    Redis安装笔记
    监控软件munin安装设置
    Let’s Encrypt Wildcard 免费泛域名SSL证书获取安装
    [转载]真正的inotify+rsync实时同步 彻底告别同步慢
    PAT L1-009 N个数求和(运用GCD进行通分)
    文件的上传下载
    关系型数据库 VS 非关系型数据库
    python的局部变量,全局变量,类变量,实例变量
    Python 常用模块大全(整理)
  • 原文地址:https://www.cnblogs.com/hanxiaobei/p/15315470.html
Copyright © 2020-2023  润新知