0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Robot Framework在汽车电子测试中,可以发挥出多大的作用

汽车电子设计 ? 来源:汽车电子设计 ? 作者:汽车电子设计 ? 2022-06-17 10:53 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

汽车电子软件扮演着越来越重要的角色,为适应市场变化,车载软件和功能的开发需要快速迭代。敏捷开发、持续测试、CI/CT/CD实现和DevOps等成了汽车电子行业的高频词,也正在帮助OEM和零部件供应商实现频繁的代码部署和实现可靠软件交付的目标。测试自动化是这些过程中不可或缺的一部分,因为可以提升测试效率以加速开发迭代,特别是对于重复性的任务或不需要任何人工干预的任务。

说到自动化测试,Robot Framework作为自动化测试领域的明星框架,已经开始摩拳擦掌,跃跃欲试。今天我们一起来看下Robot Framework在汽车电子测试中,可以发挥出多大的作用。

Robot Framework简介

Robot Framework是一个广受欢迎的自动化测试框架。所谓框架,可以理解为一组准则,遵循这些准则可以获取明显的收益。自动化测试框架就是由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。

Robot Framework是一个基于Python语言开发的,可扩展的,是以关键字驱动模式的自动化测试框架。

特点

1

编辑用例简单,启用易于使用的表格语法,以统一的方式创建测试用例;

2

提供从现有关键字创建可重复使用的更高级别关键字的功能;

3

提供易于阅读的结果报告和HTML格式的日志;

4

提供一个简单的库API,用于创建自定义测试库,可以使用Python或Java本机实现;

5

支持创建数据驱动的测试用例;

6

提供标记以分类和选择要执行的测试用例;

7

可以和SVN或者GIT及Jenkins持续集成。

上文我们提到Robot Framework是以关键字驱动模式的自动化测试框架,同时支持创建数据驱动的测试用例。那么关键字驱动和数据驱动分别有什么特点呢?

关键字驱动是由关键字和数据组成测试用例执行测试,测试框架的底层负责解释关键字,完成指令,测试用例的编辑者只需要使用关键字和数据组合,即可实现复杂的测试逻辑。测试执行的代码和测试用例代码是分离的。这种方式学习成本比较高,开发关键字及其相关功能的初始投资可能需要更长的时间。

数据驱动测试是从数据文件读取输入、输出数据,通过变量传入测试脚本执行测试,数据是可变的,测试设计是重复的、高度抽象的。使用这种测试方式可以减少重复劳动,测试用例易于修改和维护。但是这种方式不擅长逻辑处理,一组脚本只能处理特定格式的数据。在一些特定的测试场景下,这种方式具有明显优势。比如汽车ECU(如网关)测试有数据转发/路由的测试场景,需要测试的数据有时多达上千个,我们只需创建一条数据转发业务的测试用例,从数据文件中读取输入、输出数据后,遍历所有数据即可完成测试。

Robot Framework整体架构

Robot Framework是一个通用的,和具体测试工具松耦合的框架,其高度模块化的架构如下图所示:

f401d64c-ede7-11ec-ba43-dac502259ad0.png

测试数据(Test Data)使用非常简单、易于编辑的表格格式。Robot Framework会解析测试数据, 执行测试用例, 并生成日志和报告。框架本身对测试对象可以完全“一无所知”, 而是通过测试库与其交互。测试库可能是直接使用被测应用程序的接口, 也可以使用其它底层的测试工具作为驱动。

Robot Framework环境安装

Robot Framework环境的安装比较简单,只需两步即可完成:

1.安装python配置环境变量;

2.打开dos窗口,输入指令 pip install robotframework,点击回车,安装RobotFramework。

?

Robot Framework常用关键字

上文我们提到Robot Framework是一个关键字模式驱动的自动化测试框架,Robot Framework的测试用例由关键字和测试数据组成。关键字是用Python语言编写的函数,也即是一个个方法。它是为了完成一个功能来设计的,分为系统关键字和用户关键字。

系统关键字包含标准库里面的关键字和第三方库里面的关键字,就像C/C++的库函数或者Python的内置函数一样。

