基于Appium+WDA+Python搭建IOS自动化测试全纪录(三):真机demo运行

前期回顾:
基于Appium+WDA+Python搭建IOS自动化测试全纪录(二):模拟器demo运行
基于Appium+WDA+Python搭建IOS自动化测试全纪录(一):环境搭建

在模拟器将demo跑通之后,就要在真机上测试啦,模拟器总是要为真机服务的。

证书问题

在真机上主要是涉及到签名及证书的问题,一下blog写的特别好,然而其实我也没有看懂,RSA算法神马的早在密码学课程上还给老师了。
iOS App 签名的原理
主要在此简单记录一下证书的配置吧。
在xcode中找到build Setting配置部分(之所以把这张图放出来是因为我最开始找不到这个配置,萌新啥都找不到):

WX20180115-203847@2x.png

更改一下三个字段对应的内容:
Code Siging identify 证书里面对应的开发者
Product Bundle Identify 对应的bundleID
Provisioning Profile 包含了 证书 / Entitlements 等数据,并由苹果后台私钥签名的数据包。
数据包是.mobileprovision文件格式结尾 在终端中输入如下命令即可看到里面的信息

security cms -D -i xxxxx.mobileprovision

改完之后 我们开发的程度就可以装到真机上啦,这个时候选择在真机上运行,就可以啦。

Appium中wda真机配置

测试app装到真机上之后,还要考虑如何开启py脚本,在真机上进行测试。
这里需要注意两点:

  • webDriverAgent的配置
  • py脚本的配置有变化
    关于WebDriverAgentgithub地址这个还没了解太多,所以在这里先不介绍了。简单来说appium的服务中带有webDriverAgent,在模拟器上我们开启appium服务,会发现模拟机上会同步装上WebRriverAgentRunner的app,这个是appium能在ios上测试的关键条件,但是在真机上,却不能直接装上。
    因为需要证书啊!!!
    不能直接从github上下载进行证书配置,要改appium中node_modules中的webDriverAgent。
    先找到appium的位置
find / -name appium   // /usr/local/lib/node_modules/appium 

最后找到的地址大概如下:

/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

放到xcode中进行签名证书配置,注意虽然我们打开的是WebDriverAgent文件夹,但是我们要配置的是WebdDriverAgentRunner 在其Build Settings中进行与证书有关的配置

Code Siging identify  证书里面对应的开发者
Product Bundle Identify  对应的bundleID
Provisioning Profile    包含了 证书 / Entitlements 等数据,并由苹果后台私钥签名的数据包。

配置完毕后还需要再WebdDriverAgentRunner中添加一个RoutingHTTPServer.frameork


WX20180115-222415@2x.png

点击添加之后->add Other
在如下路径可以查找到该framework

/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Carthage/Build/iOS

找的一定是appium文件路径下的!
上边关于wda并没有做过多说明,因为还不怎么了解等了解了再补充相关知识

py脚本

py脚本主要是配置有更改,主体文件请见开头(二)模拟器demod的blog
在真机上配置更改如下:

 desired_capabilities={
                'bundleId': //这个是和证书有关联的
                'platformName': 'iOS',
                'platformVersion': '9.3.2',
                'deviceName': 'iPhone5 slave15',
                'automationName':'XCUITest',
                "clearSystemFiles" : True,
                'udid'://模拟器的时候我们用uuid,但是真机上请用udid
            })

然后启动appium 发现真机上装上了厕所app 装上了WebDriverAgentRunner 然后用python运行脚本就ok拉!


以上为从搭建环境-》模拟器跑demo-》真机跑demo的简单记录,不涉及到原理方面的讲解,如有错误之处还请提出。

【之后还有跳一跳的安卓环境搭建
wda的inspector相关环境还没记录~】

[Tbc]

个人博客:
进击的程序茗