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

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

安装 Bittly

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

模拟场景

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

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

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

新建测试用例

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

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

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

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

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

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

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

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

变量使用

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

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

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

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

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

步骤循环

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

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

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

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

结束

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

相关推荐
玄奕子14 分钟前
F280049C + PCA9554A 实战复盘:从 NACK 定位到稳定驱动落地
嵌入式·dsp开发·ti c2000·f280049c
FreakStudio27 分钟前
ESP32 实现在线动态安装库和自动依赖安装-使用uPyPI包管理平台
python·单片机·嵌入式·面向对象·电子diy·sourcetrail
EmbeddedCore2 小时前
硬核实战:基于 C 语言宏定义的物联网网关命令分发框架设计
单片机·嵌入式
busideyang6 小时前
嵌入式代码编写规范1.0
单片机·嵌入式
charlie1145141916 小时前
嵌入式C++教程实战之Linux下的单片机编程:从零搭建 STM32 开发工具链(5):调试进阶篇 —— 从 printf 到完整 GDB 调试环境
linux·c++·单片机·学习·嵌入式·c
济6179 小时前
STM32串口通信实战|从基础到实战(发送 + 接收控制 LED)---STM32 HAL库专栏
stm32·嵌入式·stm32hal库编程
济6171 天前
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(原子操作)--- Ubuntu20.04
linux·嵌入式·嵌入式linux驱动开发
jaycyj1 天前
商城项目的环境部署和数据查询
测试
New农民工1 天前
因为优化等级出现的 莫名其妙的bug
嵌入式
独断万古他化1 天前
抽奖系统性能负载测试:基于 JMeter 的梯度加压与本地缓存优化全流程
java·redis·jmeter·缓存·压力测试·测试·负载测试