用户关键字是根据业务需求将不同的业务封装成一个关键字或者将用例执行的步骤封装成一个关键字,就像C/C++或者Python中的用户自定义函数。

下面我们介绍几个常见关键字的用途

Convert To Integer:将给定的变量转换成一个整数。示例:

?

${result} =Convert To Integer100# Result is 100

?

?

Import Library:导入扩展库或者自定义库。示例:

?

Import LibraryMyLibrary

Import Library${CURDIR}/Lib.pyarg1named=arg2WITH NAMECustom

?

?

Get Variable Value:获取变量的值,赋给一个新的变量,如果变量不存在可以设置一个默认值。示例:

?

${x} = Get Variable Value $a default

${y} = Get Variable Value $a ${b}

${z} = Get Variable Value $z

?

?

Log:使用给定的级别记录给定的信息。示例:

?

LogHello, world!# Normal INFO message.

LogWarning, world!WARN# Warning.

?

?

Set Variable:给变量设置值。示例:

?

${hi} =Set VariableHello, world!

${hi2} =Set VariableI said: ${hi}

${var1}${var2} =Set VariableHelloworld

@{list} =Set Variable${list with some items}

${item1}${item2} =Set Variable${list with 2 items}

?

?

Should Be Equal:Robot Framework中的断言关键字,如果给定的对象不相等,就会判定失败。示例:

?

Should Be Equal${x}expected

Should Be Equal${x}expectedCustom error message

Should Be Equal${x}expectedCustom messagevalues=False

?

?

Sleep:测试执行等待一定时间。示例:

?

Sleep42

Sleep1.5

Sleep2 minutes 10 seconds

Sleep10sWait for a reply

?

?

Robot Framework测试用例示例

说了这么多,大家肯定想赶紧看看Robot Framework是怎么使用的,现在我们通过一个简单的例子来说明Robot Framework是怎么执行测试的。

测试用例操作步骤

加载CANoe测试工程

启动测试

等待一定时间,确保CANoe启动完成

设置系统变量的值

等待一定时间,确保系统变量设置完成

获取关联系统变量的信号

比较设置的值和读取的值是否相同

终端输出提示“测试用例执行结束”

Robot Framework编写的测试用例如下图一所示:

f414e566-ede7-11ec-ba43-dac502259ad0.png

图一 Robot Framework测试用例示例

执行测试用例:dos窗口中输入robot 测试用例路径,点击回车即可,这里执行用例的逻辑是使用pip安装Robot Framework时,会在Python安装路径下面的Scripts文件夹生成robot.exe文件,Scripts文件夹已经添加到系统路径,因此不需要再配置robot.exe的系统路径就可以直接调用。

执行后用例后,CANoe中关联系统变量的信号值设置成功,如图二所示。

f43c919c-ede7-11ec-ba43-dac502259ad0.png

图二 CANoe信号EngineState::OnOff值设置为1

用例执行完成后,生成的测试报告如图三所示。

f4620c56-ede7-11ec-ba43-dac502259ad0.png

图三 测试用例执行后生成的测试报告

Robot Framework与CANoe结合使用

相比于IT行业的软件测试,汽车电子需要搭建硬件测试环境,测试时需要监控和仿真很多总线信号和硬线信号,CANoe作为专业的总线网络开发和测试工具被众多整车厂和供应商的系统设计师、开发工程师和测试工程师所广泛使用。配合Vector的硬件设备,如VN通信硬件接口卡及VT IO板卡,以及图形化自动化测试工程开发软件vTESTstudio,可以胜任汽车电子研发测试的各项任务。Robot Framework和CANoe结合使用,既带来了Robot Framework可以自动部署测试软件、自动截取日志、可以生成易于阅读的测试报告和可以灵活的选取测试用例的优点,也保留了Vector工具在多总线支持、网络监测和分析、系统仿真等方面的优势,各取所长。

CANoe是留有COM Interface的,这样我们可以通过第三方的程序调用CANoe开放的API。调用交互的部分DEMO代码如下图四所示:

f473aaba-ede7-11ec-ba43-dac502259ad0.png

图四 Python编程调用CANoe代码

Robot Framework和CANoe结合使用一般有两个思路:

