使用人工智能自动测试 Flutter 应用程序
移动应用程序开发的增长速度比以往任何时候都快。几乎每个企业都需要移动应用程序来保持市场竞争力。由于像 React Native 这样的跨平台移动应用程序开发框架允许公司使用单一源代码和单一编程语言构建 iOS 和 Android 应用程序, Flutter是 Google 支持的另一个热门跨平台移动应用程序开发框架。
Flutter 是一个开源、多平台的移动 SDK,可用于使用相同的源代码构建 iOS 和 Android 应用程序。Flutter 已经存在相当长一段时间了,但自从 Google 发布第一个稳定版本以来,它受到了更多关注。使用 Flutter 构建的应用程序看起来几乎像原生应用程序,这可能是阿里巴巴、 Groupon等大公司开始使用它的原因。Flutter 应用程序可以使用各种测试层进行测试。
颤动应用程序
Flutter 应用程序使用的技术与市场上常用的技术堆栈略有不同。Flutter 使用Dart编程语言来开发跨平台应用程序,这对于开发人员来说不是通用的编程语言。然而,设置第一个 Flutter 应用程序并不那么困难。
让我们创建一个演示 Flutter 应用程序。Flutter 有 关于如何安装和设置 iOS 和 Android 应用程序环境的丰富文档,我们可以轻松地进行演示。安装 Flutter SDK 的过程非常简单:您需要下载 SDK 并将其添加到本地 PATH 中。这里有安装 Flutter SDK 的详细说明。一旦可以全局访问 Flutter,接下来就是设置iOS和Android环境。该命令将引导您完成整个设置。完成所有设置后,您可以运行以确保没有设置问题。 flutter doctor flutter doctor
Flutter 可以通过运行单个命令为示例应用程序生成样板。让我们使用以下命令创建一个 Flutter-Bitbar 应用程序。
这将在 flutter_bitbar 目录中创建一个 Flutter 应用程序。如果我们打开了 iOS 模拟器或 Android 模拟器,那么我们可以使用以下命令简单地运行 Flutter 应用程序
1
$ cd flutter_bitbar && flutter run
您将看到 Flutter 应用程序在模拟器中运行。
此应用程序是 Flutter 团队创建的演示应用程序,每次按 + 按钮时都会有一个计数器递增。
测试 Flutter 应用程序
Flutter 提供了一些令人惊叹的测试功能来测试开发的应用程序。您可以在单元、小部件和集成级别测试 Flutter 应用程序。Widget 测试是 Flutter 提供的一项新功能,可以像单元测试一样快速地运行 UI 测试。Flutter 还具有 UI 测试,称为集成测试,可以在模拟器或真实设备上运行。有关测试的Flutter 文档详细介绍了所有类型的测试层以及置信度和速度矩阵。总结起来,Flutter 的测试主要分为三个层次。
单元测试
Flutter 单元测试涵盖了在不同条件或参数下运行良好的单个单元或方法。运行 Flutter 应用程序的单元测试需要flutter_test包。
小部件测试
这是Flutter 引入的独立测试 Flutter widget的新测试方式之一。您可以启动小部件作为测试的一部分,并像真实用户在小部件上执行的操作一样执行操作。小部件测试断言被测小部件的状态。小部件测试的运行速度与单元测试一样快,尽管它涉及用户界面。
集成测试
在 Flutter 世界中,UI 测试被称为集成测试。Flutter 集成测试的行为与Xcode UI 测试或 Android Espresso测试非常相似,它们通过 UI 执行特定操作。Flutter集成测试在单独的进程中运行,可以在真实设备上运行,也可以在模拟器或仿真器上运行。Flutter 提供了一个单独的包Flutter Driver来驱动这些测试。
我们将在后面的博客文章中详细介绍每种测试方法,但在本教程中,我们将使用 Bitbar AI Testbot来测试 Flutter 应用程序,而无需任何测试配置。
用于测试 Flutter 应用程序的人工智能
人工智能和机器学习(AI/ML)等技术已开始出现在软件测试中。Bitbar是业内第一个推出AI测试解决方案的公司。AI Testbot可用于执行移动应用程序的快速健全性和健康检查。您可以在我们之前的文章中详细了解人工智能在现有移动测试工作中的作用。
为 AI Testbot 准备 Flutter 应用
为了为 Bitbar AI Testbot 准备 Flutter 应用程序,我们需要首先分别为 Android 和 iOS 构建 APK 或 IPA 文件。出于本教程的目的,我们将使用一个简单的命令创建一个 Android APK 文件:
1
$ flutter构建 apk
此命令将为我们刚刚创建的演示应用程序构建 APK。
该命令将在“ build/app/outputs/apk/ ”目录中生成APK文件,我们可以使用该文件在Bitbar云上进行基于AI的测试。至此,我们的 Flutter 应用程序(Android)已准备好在 Bitbar 云上执行。
Bitbar AI 测试机器人
为了使用 Bitbar AI Testbot 测试您的 Flutter 应用程序,您需要访问 Bitbar 平台,您可以在此处免费注册。一旦您访问 Bitbar 平台,您就可以启动新的 AI Testbot 运行来测试您自己的移动应用程序。您可以从 Bitbar 设备云创建新的测试运行并选择 AI Testbot 选项。请注意,AI Testbot 不需要任何测试文件,这意味着您不必编写任何测试来对应用程序执行快速健全性检查。
在接下来的步骤中,我们可以上传刚刚从 Flutter 应用程序创建的 APK,并选择运行 AI 测试的设备。
您可以进行其他测试配置,例如提供测试凭据,但在此阶段,我们的 Flutter 应用程序不需要任何测试用户凭据。让我们开始测试并等待结果。几分钟后,AI Testbot 将在仪表板中报告测试结果,其中包括 AI Testbot 执行的场景的步骤列表、屏幕截图和视频记录。
相关文章:
使用人工智能自动测试 Flutter 应用程序
移动应用程序开发的增长速度比以往任何时候都快。几乎每个企业都需要移动应用程序来保持市场竞争力。由于像 React Native 这样的跨平台移动应用程序开发框架允许公司使用单一源代码和单一编程语言构建 iOS 和 Android 应用程序, Flutter是 Google 支持的另一个热门…...
四、程序员指南:数据平面开发套件
REORDER LIBRARY 重排序库提供了根据其序列号对mbuf进行重排序的机制。 16.1 操作 重排序库本质上是一个对mbuf进行重新排序的缓冲区。用户将乱序的mbuf插入重排序缓冲区,并从中提取顺序正确的mbuf。 在任何给定时刻,重排序缓冲区包含其序列号位于序列…...
Go 之 captcha 生成图像验证码
目前 chptcha 好像只可以生成纯数字的图像验证码,不过对于普通简单应用来说也足够了。captcha默认将store封装到内部,未提供对外操作的接口,因此使用自己显式生成的store,可以通过store自定义要生成的验证码。 package mainimpor…...
【Java从入门到大牛】多线程
🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:Java从入门到大牛 🌠 首发时间:2023年11月18日 🦋 欢迎关注🖱点赞👍收藏🌟留言Ǵ…...
UE5 C++报错:is not currently enabled for Live Coding
解决办法: 再次打开项目,以此法打开:...
mysql服务器数据同步
在Linux和Windows之间实现MySQL服务器数据的同步。下面是一些常见的方法和工具: 复制(Replication):MySQL复制是一种常见的数据同步技术,可用于将一个MySQL服务器的数据复制到其他服务器。您可以设置主服务器ÿ…...
Docker Golang 开发环境搭建指南
Docker Golang 开发环境搭建指南 概述 在 Golang 开发中,搭建合适的开发环境是非常重要的。然而,由于 Golang 的跨平台特性,不同操作系统之间的配置差异可能会导致环境搭建过程变得复杂。为了简化这个过程并保持开发环境的一致性࿰…...
MFC保存窗口客户区为图片
首先的窗口输出一些内容; 菜单单击函数代码; void CgetmypicView::OnTestGetmypic() {// TODO: 在此添加命令处理程序代码HWND hwnd this->GetSafeHwnd();HDC hDC ::GetWindowDC(hwnd);//获取DC RECT rect;::GetClientRect(hwnd, &rect)…...
JAVA安全之Shrio550-721漏洞原理及复现
前言 关于shrio漏洞,网上有很多博文讲解,这些博文对漏洞的解释似乎有一套约定俗成的说辞,让人云里来云里去,都没有对漏洞产生的原因深入地去探究..... 本文从现象到本质,旨在解释清楚Shrio漏洞是怎么回事!…...
有Mac或无Mac电脑通用的获取安卓公钥的方案
从2023年9月开始,所有上架应用市场的app都需要进行APP备案。 其中后端服务器在阿里云的可以在阿里云备案,后端服务器在腾讯云的可以在腾讯云备案。但无论你是在什么云厂商里做备案,无一例外的是,无论是上架安卓应用还是上架IOS应…...
电池故障估计:Realistic fault detection of li-ion battery via dynamical deep learning
昇科能源、清华大学欧阳明高院士团队等的最新研究成果《动态深度学习实现锂离子电池异常检测》,用已经处理的整车充电段数据,分析车辆当前或近期是否存在故障。 思想步骤: 用正常电池的充电片段数据构造训练集,用如下的方式构造…...
微服务和Spring Cloud Alibaba介绍
1、微服务介绍 1.1 系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构 —> 垂直应用架构 —> 分布 式架构—>…...
【js】 lodash命名转换和封装
▒ 目录 ▒ 🛫 导读需求开发环境 1️⃣ lodash转换函数h3与underscore比较 2️⃣ 实战:对象属性名转换函数封装单元测试 🛬 文章小结📖 参考资料 🛫 导读 需求 爬虫中经常出现各种类型的命名,往往一个对象…...
RK3568驱动指南|第七篇 设备树-第67章 of操作函数实验:获取属性
瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…...
vue3安装vue-router
环境 node 18.14.2 yarn 1.22.19 windows 11 vite快速创建vue项目 参考 安装vue-touter 官网 yarn add vue-router4src下新建router文件夹,该文件夹下新建index.ts // router/index.ts 文件 import { createRouter, createWebHashHistory, RouterOptions, Ro…...
〖大前端 - 基础入门三大核心之JS篇㊱〗- JavaScript 的DOM节点操作
说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作…...
【计算机基础】优雅的PPT就应该这样设计
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
Vatee万腾的科技征程:Vatee数字化创新的前沿探讨
在Vatee万腾的科技征程中,我们目睹了一场数字化创新的引领之旅,探讨了Vatee在科技前沿的独到见解。Vatee万腾不仅仅是一家科技公司,更是一支前行不辍的冒险队伍,通过不断突破自我,探索未知领域,引领着数字化…...
【PB续命05】WinHttp.WinHttpRequest的介绍与使用
0 WinHttp.WinHttpRequest简介 winhttp.winhttprequest是Windows操作系统中的一个API函数,用于创建和发送HTTP请求。它可以用于从Web服务器获取数据,或将数据发送到Web服务器。该函数提供了许多选项,例如设置请求头、设置代理服务器、设置超…...
【Linux】进程间是这样通信的--管道篇
TOC 目录 进程间通信的介绍 进程间通信的概念 进程间通信的目的 进程间通信的本质 进程间通信的分类 管道 什么是管道 匿名管道 pipe函数 匿名管道使用步骤 管道读写规则 管道的特点 1、管道内部自带同步与互斥机制 2、管道的生命周期随进程 3、管道提供的是流式…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
智能职业发展系统:AI驱动的职业规划平台技术解析
智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...
