当前位置: 首页 > news >正文

使用人工智能自动测试 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日 🦋 欢迎关注🖱点赞👍收藏🌟留言&#x1f4…...

UE5 C++报错:is not currently enabled for Live Coding

解决办法: 再次打开项目,以此法打开:...

mysql服务器数据同步

在Linux和Windows之间实现MySQL服务器数据的同步。下面是一些常见的方法和工具: 复制(Replication):MySQL复制是一种常见的数据同步技术,可用于将一个MySQL服务器的数据复制到其他服务器。您可以设置主服务器&#xff…...

Docker Golang 开发环境搭建指南

Docker Golang 开发环境搭建指南 概述 在 Golang 开发中,搭建合适的开发环境是非常重要的。然而,由于 Golang 的跨平台特性,不同操作系统之间的配置差异可能会导致环境搭建过程变得复杂。为了简化这个过程并保持开发环境的一致性&#xff0…...

MFC保存窗口客户区为图片

首先的窗口输出一些内容; 菜单单击函数代码; void CgetmypicView::OnTestGetmypic() {// TODO: 在此添加命令处理程序代码HWND hwnd this->GetSafeHwnd();HDC hDC ::GetWindowDC(hwnd);//获取DC RECT rect;::GetClientRect(hwnd, &rect)…...

JAVA安全之Shrio550-721漏洞原理及复现

前言 关于shrio漏洞,网上有很多博文讲解,这些博文对漏洞的解释似乎有一套约定俗成的说辞,让人云里来云里去,都没有对漏洞产生的原因深入地去探究..... 本文从现象到本质,旨在解释清楚Shrio漏洞是怎么回事&#xff01…...

有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!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…...

【计算机基础】优雅的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、管道提供的是流式…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

ZYNQ学习记录FPGA(一)ZYNQ简介

一、知识准备 1.一些术语,缩写和概念&#xff1a; 1&#xff09;ZYNQ全称&#xff1a;ZYNQ7000 All Pgrammable SoC 2&#xff09;SoC:system on chips(片上系统)&#xff0c;对比集成电路的SoB&#xff08;system on board&#xff09; 3&#xff09;ARM&#xff1a;处理器…...