第一种情况是把测试用例的过程主体在Robot Framework环境中编写脚本实现并执行,在执行过程中调用CANoe提供测试数据、参数、变量的读取和设定,这个思路适合对时间要求不敏感的测试用例。如下图五所示用例,CanoeHandle为自定义的关键字库,创建了加载CANoe工程、启动测试、停止测试、获取信号值、设置系统变量值、获取系统变量值等关键字,可以使用这些关键字组合创建Robot Framework测试用例,执行测试。

f486db26-ede7-11ec-ba43-dac502259ad0.png

图五 基于Robot Framework编写CANoe测试用例

第二种情况是测试用例整体在Vector工具链中开发测试工程和脚本(比如基于vTESTstudio开发图形化测试工程或是CANoe-CAPL编写测试脚本),并在CANoe中执行工程和脚本。此时,如图六所示,Robot Framework作为一个测试用例管理框架来使用,CanoeHandle为自定义的关键字库,创建了加载CANoe工程、加载测试脚本、执行测试脚本等关键字,可以使用Robot Framework进行测试管理,根据实际需求删选测试用例、自动控制测试开始、停止等。结合Jenkins打造通用的自动化持续集成测试平台,可以显著提升测试效率。

f498d51a-ede7-11ec-ba43-dac502259ad0.png


图六 基于Robot Framework管理CANoe测试工程

IT领域的开发理念和以太网等具体通信技术经过优化改造后在汽车上的应用,为软件定义汽车的实现提供了诸多方法论和技术手段上的支撑和支持。同样,发源于IT行业的测试技术也越来越多地被应用到汽车电子的测试中,在过去一年的项目中,北汇信息已经将Robot Framework与CANoe等汽车行业的主流工具进行了结合应用,积累了一些实践经验,期待与大家深入交流和探讨。下期我们将带来Robot Framework结合Jenkins的测试实践应用的主题,敬请关注。

注:文中部分图片来源于Vector。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 汽车电子
    +关注

    关注

    3040

    文章

    8388

    浏览量

    170658
  • 自动化
    +关注

    关注

    29

    文章

    5797

    浏览量

    85579
  • 数据驱动
    +关注

    关注

    0

    文章

    149

    浏览量

    12618

原文标题:Robot Framework简介及在汽车电子测试中的应用

