美文网首页
appium ios自动化测试

appium ios自动化测试

作者: 清水秋香 | 来源:发表于2020-04-05 11:17 被阅读0次

首先安装appium桌面版,appium命令行版,node.js版本在10以上,及Xcode,以下是本人安装版本,建议与我一至避免不必要的麻烦,坑还是很多滴。(如果要测试真机需要苹果开发者账户)
此为ios及安卓具体配置文档https://www.jianshu.com/p/1a69ee554b67

image.png
image.png image.png

依赖工具包安装:

brew install --HEAD ideviceinstaller
brew install --HEAD libimobiledevice
brew installl ios-deploy

ios必备命令
查看模拟器列表

instruments -s devices 

查看真机列表

idevice_id -l

安装app

ideviceinstall -i demo.app 

高版本使用

ios-deploy

命令行编译

xcodebuild -scheme UICatalog -target IOS clean build
xcodebuild -scheme UICatalog -target IOS archive

准备好运行你的第一个appium ios自动化脚本吧
命令行启动appium

appium -g /tmp/appium.log
image.png

启动appium桌面版
注意端口号要进行改变

image.png

配置xcode运行项目生成app
项目下载地址https://github.com/appium/ios-uicatalog
Xcode打开下载的项目

image.png
选择show the Report navigator
image.png
选择模拟器
image.png

点击Build,进行构建

image.png
构建完成后,将app路径进行复制,如果是真机选择真机进行构建,前提是你在apple注册了苹果开发者账户,使用开发者账户生成的app是有签名的可以放在真机上面运行,否则无法在真机上运行。构建的时候也会提示,无开发者证书 image.png
接下来配置appium桌面版
image.png
配置完成点击启动会话,等待虚拟设备加载安装,此过程很慢。(第二次启动就不会如此慢了)
选择此处虚拟设备会弹出,此时配置完成(这里的虚拟版本选择应与appium上一致)
image.png

录制一个脚本

image.png
image.png
复制之后放到pycharm即可运行脚本(虚拟设备不需要开发者账号)
#!/usr/bin/env python 
# -*- coding: utf-8 -*-
# Time      : 2020/4/5 10:50 上午
# Software  : PyCharm

# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python

from appium import webdriver

caps = {}
caps["platformName"] = "ios"
caps["app"] = "/Users/wgz/Library/Developer/Xcode/DerivedData/UICatalog-dxgcrbdxvzwlpqfelcxwkqriznkw/Build/Products/Debug-iphonesimulator/UICatalog.app"
caps["automationName"] = "XCUITest"
caps["deviceName"] = "iPhone 8"
caps["platformVersion"] = "13.3"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)

el1 = driver.find_element_by_accessibility_id("Image View")
el1.click()

driver.quit()

真机配置(必须要有开发者账号)
真机配置见注解

#!/usr/bin/env python 
# -*- coding: utf-8 -*-
# Time      : 2020/4/4 9:46 下午
# Software  : PyCharm

# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from time import sleep
from appium import webdriver


class TestIOS():
    def setup(self):
        caps = {}
        caps["platformName"] = "ios"

        # 使用真机生成包(使用Xcode选择真机生成包),给出路径不在是Debug-iphonesimulator路径   路径变为Debug-iphoneos
        # caps["app"] = "/Users/wgz/Library/Developer/Xcode/DerivedData/UICatalog-dxgcrbdxvzwlpqfelcxwkqriznkw/Build/Products/Debug-iphonesimulator/UICatalog.app"

        caps["automationName"] = "XCUITest"

        # 会自动去找匹配udid,如果找不到需要配置udid,还找不到将手机版本也写上
        caps["deviceName"] = "iPhone (2)"
        # caps["platformVersion"] = "13.3"

        # udid在 instruments -s devices 里面查找,真机后面的就是对应的uudid
        caps["udid"] = "c7d84fbe88da5bcdeabb5da677d92bfdcd1a6c20"
        #此为Xcode选择真机生成包的路径
        caps["app"] = "/Users/wgz/Library/Developer/Xcode/DerivedData/UICatalog-dxgcrbdxvzwlpqfelcxwkqriznkw/Build/Products/Debug-iphoneos/UICatalog.app"

        # 开发者ID在苹果开发者账号查看
        caps['xcodeOrgId'] = "96NJEQL7Y2"
        caps["xcodeSigningId"] = "iPhone Developer"
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)

    def test_button(self):
        el1 = self.driver.find_element_by_accessibility_id("Buttons")
        el1.click()

    def teardown(self):
        sleep(20)
        self.driver.quit()

如果运行过程中报如下错误 在appium运行日志中查看,将失败命令拎出来在次执行,发现为开发者证书的问题,cd 到报错给出的路径下,Xcode会打开WDA,将里面的开发者证书正确选择可解决问题。

失败命令拎出来再次执行.png

ok,一个简单的case就这样完成了✅。
参数详细解释请浏览官网🔎http://appium.io/docs/en/writing-running-appium/caps/

相关文章

网友评论

      本文标题:appium ios自动化测试

      本文链接:https://www.haomeiwen.com/subject/wnpyphtx.html