手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试)
一、环境搭建篇
(一)安装JDK
大家自行安装
(二)安装Appium
1、appium desktop
2、appium server
> brew install node # get node.js
> npm install -g appium # get appium
> npm install wd # get appium client
> appium & # start appium
> node your-appium-test.js
(三)iOS真机环境配置
1、Homebrew
如果没有安装过Homebrew,先安装
2、npm
3、安装依赖库
brew install libimobiledevice --HEAD #可获取ios真机设备的信息
sudo npm install -g ios-deploy --unsafe-perm=true #如果要在iOS10+的系统上使用appium,则需要安装ios-deploy
brew install carthage
brew install usbmuxd
4、appium-doctor安装
npm install appium-doctor -g
安装后执行appium-doctor –ios指令,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果出现有一项不正确在执行一次就可以,或者直接跳过
appium-doctor –ios
5、更新Appium中的WebDriverAgent
2)cd进入下载后的WebDriverAgent文件
3)执行./Scripts/bootstrap.sh
4)用Xcode打开WebDriverAgent.xcodepro文件
配置WebDriverAgentLib和WebDriverAgentRunner的证书
如图所示配置,
修改bundleid,随便修改,只要不跟已经注册过的冲突就行了,要求唯一
team选择真实的开发者账号
手机连上电脑
选择自己的手机
然后点击test运行
如果出现如下图错误,在ios设备-设置-通用-描述文件和设备管理,信任一下开发者,再次test运行就不会出现错误了
运行成功后,在xcode控制台可以打印出ip地址和端口号
进入到Appium中的WebDriverAgent目录,目录路径如
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/
将自己下载并编译后的WebDriverAgent替换Appium原有的WebDriverAgent
(六)利用Appium-Python-Client进行iOS的自动化测试
这一步是将python与appium关联起来
在终端输入:pip install Appium-Python-Client,安装即可
(七)Appium中开启iOS webview调试进行h5自动化测试
在做ios的h5页面测试时,测试包必须要使用develop证书打包,app要是debug包,才可以进行真机测试
实践:如果在ios真机的webview页面执行appium自动化,需要做以下准备:
1)安装ios_webkit_debug_proxy,在执行webview自动化时必须启动该服务
a.brew install ios-webkit-debug-proxy
2)运行ios-webkit-debug-proxy
a.官方提供的命令:ios_webkit_debug_proxy -c UUID:27753 -d
b.使用chrome dev-tools调试
i.运行命令
ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html
ii.根据日志提示,获得端口并打开页面对应端口页面,如lcoalhost:9221
iii.点击设备提示拷贝链接到地址栏即可访问;
c.使用safari调试
i.打开mac上的safari浏览器开发者模式
ii.打开设备上的webview页面
iii.点击safari浏览器菜单中的开发-device,选择进程;
在appium中使用ios-webkit-debug-proxy:
第一种方式:set the desired capability,加上"startIWDP":true,
// example desired capabilities
{
"browserName":"Safari",
"platformName":"iOS",
"deviceName":"iPhone 7",
"automationName":"XCUITest",
"startIWDP":true,
"udid":"auto"
}
第二种方式:直接手动启动ios-webkit-debug-proxy,然后再执行自动化,注意此时需要制定端口27753(appium默认iwdp端口为这个)以及设备ID,即
ios_webkit_debug_proxy -c 17d5c2ae122f79a23fbd29168e0948dce22e8ce5:27753 -d
二、元素定位方法篇
(一)通过weidtor定位元素
1)安装
终端中输入,安装weditor
pip install weditor
2)启动
注意:先要运行webdriveragent
然后终端输入命令:python -m weditor
点击connect后,出现手机画面,reload是同步手机画面
点击界面元素,右侧出现该元素的定位信息
(二)通过appium desktop定位
1、运行Appium-Desktop,点击start server,开启server
2、点击Start Inspector Session按钮
3、配置Desired Capabilities
如何获取设备信息?
设备连接上电脑,然后在终端输入idevice_id -l,就可以显示当前设备的udid
ideviceinfo显示当前设备的信息,可以查看当前的deviceName, platformName
SHAPE \* MERGEFORMAT
ideviceinstaller -l查看当前设备所有安装的app的信息
配置好信息后,点击start session
运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序,可以定位元素
三、python+appium+ios,自动化测试实践
(一)新建文件test.py
(二)简单自动化脚本编写
#encoding=utf-8
import time
import os
import unittest
from appium import webdriver
#初始化
class MyTestCase(unittest.TestCase):
def setUp(self):
desired_caps = {
'platformName': 'iOS',
'deviceName': 'iphone',
'platformVersion': '12.4',
'bundleId' : 'com.jack.TongHua',
'udid' : 'bf5ffb03be1c90e05665f41dd648b8fb60a0c2c0', 'startIWDP':'true'
}
#初始化驱动
self.driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
def testRefresh(self):
#点击刷新按钮
self.driver.find_element_by_accessibility_id("btn update").click()
def tearDown(self):
#退出
self.driver.quit()
if __name__ == '__main__':
unittest.main()
1、对类MyTestCase添加setUp函数(这是测试用例执行前的准备动作,负责告诉appium监听那个端口、与那个手机连接、安装那个应用等信息)
2、对类MyTestCase添加TearDown函数(这是测试用例执行结束后的动作,可以执行保存执行结果等操作)
(三)脚本写好后,先要运行webdriveragent
方法一:用xcode的运行webdriveragent
方法二:使用命令行运行webdriveragent
先切到webdriveragent目录下,然后输入xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id='bf5ffb03be1c90e05665f41dd648b8fb60a0c2c0' test
(四)执行自动化测试脚本
(五)pyhton+appium+iOS,遍历真机的webview
1、运行ios_webkit_debug_proxy
ios_webkit_debug_proxy -c bf5ffb03be1c90e05665f41dd648b8fb60a0c2c0:27753 -d
2、driver.contexts获得页面所有context,这个方法会将context存在list里,打印出list内容,查看你要的webview在第几个,用switch_to.context()切换到那个webview即可,代码如下
#假设我的目标webview存在list里的第三个
myWebview = self.driver.context[2]
self.driver.switch_to.context(myWebview)
这样就切换到了目标webview,接下来就可以像web自动化一样,操作html元素了。
3、怎么得到元素属性
1).启动webkit服务,并指定谷歌浏览器进行监听
ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html
2).运行用例代码,停留在含webview的页面
3).谷歌浏览器地址输入http://127.0.0.1:92223,就可以看到手机的webview url
4)将url复制出来,就可以像定位web元素一样去定位h5元素
手机调试python的软件_Appium+Python(ios真机移动端App H5混合自动化实战测试)相关推荐
- android 手机调试链接不上,解决android 连接真机调试连接不了的问题
无论是eclipse还是Android Studio ,有时候会出现无法连通手机的问题,显示: no target device fund. 可以根据以下几个步骤来解决此问题: 一.手机连接电脑,是否 ...
- iOS真机调试详细图文教程
相关文章链接: < Xcode7 免证书/$99 真机调试教程 > <Provisioning Profile和Code Signing常见问题,原因分析及解决方法汇总.> 最 ...
- ios真机调试教程(不上架App Store安装到手机)
详细步骤 1 1.申请一个APPid(应用标识符 2.添加调试设备 3.申请iOS调试证书 4.配置调试描述文件 5.iOS打包ipa 6.安装到手机调试 END 一.创建唯一标示符App IDs 1 ...
- ios真机调试,iTunes检测得到,hbuilder未检测到手机和模拟器的解决办法
ios真机调试,iTunes检测得到,hbuilder未检测到手机和模拟器的解决办法 在做ios集成极光认证的时候,一直无法ios真机调试,试了网上非常多方法,什么下载iTunes,下载爱思修复驱动, ...
- iOS真机调试 for Xcode 5
由于Xcode5的到来,关于iOS软件进行真机调试方面,有了一些变化,苹果在Xcode 5中修改了一些规则,一方面是阻止以往破解的方式进行调试(免证书).另一方面是添加了自动生成证书的功能特性,来加快 ...
- 微信开发者工具模拟器、IOS真机调试、Android真机调试中Editor效果不一致问题
问题环境: 1.微信开发者工具1.05.2110290(以下简称"工具") 2.真机调试1.0版本(不区分IOS与Android) 3.微信的editor component,用于 ...
- IOS真机调试包 iOS15.0
最新 iOS 真机调试包15.0 最近一不小心升级IOS15.0,我滴个乖乖! 由于xcode还是用的12.0,也不算太旧,就不想升级(因为升级xcode14要12.4G,然后还需要更新mac系统,当 ...
- iOS 真机调试包集合 包含 iOS 12.4 不断更新
升级 iOS 12 之后,使用 Xcode 9 真机调试会提示错误: Could not locate device support files. This iPhone 6 Plus is runn ...
- 解决xcode iOS真机调试正常,模拟器失败问题
解决xcode iOS真机调试正常,模拟器失败问题 参考文章: (1)解决xcode iOS真机调试正常,模拟器失败问题 (2)https://www.cnblogs.com/HemJohn/p/55 ...
最新文章
- 春天来了,我也发“芽”了!
- MapReduce源码之InputFormat
- LeetCode - Reorder List
- curl请求模拟post发送json
- HTML5获取autofocus 属性:输入文字点定位到该位置
- Hulu直播服务难点解析(三):关键收获
- 1073 多选题常见计分法 (20 分)_66行代码AC
- Shiro+SpringBoot 时,anon配置的匿名路径被拦截,自定义配置类走过的坑
- webpack 入口文件 php,如何实现webpack多入口文件打包配置
- [Tip: bat] About %~dp0
- 一起谈.NET技术,NHibernate 3.0.0.Alpha1 发布及新特性介绍
- php v9搜索不到内容,關於如何解決PHPCMS V9內容搜索顯示不全問題解決方案
- python 高斯烟羽模型_高斯扩散模型-高斯烟羽大气污染扩散模型
- 最新服务器处理器天梯,服务器cpu天梯图2020
- 武汉理工计算机网络教学平台,武汉理工大学 操作系统
- 【sdx62】WCN6855 WCN6856 WiFi 增加强制40MHz频宽的功能实现
- Guessing the Greatest (hard version)-(交互+二分+思维)
- Fault Description Based Attribute Transfer for Zero-Sample Industrial Fault Diagnosis
- 锂离子电池是由什么组成的
- java中虚函数_虚函数