文章出处:【微信号:QCDZSJ,微信公众号:汽车电子设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高压放大器电子测试的应用研究

    、模拟交流电压等,其性能直接决定了测试结果的精度、可靠性和动态响应能力。 二、高压放大器电子测试的应用 图:高压放大器
    的头像 发表于 07-04 13:51 ?189次阅读
    高压放大器<b class='flag-5'>在</b><b class='flag-5'>电子</b><b class='flag-5'>测试</b><b class='flag-5'>中</b>的应用研究

    高压功率放大器电池测试作用和应用

    随着电动汽车、便携式电子设备和大规模储能系统等领域的快速发展,对高性能电池的需求日益增长。电池测试作为电池研发、生产和应用的关键环节,对确保电池性能、安全性和可靠性至关重要。高压功率
    的头像 发表于 06-26 18:15 ?193次阅读
    高压功率放大器<b class='flag-5'>在</b>电池<b class='flag-5'>测试</b><b class='flag-5'>中</b>的<b class='flag-5'>作用</b>和应用

    功率放大器电容测试作用研究

    电容作为电子电路的基础元件,其性能的好坏直接影响到电路的稳定性和可靠性。随着电子技术的不断发展,对电容性能的要求也越来越高。电容测试成为确保电子
    的头像 发表于 06-25 14:33 ?171次阅读
    功率放大器<b class='flag-5'>在</b>电容<b class='flag-5'>测试</b><b class='flag-5'>中</b>的<b class='flag-5'>作用</b>研究

    高压功率放大器汽车电子测试的应用研究

    功率信号放大至所需的高功率水平,为汽车电子测试提供了强大的驱动能力,其性能和精度对测试结果有着直接影响。 二、高压功率放大器
    的头像 发表于 06-16 17:12 ?238次阅读
    高压功率放大器<b class='flag-5'>在</b><b class='flag-5'>汽车</b><b class='flag-5'>电子</b><b class='flag-5'>测试</b><b class='flag-5'>中</b>的应用研究

    功率放大器电磁兼容emc测试作用介绍

    电磁兼容(EMC)测试对于电子设备的正常运行和相互兼容至关重要,而功率放大器在其中发挥着不可替代的作用,以下是其具体介绍: 信号放大与增强
    的头像 发表于 06-11 15:07 ?270次阅读
    功率放大器<b class='flag-5'>在</b>电磁兼容emc<b class='flag-5'>测试</b><b class='flag-5'>中</b>的<b class='flag-5'>作用</b>介绍

    富捷车规级电阻汽车电子的应用优势

    随着汽车电子技术的不断发展,汽车的智能化和自动化程度越来越高,电阻作为电子电路不可或缺的基础元件,
    的头像 发表于 05-07 14:20 ?492次阅读
    富捷车规级电阻<b class='flag-5'>在</b><b class='flag-5'>汽车</b><b class='flag-5'>电子</b><b class='flag-5'>中</b>的应用优势

    网线机器人领域如何发挥重要作用

    机器人制造领域正经历前所未有的变革,网络产品作为连接机器人内部系统与外部环境的关键纽带,机器视觉、数据采集和远程控制等环节发挥着决定性作用。本文将从这网线角度,来看看他们机器人领域
    的头像 发表于 04-27 13:33 ?437次阅读

    测试电源光伏测试的应用

    光伏行业作为可再生能源的重要组成部分,近年来发展迅猛,对测试设备的要求也越来越高,测试电源发挥着关键作用。优秀的电源应用中有哪些特点呢,一
    的头像 发表于 03-26 11:38 ?537次阅读
    <b class='flag-5'>测试</b>电源<b class='flag-5'>在</b>光伏<b class='flag-5'>测试</b><b class='flag-5'>中</b>的应用

    艾华电解电容汽车电子的可靠性测试

    的可靠性测试。 艾华电解电容汽车电子的可靠性测试主要包括以下几个方面: 1、温度循环
    的头像 发表于 02-28 14:54 ?556次阅读
    艾华电解电容<b class='flag-5'>在</b><b class='flag-5'>汽车</b><b class='flag-5'>电子</b><b class='flag-5'>中</b>的可靠性<b class='flag-5'>测试</b>

    电子元件测试恒温恒湿试验箱的关键作用

    有效地稳定元器件的参数性能,减少使用的参数漂移。电力测试电力测试是评估电子元器件可靠性的重要项目。热电应力的综合
    的头像 发表于 12-10 10:40 ?532次阅读
    <b class='flag-5'>电子</b>元件<b class='flag-5'>测试</b><b class='flag-5'>中</b>恒温恒湿试验箱的关键<b class='flag-5'>作用</b>

    漆包线电子产品作用

    漆包线电子产品中发挥着至关重要的作用,以下是其具体作用及优势的介绍: 一、电能与磁能转换的媒介 漆包线以其独特的绕制线圈能力,成为
    的头像 发表于 12-09 09:23 ?2167次阅读

    串联组件电子设备作用

    串联组件电子设备中发挥着至关重要的作用。以下是串联组件电子设备
    的头像 发表于 12-02 16:45 ?1253次阅读

    汽车雷达回波发生器的技术原理和应用场景

    验证。通过模拟不同目标和场景的回波信号,可以全面测试雷达系统的测距、测速、测角等性能指标,确保雷达系统实际使用能够满足设计要求。 综上所述,汽车
    发表于 11-15 14:06

    脉冲式线圈测试仪的技术原理和应用场景

    ,使用脉冲式线圈测试仪对绕线电感线圈进行匝间绝缘和层间短路测试,提高产品质量。 汽车电子汽车
    发表于 09-18 14:29

    Aigtek功率放大器电场测试作用和用途是什么

    电场测试是电力工程至关重要的一部分,用于评估电力设备和电力系统的性能、可靠性以及安全性。电场测试,功率放大器
    的头像 发表于 09-05 14:40 ?556次阅读
    Aigtek功率放大器<b class='flag-5'>在</b>电场<b class='flag-5'>测试</b><b class='flag-5'>中</b>的<b class='flag-5'>作用</b>和用途是什么