什么是启动传参
所谓启动传参,是指在APP启动的时候,从Xcode环境变量或者命令行传入指定的参数,让APP根据不同参数做出不同的响应。
为何要引入启动传参
在UI自动化测试中,需要很多前置的工作,包括替换域名、指定mock/代理服务器地址、关闭长连接、启动后跳转到指定页面、自动登录、设置经纬度等等。这些前置工作都可以通过启动传参来实现。使用启动传参,有利于提高测试效率。
如何实现启动传参
NSProcessInfo
NSProcessInfo是macOS和iOS下的进程信息类。包含进程的所有信息。 globallyUniqueString 获取唯一标识也可以用获取时间后生成唯一标识代替,systemUptime 上次设备重启到现在的秒数这个在开发某些应用应该有些用处。以下仅仅列举部分属性或者方法,还有一些个人认为用不上的就不一一列举了。
NSProcessInfo的常见属性和方法如下:
1 | NSProcessInfo *info = [NSProcessInfo processInfo]; |
其中processInfo是一个静态属性。如下:
1 | @property (class, readonly, strong) NSProcessInfo *processInfo; |
Xcode实现启动传参
在Xcode的环境变量中配置APP启动时注入的参数,然后使用NSProcessInfo的environment属性获取环境变量。该属性是一个字典,字典里保存了Xcode启动APP时传递的环境变量,如下:
使用NSProcessInfo获取,如下:
1 | NSProcessInfo *info = [NSProcessInfo processInfo]; |
如此一来,我们就可以通过processInfo获取到所有的环境变量,然后根据这些环境变量做出响应。比如,替换userId、关闭长连接、设置mock server等等。只有想不到,没有做不到。