昨天我们了解了maestro测试框架以及maestro studio工具以及创建我们的第一个flow,然后通过例子在maestro cli云端进行测试请求并且成功,今天我们就在我们自己的app上简单的进行三种测试流程,maestro cli云端测试,github cl集成测试,bitrise集成测试。
ok我们从第一个开始,首先我们在xcode创建了我们的项目,但是我们通过文档知道,我们虽然创建了项目,但是如果我们需要进行maestro cli云端测试,我们需要打包自己的项目,这里我们直接用终端来实现打包
xcodebuild \
-scheme MyApp \
-sdk iphonesimulator \
-configuration Debug \
-destination 'id=66A4A649-3B35-4074-A348-A1BDBB185130' \
-derivedDataPath build
我们打包后之后获取我们的.app路径
/Users/lichenyang/Desktop/MyApp/build/Build/Products/Debug-iphonesimulator/MyApp.app .maestro
然后我们获取路径之后我们去云端登录注册项目然后拿取我们项目的keyapi以及projectid然后我们就可以用命令
maestro cloud
--api-key rb_WuVnIeDZnalwpsh6UUOQBKHbG591VBG854WZOEdi5Ed7NyO09hwQHs23wmMSyh9NpGXK6FTilFNYLKZN8YgQQRwVU9k7VRO5Aqu
--project-id proj_01jwg0van4e9jay2cb4b1001mx /Users/lichenyang/Desktop/MyApp/build/Build/Products/Debug-iphonesimulator/MyApp.app .maestro
这样就直接的讲我们的项目上传到了云端,别忘了最后加上我们的maestro文件夹里面是我们的自定义测试流文件比如Login.yaml等。这样云端测试过程就完成了。
现在用我们的github cl集成测试,首先我们需要在我们的github账户创建我们自己的仓库,然后把我们的项目上传到仓库里面,这里是命令
git init # 初始化本地 Git 仓库(只需第一次)
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/你的用户名/MyApp.git
git push -u origin main # 把代码推送到 GitHub 的 main 分支
这一步完成后我们的整个项目就上传到了github仓库,跟maestro云端测试一样,我们用.github/workflows包裹我们的yml流文件,然后我们上传我们的yml文件,github action就可以自动化测试我们的项目,当然是根据我们的yml文件书写的命令进行测试。
git add .github/workflows/ios-ci.yml
git commit -m "Add iOS CI workflow"
git push origin main
最好便是我们的bitrise,这更是便利,我们直接注册,然后将我们的项目配置env 也就是获得了maestro-api-key 还有app路径默认(c连接项目的时候自动显示了路径),然后直接选择流 选择primary然后我们自己选择步骤库,也就是相当于流库,我们用gitclonerepoitory获取源代码,xcode 相关的测试库然后maestro云端测试库,然后选择完点击构建就开始测试了。
在这我们甚至不需要写yaml文件,我们只需要在我们workflow中选择一个分支比如primary然后我们去选择
对应的步骤库,比如Git Clone Repository(拉取源码),Certificate and Profile Installer(安装签名证书),Xcode Test for iOS Simulator(在模拟器上跑本地 unit/UI 测试),Xcode Test for iOS Simulator(在模拟器上跑本地 unit/UI 测试),我们一点都不需要去写什么yaml文件,当然我们如果使用我们的maestro cloud我们需要选择配置,我们要拿到我们的apikey以及projectid在我们的env vars中配置好,这样我们只需要点击运行就可以进行自动化测试了。
现在为止作为集成测试初学者,我现在认为呢集成测试无非就是使用各自cl工具,根据不同的工具不同的用法达到我们项目测试的要求,yaml文件的编写按照我们的需求要进行自定义。具体复杂的测试要求我们自然需要自己去自定义yaml文件进行测试,但是绝大部分我们根据自带的测试功能就可以完成测试任务。