该公司的一个项目拥有Android和iOS应用程序,Android的下载和安装非常方便,但是该项目本身存在一些局限性,使iOS有点麻烦,主要障碍是:
1. iOS版本未通过应用商店发行。
2.出于安全原因,Android和iOS应用只能通过VPN访问服务器,而电话不能通过VPN访问互联网。因此,您不能访问与Internet相关的HTTPS服务。换句话说,您不能在Internet上使用SSL证书Web服务。
3,由于iOS版本是7.1或更高版本,因此Apple的itms-services协议必须使用HTTPS。
考虑到上述障碍,我们考虑在局域网上构建内部HTTPS服务,并通过OTA(空中下载)分发iOS应用程序。
该公司想测试APP产品的功耗,因此采用了一种非常低的方法。在对每个模块的功能进行了大量的手动测试之后,从Emmagee或GT获得的结果将评估产品的功耗,流量,CPU和内存使用情况。等候。被动效率非常低而且不准确,因此我决定使用自动化,但是自动化引起了将USB连接到计算机上电的问题,从而导致计算出的功耗与手动执行之间存在较大的误差。
我找到了所有内容,最后在Testerhome等一个好人给我一个主意和解决方案。我感到很深。我的问题用几句话解决了,非常优雅。
直接进入主题。
通常,在执行Android自动化时,应始终将手机连接到计算机,直到@cjtcwyk建议您可以使用adb connect命令实现与手机的无线连接。当听到此声音时,请搜索相关应用并按照此过程进行操作。再次进行。简单。
接下来,将其放入名为Wireless ADB的商店(下图所示的豌豆荚),并在安装后关闭豌豆荚。
安装后,图标如下。
接下来至少要保证两件事。
1.确保手机已植根
2.手机和PC必须位于同一网段(手机的IP地址可以从PC上ping通)。
这两个任务要容易得多。安装后打开Wireless ADB。
选中“无线ADB”复选框被视为已打开。
当然,您也可以在此处设置端口。默认值为5555。
下一步是无线连接手机,在PC上CMD下输入手机的IP地址和端口号,然后按Enter。连接成功。
如果存在您未实现的错误,请关闭豌豆荚,360s和其他软件。可能会崩溃。
如果连接成功,则可以启动常规自动化。
启动appium和adb连接
Appium的无线启动感觉比有线慢一些(大约10秒,可接受范围)。
无线成功运行脚本测试应用程序。
OTA
OTA是OTA(空中下载)。简而言之,它以无线方式将指令发送到设备,特别是对于iOS设备(例如iphone,ipad等),允许开发人员离开Appstore在自己的服务器上下载并安装iOS应用程序。用户只需在iPhone或iPad上的浏览器中单击链接,即可直接在主界面上安装该应用程序。整个部署过程包括三个部分:设备(iPhone,ipad),服务器(用于配置文件服务,配置文件传输)和身份验证服务器(包括CA和目录服务器)。
OTA部署实施
对于iOS应用程序分发,服务器必须包含3个用于OTA分发的文件。
1.应用程序安装包ipa文件可以使用开发人员证书或企业证书签名。
2. plist文件主要用于描述iOS应用程序的安装信息,主要安装信息包括ipa文件的名称和存储路径。可以通过Xcode创建plist文件,这里不描述特定的创建过程和plist文件。
3.一个页面,提供指向itms-services协议的链接,可通过HTTPS访问该协议。 itms-services协议链接指向plist文件的路径。例如:
安装应用
通过上述三个文件,Apple设备提供了HTTPS服务器来读取iOS安装plist文件的ipa文件路径,以进行下载和安装。
自建的OpenSSL证书
由于只能在局域网内提供HTTPS服务,因此相关CA机构不能颁发SSL证书,并且证书不是基于域名,而是基于IP地址,因此只能使用自制证书。在这里,我使用OpenSSL来配置Tomcat的SSL证书,并且OpenSSL是使用Windows版本的Apache服务器上的openssl.exe生成的。步骤如下(使用命令行方法):
1.生成服务器的私钥
openssl genrsa -out server.key 10242.创建签名应用程序(公用名应为服务器的IP或域名)
openssl req-新-out server.csr -key server.key -config . conf openssl.cnf
3.生成CA私钥
openssl genrsa -out ca.key 1024
4.使用CA的私钥生成CA的自签名证书
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -config . conf openssl.cnf
5.创建demoCA(在bin目录下)
在demoCA中创建index.txt和串行文件,串行内容为01,index.txt为空,并创建newcerts文件夹。
6.生成网站服务器签名证书
openssl ca-输入server.csr -out server.crt -cert ca.crt -keyfile ca.key -config . conf openssl.cnf
最后,将生成的server.crt和server.key路径配置为Apache服务器的openssl.cnf配置文件(有关特定配置,请参阅相关文档),然后重新启动Apache服务器。
SSLCertificateFile“ /Apache22/conf/ssl2rver.crt”
SSLCertificateKeyFile“ /Apache22/conf/ssl2rver.key”
客户端证书ca.crt可以下载或通过电子邮件发送到iOS设备进行安装,但要注意的一件事是它是自签名SSL证书,不受信任,因此您必须在iPhone或ipad上手动设置信任证书。
安装客户端证书后,您可以通过iPhone或iPad上的浏览器访问提供itms-services协议链接的页面来下载和安装iOS应用程序。