串口测试在设备研发过程中是不可缺少的环节,而目前串口调试工具很多,但串口自动化测试工具确很少见。下面基于以下测试场景为大家介绍一个串口自动化测试工具——宏控软件串口测试机器人

场景描述

在设备研发过程中,某个串口模块依赖一个另一个串口模块,比如说模块A 与模块B相互依赖,如下图所示,模块A在某些操作下会发出串口命令给模块B,并接收模块B 给出的回复做出后续反应:

串口自动化测试——场景二​_串口测试工具



这种依赖的问题会导致原本的需求目的是要验证模块B,但由于所依赖的模块A不稳定或者未开发完成,导致工作无法正常开展。

串口自动化测试——场景二​_串口自动化测试_02


解决方式

那作为测试工程师,面对这样的情形,我们该怎么办呢?解决这类问题的核心的思路:引入依赖串口模块替身,更通俗的叫法,引入Mock服务。

Mock是什么

可能还有些读者之前并没有接触过Mock,不清楚Mock是个啥。
Mock简单来理解,就是模拟,在测试过程中,对于一些很难构造或者获取的对象,用一个虚拟的对象来创建以便测试。而这个虚拟的对象就是mock对象。

Mock对象就是真实对象在调试期间的代替品。

对于上面的问题,可以通过引入Mock服务来进行解决。将模块A用Mock替代,对模块B进行测试。

串口自动化测试——场景二​_串口自动化测试工具_03



串口测试的工具介绍

常见的串口调试工具

目前市面上有不少串口调试工具,功能大同小异,但都不能说是实现了自动化测试。

利用串口调试工具发送数据并检查回复,这个过程中,测试人员需要确保发送的数据正确,并检查检查模块B返回的命令是否正确,是否在规定时间内回复。这个过程中人工检查容易出错。当测试涉及多次,需要测试人员多次重复此过程,非常耗时且容易忽略错误。当测试量大时,人工检查很难支撑。

比如下图的串口调试工具,可以MOCK模块A,向模块B发出的串口命令后检查模块B的返回,但是,当交互的命令少时还好,当命令多的情况下,要保证命令发送的正确,检查回复的正确,需要耗费大量时间确保正确性。

串口自动化测试——场景二​_串口自动化测试_04



串口自动化测试工具(宏控软件串口测试机器人)

宏控软件串口测试机器人(下面用串口测试机器人代替)。串口测试机器人支持模拟模块A,自动向模块B发送命令,并接收检查模块B给出的回复。

下面是串口机器人向模块B发送串口消息,并自动检查回复的命令。无需编程,直接插入。然后根据实际的测试逻辑填写,向模块B发送命令“cmdA”,并在指定时间内检查模块B给出的回复是否发出,发出的内容是否与预设值“RespB”一致。

串口自动化测试——场景二​_串口自动化测试工具_05


通过事先以测试用例的形式设置好命令的发送及检查,就可以实现对模块B的自动化测试。

同时串口测试机器人还提供了很多其他的命令,方便快捷的进行串口命令发送,查看等操作。下面选取其中几条命令作为展示。

命令一:命令发送

模拟模块A给模块B发送串口命令。可以直接向模块B发送串口命令,也可以直接向模块B发送串口命令并得到回复的内容进行更多操作,比如回复的内容作为下一次输入;比如回复的内容用于判断,决定接下来的行为等等。

串口自动化测试——场景二​_设备串口自动化测试_06


命令二:查看

自动化测试最担心的是测试数据是否是真实正确的,人工测试时,可以实时进行查看,测试人员会“放心”。而用自动化测试工具,测试过程无需人工干预,对于测试过程中的命令究竟是什么,可能会“不放心”。苏州宏控串口测试机器人提供查看命令,用户可以查看实际测试过程中,模块A发来的什么命令,什么时候发生的,模块B给这个命令做出了怎样的回复,回复时间是什么,这些测试数据统统会留存。

串口自动化测试——场景二​_串口测试工具_07


更多的命令,可以通过苏州宏控串口测试机器人来进行探索和体验。