集成测试 maestro-我的第一个flow以及第一次云端测试
虽然有点难以置信但现在确实需要去学这个。我们直接进入文档。
什么是maeatro?每个技术文档都是这个开头,我们看下一句Maestro 是最简单、最有效的 UI 测试框架。框架?我们可以直接套公式了,我们之前学过supabase数据库,框架首先我看来和supabase库是一样的,无非就是通过框架里面自带的方法去测试?所有我学这个就是学如何去用 框架里面的方法去测试项目,跑题了所以这个是一种非常简单快捷的移动app的测试框架,我们可以使用这个去测试我们的项目,尽管我第一次接触测试这个名词。至少现在我是这么理解的。
既然是 一种新的框架我们要使用肯定要创建我们自己的app,总不能测试空项目。但是我们发现这个测试框架是用来适用于 Android (.apk) 和 iOS 模拟器 (.app) 的仿真器和设备构建。说明我们要创建测试框架支持的项目,我们用的mac系统,项目是ios模拟器,所以我们首先要有Homwbrew相当于mac开发工具管理器,通过brew各自命令来下载各自的环境。
curl -fsSL "https://get.maestro.mobile.dev" | bash我们用框架就要先下载框架对应的环境,然后我们才可以用maestro cli工具跟supabase-js一样,框架的核心入口,也就是我们所谓的方法导入,我们查看版本, maestro --version 发现报错了,我学前端的自然没有装后端java,Maestro 是用 Java 写的,它运行时必须依赖 Java 环境,所以我们brew install openjdk@17,ok现在我们配置好了环境我们就可以开始简单的进行测试了。
在xcode创建我们的app(在模拟器上安装应用程序的最简单方法是从 Xcode 构建并运行它(确保已选择模拟器目标)),所以我们创建了我们的app起名字为TestApp。现在我们的项目id变成了com.lcy.TestApp.ok我们现在用编译器打开我们的项目,发现看不懂文件名,因为是flnder创建的,我们先不管,反正大差不差app文件名不同而已,我们在根目录创建一个文件flow.yaml.
内容我们写
appId: com.lcy.TestApp
---
- launchApp
- tapOn: "登录"
- inputText: "user@example.com"
- tapOn: "确认"
很好理解,字面意思,我们测试的时候启动app然后点击登录按钮,然后文本框输入user@example.com然后点击确认。这时候我们发现测试还是比较简单的麻。
现在我们已经安装了maestro环境自然可以用maestro cli工具。我们打开项目终端输入maestro test flow.yaml,发现终端开始执行我们的测试了,出现了对勾说明测试没有错误,现在很顺利的完成了第一个flow。
我们继续走文档,Maestro Studio Maestro 工作室。Maestro Studio 直接内置于 Maestro CLI 中。将您的 CLI 升级到最新版本,然后运行以下命令以在浏览器中启动 Maestro Studio,您可以直观地选择 UI 元素,以便接收有关如何与 Flow 中的元素交互的建议,也可以在 REPL 中输入 Maestro 命令,然后按 Run
运行这些命令。这是文档原话,说明通过这个我们可以更加便利的去测试我们的项目。
现在我们关键来了,云端maestro,因为在项目开发的时候,如果我们用云端maestro绑定我们的项目,我们就可以在我们更改代码或者通过 就是自动化地测试你的 App,比如每次你提交代码,它就自动帮你跑一遍测试流程。这一看就知道这是我们开发需要的技能。
首先我们注册maestro 然后创建一个项目,跟supabase一样的流程,然后获得key和id,这样我们可以连接到云端了,我们这里先体验一下流程,maestro download-samples这个终端命令后自动的给我们在当前文件夹下下载一个包含 sample.apk(Android 应用)和 android-flow.yaml(测试脚本)的文件夹。然后,你就可以在 Maestro 的云服务中运行你的测试流了,Maestro 会自动帮助你运行测试而不需要你在本地搭建模拟器或设备。
这非常的便利,我们在终端输入
maestro cloud \--api-key=rb_TluhwnL4fQR1DWRXExUcRYQ7l2pw1VkK2oIwYFPaAH1KkPgxAKuxZA5VKPo73qxufofWXwMGTJM5vc8rnERCzpF58MCBg9juvLh \--project-id=proj_01jwg0van4e9jay2cb4b1001mx \--app-file=sample.zip \--flows=ios-flow.yaml
这样我们就成功的将我们下载的模板项目上传到云端,我们可以在云端看到测试内容以及响应的截图。其实我试过了自己的项目,但是一直报错,所以我就跟着文档不自己去尝试了,先过文档。如果我的理解有误希望大家在评论区留言。