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

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

安装 Bittly

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

模拟场景

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

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

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

新建测试用例

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

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

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

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

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

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

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

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

变量使用

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

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

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

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

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

步骤循环

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

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

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

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

结束

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

相关推荐
不脱发的程序猿1 小时前
嵌入式开发中C++内存泄漏的场景与解决办法
单片机·嵌入式硬件·嵌入式
Jason_zhao_MR1 小时前
V2G 实战:SECC GreenPHY 通信开发方案
嵌入式硬件·物联网·嵌入式·边缘计算
brave and determined4 小时前
工程设计类学习(DAY4):硬件可靠性测试全攻略:标准到实战
人工智能·嵌入式硬件·测试·硬件设计·可靠性测试·嵌入式设计·可靠性方法
AKAMAI21 小时前
基准测试:Akamai云上的NVIDIA RTX Pro 6000 Blackwell
人工智能·云计算·测试
Channon_1 天前
专题六:二进制日志的暗黑魔法——结构化数据与跨平台解析
嵌入式
fanged1 天前
Pico裸机9(bootrom_func)
嵌入式
雨疏风骤12401 天前
ROM与RAM,储存地址、链接地址以及运行地址
linux·stm32·嵌入式·linux嵌入式
大话性能1 天前
8个Python骚操作让代码效率翻倍
测试
不脱发的程序猿1 天前
SPI、DSPI、QSPI技术对比
单片机·嵌入式硬件·嵌入式
Channon_2 天前
专题五:实时系统的生死线——中断安全与优先级管理
嵌入式·优先级·中断安全