如何使用 Bittly 进行基于串口的自动化测试

串口通信是一种常见的通信方式,广泛用于嵌入式设备、传感器及其他硬件设备的数据交互与控制。通过串口通信,我们能够实时监控设备状态、发送指令并接收反馈。在自动化测试场景中,Bittly 提供了一套灵活高效的工具,能够快速创建和管理自动化测试任务,简化复杂的测试流程。同时,Bittly 的使用有助于提升系统的稳定性与可用性,减少人为干预带来的误差。本文将详细介绍如何使用 Bittly 进行基于串口的自动化测试,实现高效的设备通信与验证。

安装 Bittly

在开始之前, 您需要安装 Bittly 的最新版本,您可在 Bittly 官网 中下载并安装适合您系统的安装包。

模拟场景

假设我们的设备是一台检测设备, 需要执行的操作如下:

  1. 设备初始化
  2. 添加样本任务
  3. 执行样本检测任务
  4. 获取样本检测结果
  5. 推出样本

并且以上操作已经封装成指令,可通过串口进行使用, 我们先根据上述步骤来建立一个最基础的测试用例。

新建测试用例

在 Bittly 中, 将多个指令组合进行测试需要使用 功能测试 模块, 与 动作流程 模块不同的是,功能测试模块不支持手动交互, 即所有的输入项都是在测试开始前确定的或者由其他方式生成的,以此来保证每次测试结果的一致性。

要创建新的测试用例,首先切换到测试模块,然后在功能测试顶部的工具栏中点击新建按钮,即可打开一个新的标签页用于编辑测试用例。

测试用例由多个测试步骤组成,每个测试步骤用于执行一个特定的任务,例如执行指令,执行自定义脚本或者对变量赋值,又或者对变量进行验证等操作, 通过将步骤的组合来完成测试用例的编辑。

首先,我们以 设备初始化 指令为例, 在右侧指令列表中选中 设备初始化 指令,然后将其拖拽到左侧测试用例中, 例如:

将指令拖拽到测试用例后,默认采用的指令当前配置的请求参数进行发送。 但我们还需要对指令响应内容进行验证, 例如指令响应内容是否正确, 状态码是否正确等, 例如:

同样,我们将剩余步骤依照上述方式进行配置,完成后的配置如下:

当指令配置完成后, 切换到运行模式即可运行改测试用例, 例如:

如果在测试用例执行过程中某一个步骤出现错误,例如指令响应验证失败, 则测试步骤将会停止执行不再继续, 例如:

变量使用

当在测试用例中需要使用上一条指令的响应结果或者其他步骤的结果时,可通过变量来临时进行数据存储。

例如,在上述场景中,新的测试任务检测任务添加后, 会返回测试任务ID, 我们需要在获取测试结果时根据这个任务ID来拿到结果。 那么, 在添加任务的步骤中,我们需要将响应的任务ID解析到变量中以供后续使用, 在此之前我们需要先建立一个变量, 例如:

接着将指令的响应任务ID解析到刚才新建的变量中:

最后,我们在获取任务时, 将任务ID改为变量引用, 例如:

这样我们在每次测试的时候便可以动态的根据任务ID来获取相应的任务结果。 我们切换到运行模式, 再次执行该测试用例,例如:

步骤循环

如果需要在测试用例中重复执行某些步骤,可通过循环步骤执行, 例如计数循环,条件循环或者变量循环等。 以上述场景为例, 在检测任务提交后,我们需要等待一段时间之后方可进行后续的获取检测结果操作, 如果固定一个等待时间的话, 过长则浪费时间, 过短则检测任务未完成无法获取结果, 所以这里我们可以采用循环的方式来等待,当获取到任务完成后,立即跳出循环。

首先,我们先创建一个变量用于存储任务是否完成, 名称为 任务状态 。 例如:

接着我们添加一个 条件循环 步骤,并且条件为任务状态等于0时一直循环, 例如:

现在切换到运行模式测试一下:

结束

通过以上步骤,我们使用 Bittly 创建了一个完整的基于串口的自动化测试用例。利用 Bittly 的功能测试模块,我们能够灵活组合指令,解析变量,甚至实现复杂的循环控制,确保测试流程的稳定性与可控性。这种自动化方式不仅减少了人工干预,还能够通过动态变量、条件判断等机制提升测试的效率和精确度, 从而实现更全面的设备测试,提升系统的可靠性。

相关推荐
jjyangyou3 小时前
物联网核心安全系列——物联网安全需求
物联网·算法·安全·嵌入式·产品经理·硬件·产品设计
憧憬一下19 小时前
Pinctrl子系统中Pincontroller和client驱动程序的编写
arm开发·嵌入式·c/c++·linux驱动开发
蓝天居士19 小时前
ES8388 —— 带耳机放大器的低功耗立体声音频编解码器(4)
嵌入式·音频·es8388
田三番1 天前
使用 vscode 简单配置 ESP32 连接 Wi-Fi 每日定时发送 HTTP 和 HTTPS 请求
单片机·物联网·http·https·嵌入式·esp32·sntp
启明智显1 天前
AI笔筒操作说明及应用场景
人工智能·嵌入式硬件·嵌入式·ai大模型·启明智显·esp32-s3
FreakStudio1 天前
全网最适合入门的面向对象编程教程:58 Python字符串与序列化-序列化Web对象的定义与实现
python·单片机·嵌入式·面向对象·电子diy
孤蓬&听雨2 天前
Kafka自动生产消息软件(自动化测试Kafka)
分布式·kafka·自动化·测试·生产者
帅得不敢出门5 天前
Python+Appium+Pytest+Allure自动化测试框架-安装篇
python·appium·自动化·pytest·测试·allure
Projectsauron5 天前
【STM32】通过 DWT 实现毫秒级延时
stm32·嵌入式·dwt
云中双月6 天前
如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)
linux·嵌入式·gdb·调试·gcc·崩溃·ida pro·ulimit·core dump·cross compile