集成测试 maestro-我的第一个flow以及第一次云端测试 - 详解

news/2025/10/5 20:59:11/文章来源:https://www.cnblogs.com/slgkaifa/p/19127042

集成测试 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

        这样我们就成功的将我们下载的模板项目上传到云端,我们可以在云端看到测试内容以及响应的截图。其实我试过了自己的项目,但是一直报错,所以我就跟着文档不自己去尝试了,先过文档。如果我的理解有误希望大家在评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析:1、Pytorch介绍与安装

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Atbash密码和摩斯密码

一、 Atbash密码 Atbash Cipher是一种简单的替换密码,与凯撒相类似,区别在于Atbash密码使用的一般是前后字母互换。例如:ABCDEFGHIJKLMNOPQRSTUVWXYZ ZYXWVUTSRQPONMLKJIHGFEDCBA 同样的可以利用ASCII表转回进行解密…

Redis 中如何保证缓存与数据库的内容一致性?

Redis 中如何保证缓存与数据库的内容一致性?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…

平顶山市哪里有做网站的个人团购网站 转入备案

I2C总线和通信协议详解 (超详细配42张高清图万字长文) I2C(Inter-Integrated Circuit)通信总线,作为嵌入式系统设计中的一个关键组成部分,其灵活性和高效率使其在高级应用中备受青睐。本文旨在提供关于I2C通信总线的深度解析&…

SQL Indexes(索引) - 详解

SQL Indexes(索引) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

Payload CMS:开发者优先的Next.js原生开源解决优秀的方案,重新定义无头内容管理

Payload CMS:开发者优先的Next.js原生开源解决优秀的方案,重新定义无头内容管理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font…

CMS网站建设实战试题广东网页设计

🌿 一、TestAppForlOS TestAppForlOS是一款运行在iOS系统上的测试应用程序。它可以用来测试iOS设备的硬件和软件性能,以及验证应用程序的兼容性和稳定性。该应用程序提供了多种测试工具,包括CPU、内存、存储器、网络等性能测试,同…

网站维护工作的基本内容苏州建设局网站首页

文章目录 1. Label 提示框1.1. 显示文本1.2. 修改Label的文本1.2.1. 方式1:通过label.config()1.2.2. 方式2:通过 label["text"] 属性进行修改 1.3. 设置背景图片 2. Tkinter 开发3. python图形界面开发3.1. Python图形界面开发——Tkinter3.2…

07. 自定义组件

一、在单独文件中自定义组件我们可以在终端中使用 pip 安装 PySide6 模块。默认是从国外的主站上下载,因此,我们可能会遇到网络不好的情况导致下载失败。我们可以在 pip 指令后通过 -i 指定国内镜像源下载。 pip ins…

CF1611E2 Escape The Maze (hard version)

CF1611E2 Escape The Maze (hard version)题目简化 我在1号节点,你有k个朋友,分别在a1,a2,a3....ak的位置,在同一时间内可以移动1步,我不能和朋友走到同一个节点,如果我能走到叶节点,我就赢了,输出-1,否则必然…

P8186 [USACO22FEB] Redistributing Gifts S

P8186 [USACO22FEB] Redistributing Gifts S题目 每一个牛都有一个自己喜欢的排列,并且初始的时候,每只牛都是i,求经过n次交换后,每只牛能拿到的最喜欢的 我们来简化这n次操作,a1->a2,a2->a3,a3->a4,a4-…

重庆网站制品牌建设推荐

MySQL强制索引和禁止某个索引1、mysql强制使用索引:force index(索引名或者主键PRI)例如:select * from table force index(PRI) limit 2;(强制使用主键)select * from table force index(ziduan1_index) limit 2;(强制使用索引"ziduan1_index")select * from table …

做视频解析网站是犯法的么网站备案时间就是正式上线时间吗

题目描述 给出一个初始序列fA1;A2;:::Ang,要求你编写程序支持如下操作: 1. ADDxyD:给子序列fAx:::Ayg的每个元素都加上D。例如对f1,2, 3,4,5g执行"ADD 241" 会得到f1,3,4,5,5g。 2. REVERSExy:将子序列fAx:::Ayg翻转。例…

python语法记录

map()函数 A=[1,-3,5] A_abs = list(map(abs, A))map(func, A),把func函数作用到A的每个元素上,返回的是惰性迭代器,依次产出1,3,5,不能直接打印或索引; 用list()把它一次性拉出来,变成普通列表[1, 3, 5]。

怎么免费建立网站做推广天津雍鑫建设投资集团网站

问题描述 在Mac上安装git,双击pkg进行安装,报如下图错误: 解决办法 不要双击pkg文件,改成选中文件之后,鼠标右键,选择“打开方式->安装器(默认)”,即可继续安装。 转载…

详细介绍:Go 语言 + Word 文档模板:WordZero 引擎如何让企业文档处理效率提升 300%?

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Go 即时通讯体系:客户端与服务端 WebSocket 通信交互

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站开发持续更新wordpress广告设置

大数据开发(Hadoop面试真题) 1、Hive count(distinct)有几个reduce,海量数据会有什么问题?2、既然HBase底层数据是存储在HDFS上,为什么不直接使用HDFS,而还要用HBase?3、Spark map join的实现原理&#xf…

2025 年储罐厂家推荐最新公司权威排行榜榜单发布,深度解析衬四氟储罐 / 硫酸储罐 / 盐酸储罐工厂选购指南

引言在当今工业领域,储罐作为储存各类液体、气体等物质的关键设备,其重要性不言而喻。从化工行业储存具有强腐蚀性的原料,到食品行业对卫生安全要求极高的产品储存,再到环保领域对污水、废气处理过程中的暂存需求等…

读混元image论文

读混元image论文https://www.yiyibooks.cn/arxiv/2509.23951v1/index.html