响应式网站建设新闻,关键词优化推广公司哪家好,wordpress留言页,网站建设存在哪些问题文章目录 一、基础环境准备1.1、MacOS虚拟机 二、iPhone虚拟机三、MacOS虚拟机连接iphone真机四、扩展问题4.1、如果appium启动app失败#xff0c;可能是appium driver没有安装xcuitest插件4.2、下载并安装Appium服务端#xff0c;inspector元素定位器4.3、下载app… 文章目录 一、基础环境准备1.1、MacOS虚拟机 二、iPhone虚拟机三、MacOS虚拟机连接iphone真机四、扩展问题4.1、如果appium启动app失败可能是appium driver没有安装xcuitest插件4.2、下载并安装Appium服务端inspector元素定位器4.3、下载appium-inspector4.4、代码示例 一、基础环境准备
1、一台MacOS系统主机可以是macmini、macbook(air\pro)、mac一体机咱们主打一个经济实惠MacOS系统虚拟机 2、一台iOS系统真机俗称iphone 3、anaconda创建python3虚拟环境
1.1、MacOS虚拟机 需要安装软件包管理器Homebrew # 在命令行安装HomeBrew并安装其他iOS测试必要的命令
/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)1、brew install node这个是为了安装npm、appium客户端准备的 brew install npm # 已经安装了node就已经携带了npm npm install -g cnpm --registryhttps://registry.npm.taobao.orgappiu 2、安装成功检查版本号
node -v
npm -v
cnpm -v效果截图如下
3、安装服务端(相对于真机)npm install -g appium
4、安装appium检测医生cnpm install -g appium-doctor appium-doctor检查环境 5、使用本机与苹果iOS设备的服务进行通信的库类似于安卓的adb命令 ios-deploy 一个不需要用Xcode安装和调试应用的命令行工具。需要一个有效的开发者证书需要 Xcode 7以上的版本。终端输入命令进行安装 ios-deploy、ideviceinstaller 类似 android 的 adb 是 Appium 底层用到的工具之一用于获取 iOS 设备信息。 libimobiledevice 是一个跨平台的软件库 不依赖任何已有的私有库不需要越狱。应用软件可以通过这个开发包轻松访问设备的文件系统、获取设备信息备份和恢复设备管理 SpringBoard 图标管理已安装应用获取通讯录、日程、备注和书签等信息 ideviceinstaller 是一个与iOS设备的installation_proxy交互的工具允许安装、升级、卸载、存档、还原和列举已安装或存档的app。此工具用于在真机上运行测试默认是都安装的。 brew install ios-deploy
brew install libimobiledevice
# 主要用于获取设备udid、安装app、卸载app、获取bundleid
brew install ideviceinstalleridevice_id获取设备uuid 更多命令请移步Mac如何安装使用libimobiledeviceideviceinstaller类似adb - 知乎 (zhihu.com)
6、启动appium服务
二、iPhone虚拟机 在MacOS虚拟机安装Xcode的时候iOS开发工作者就可以使用其携带的iphone虚拟机进行调试开发了WebDriverAgent 1、打开Xcode开发工具前面已经build过了现在通过product-test将它安装到iphone虚拟机或真机
2、安装成功标识build successded
3、然后本地就可以直接访问http://localhost:8100/status commandshiftG输入/usr/local/bin/ 可以找到appium快捷命令右键显示源文件
4、如果打不开请在终端进行端口转发iproxy 8100 8100通过safari访问http://127.0.0.1:8100/status 该命令用于将手机的端口映射到电脑上的端口前面的8100是映射到mac电脑的端口后面是手机wds启动的监听端口如果映射失败则安装brew install usbmuxd 三、MacOS虚拟机连接iphone真机
usb连接真机vmware虚拟机会检测usb设备选择连接到虚拟机确定即可
1、这时Xcode工具构建安装包到设备中就出现真机选项了
2、先构建进行testing
3、构建成功
4、在控制台出现服务已经启动并暴露端口
四、扩展问题
4.1、如果appium启动app失败可能是appium driver没有安装xcuitest插件
appium driver install xcuitest
Releases · appium/appium-desktop (github.com)如果不想通过github下载安装WebDriverAgent源码可去Appium Server目录中找到appium-webdriveragent 在访达中选中Appium server右键选择显示包内容 /Applications/Appium Server GUI.app/Contents/Resources/app/node_modules/appium/node_mudoles/appium-webdriveragent
1、找到对应的目录可Xcode工具编辑构建wda到真机或虚拟机
2、也可以通过xcodebuild命令构建项目到真机
3、与Xcode工具编辑工具是一样的步骤在设置开发者账号的时候提示的是BundleId需要唯一
4、找到Build Settings设置BundleId 再回到Siging Capabilities页面下Signing Certificate Development下面的感叹号就不存在了
4.2、下载并安装Appium服务端inspector元素定位器
启动appium server GUI或者appiun服务端
有时候并不想打开Xcode工具想通过命令行来构建app到真机 xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination ‘id真机的uuid’ test
命令行构建iOS应用报错是依赖路径不正确需要切换目录即xcodebuild需要指向Xcode安装执行路径 xcode-select --switch /Applications/Xcode.app/Contents/Developer
再次执行会提示输出MacOS电脑密码 会出现权限问题需要root权限所以在命令行前加sudo会提示password输入mac密码即可 xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination ‘id真机的uuid’ test 密令安装第一次test会失败但是iOS真机已经安装好了WebDriverAgent应用只需要进入手机设置–通用–VPN与设备管理信任开发者APP账号 4.3、下载appium-inspector
npm install app-inspector -g
在下载目录双击dmg安装appium-inspector
拖住应用图标移动到Application文件夹双击Appliction进入文件夹可以看到安装的应用已经有图标了这个可以当安装目录用的不然很多初学者无法找到应用入口
正常双击应用打开是会有提示的就是验证不通过认为你的软件应用有问题
在Application中双击系统偏好设置找到安全性与隐私
点击仍要打开对你不让我打开我偏要打开
最后一次确认我要打开了退后。。。
启动中
再看看就已经启动好了
安装ideviceinstaller brew install ideviceinstaller
复制iOS参数在JSON Representation上面输入真机wda启动的端口8100如果iproxy转发就填如转发端口
可以点击Save As将此刻的配置保存起来免得下次丢失需要重新录入再点击start session开启app应用的元素找茬之旅
Save As之后在Saved Capabillty Sets设置中查看可选择直接启动
默认source是应用元素而点击session information可以选择语言知道它的初始启动参数是如何写的。
以上就是iOS自动化测试的开发环境搭建过程。
4.4、代码示例
import unittest
from appium import webdriver
from time import sleepfrom appium.webdriver.common.appiumby import AppiumByclass appiumSimpleTezt(unittest.TestCase):def setUp(self):self.desired_capabilities {platformName: ios,platformVersion: 16.6,deviceName: iPhone 8P,udid: 3a174cf4dd652dab19a9adb40470959db5325b70,bundleId: com.byd.BYDi,webDriverAgentUrl: http://127.0.0.1:8100,noReset: True, # true不重置app应用false需要重启app应用 如果已经登录则不需要重新登录授权usePrebuiltWDA: True,useXctestrunFile: True, # 暂时没发现其他用途skipLogCapture: True, # 会影响automationName参数automationName: XCuiTest}self.driver webdriver.Remote(command_executorhttp://127.0.0.1:4723, # /wd/hubdesired_capabilitiesself.desired_capabilities)def test_SignIn(self):next_view_button self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, 我的)next_view_button.click()sleep(1)login_button self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, 每日签到)login_button.click()sleep(1)login_button self.driver.find_element(AppiumBy.ACCESSIBILITY_ID, SignIn back icon)login_button.click()def tearDown(self):self.driver.quit()if __name__ __main__:suite unittest.TestLoader().loadTestsFromTestCase(appiumSimpleTezt)unittest.TextTestRunner(verbosity2).run(suite)