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

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

3天内不再提示

如何在TPT中使用Python实现自定义报告

北汇信息POLELINK 2022-08-01 14:23 次阅读

Python是由 Guido van Rossum在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的,Python可以粘性整合现有程序,简单易学,具备庞大的计算生态,因此也被称为“超级语言”。

TPT作为一款模型测试工具,除了可以自动生成默认的报告,也可以根据客户需求进行报告定制化,那么能够使用Python去自定义报告吗?

“当然可以,而且可以自定义库生成想要的报告”。

TPT对于Python的支持情况

在TPT中,Python需要编写在Script评估中(通过如下方式新建)。由于TPT的高度定制化,语法与Python相比具有通用性和独立性的特点,测试人员只需具备简单的编程知识即可操作。

poYBAGLmViiAXDvSAADISw-a9PE573.png

新建Script评估

TPT script评估基于Python2.7,TPT支持Python2.7的绝大部分特性,如图所示。

poYBAGLmWMqAMC0QAABywcoqSKE598.png

TPT支持Python情况

TPT中内置很多自定义报告函数,直接使用即可,非常方便,如下图所示。

poYBAGLmVleAXp5GAAC6Bs6s8tA392.png

报告自定义内置函数

TPT通过内置函数自定义报告过程

在TPT中使用内置函数自定义报告需要遵循一定的方法,如下所示,在TPT中的help中关于自定义报告的介绍。

poYBAGLmVr-ARniDAACdQysWWZs002.png

自定义报告方法

TPT内置函数自定义报告支持添加“评估列表”、“信号图像”、“自定义图片”、“章节”、“目录”等,接下来我们以自定义添加信号图像为例介绍自定义报告过程。

目标:将测试用例的输出信号添加在报告中

在TPT中编辑如下测试用例,输出信号为“Test_Out_1”和“Test_Out_2”。

pYYBAGLmVs6ADhTNAABQ0jAWx64740.png

TPT中的测试用例

poYBAGLmVtyAdheAAACpIpEKBKk090.png

信号曲线

在TPT中添加script评估,编辑如下:

pYYBAGLmVumAQ95WAADplMMGjco342.png

自定义报告添加信号图像

在报告中效果如下:

poYBAGLmVveAQ5V3AACj-zYbzQE453.png

TPT自动生成的报告

如果测试用例输出信号较多,手动添加信号较为繁琐,我们也可以引用Python中的列表和for循环来检索和加载信号。

pYYBAGLmVwOARx1sAAEi6GLn-SM469.png

for循环遍历输出信号

TPT通过自定义库实现报告定制化

假设一个测试团队对报告的要求是相同的,那么如果团队每个成员都将代码写一遍非常繁琐,这时候可以自定义一个库,然后组内同事共同加载和调用。我们还是以上面添加信号图像为例进行说明,编写如下:

poYBAGLmVxuAEUayAAFOkAq0L18677.png

自定义lib

将自定义lib保存成“.tptpy”文件,并放置在TPT的安装目录中(最好新建文件夹进行保存,可能会有很多库)。

poYBAGLmVymAV6e_AABM6RsOkOo765.png

自定义的lib存放位置

当自定义库保存好后,我们需要在TPT中加载它。点击TPT中的“Options”->“Preferences”。

首先需要在“GENERAL”->“Assessment Library”中加载自定义库路径。此项设置会应用在所有TPT工程上。

pYYBAGLmVziAdYfVAACwWf72n8w263.png

加载自定义库路径

然后在当前使用的TPT工程中的“Assessment Library”中,选择使用哪些库。

poYBAGLmV0OAZ3znAABNtNFd9jg624.png

选择使用的函数

选择好使用的库后,在TPT中新建“Script”评估,使用快捷填充键选择要使用的自定义库。

poYBAGLmV02AARFQAABCENCPKmo432.png

选择自定义函数

注:为避免手动输入信号或函数名称导致的错误,TPT中可以设置快捷填充键调用信号或函数,在“Options”->“Preferences”->“General Setting”->“Workbench”->“Auto completion hot key”中进行设置。

pYYBAGLmV1iADCidAAB_qO4EL-E967.png

快捷填充键设置

在自定义库名称后输入 ”.”,然后再次点击快捷填充键,选择要使用的函数。

poYBAGLmV2aAOWgyAAA17h_7bFY952.png

选择使用的函数

最后,输入章节名称,运行即可得要想要的报告。

pYYBAGLmV3SAHCxWAAA8UwO2dpA479.png

填写自定义章节名称

运行测试后,得到如下报告:

pYYBAGLmV3-AWXB4AACMWSmiqmY184.png

自定义报告

总结

本文只是介绍了将测试用例输出信号加载到报告中,我们当然也可以通过脚本自定义Table、Image、Requirements、Table等,也可以通过不同的组合得到想要的报告。

通过在自定义报告中使用Python,可以提高我们的测试效率,并且提高代码的复用性。当然,Python不止可以应用在自定义报告上,我们也可以使用在评估、TPT配置中,甚至将TPT工程保存为“.tptprj”文件格式后,可以对工程本身进行修改。

关于Python在TPT中的使用,更多精彩内容请查看:

TPT中脚本评估的使用(上):强大的内置函数库

TPT中脚本评估的使用(下):测试管理与软件交互

PikeTec公司是全球知名的基于模型的嵌入式系统测试工具TPT的软件供应商,总部位于德国柏林,其创始人均在戴姆勒公司拥有十多年的软件测试经验。TPT产品曾被评为2005年戴姆勒最佳创新软件,并在戴姆勒、大众、奥迪、保时捷、通用等汽车整车厂及多家零部件企业(博世、大陆、海拉等)中得到广泛应用,如戴姆勒的多个车型的混合动力汽车的动力总成、电池管理控制器的测试,博世的汽油机和柴油机控制系统测试等。

北汇信息作为PikeTec在中国的独家合作伙伴,致力于帮助中国客户提升嵌入式控制系统的开发效率。目前,TPT已被众多国内知名主机厂和零部件企业认可,在新能源(VCU/BMS/MCU)以及ADAS等领域中被广泛应用。

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

    关注

    55

    文章

    4778

    浏览量

    84439
收藏 人收藏

    评论

    相关推荐

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    创建<b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    如何创建TestStand自定义步骤

    在之前的课程中简单地介绍过TestStand自带的一些步骤类型,如测试、消息弹窗、赋值、标签等等,这些简单的步骤从TestStand的插入选版中就可以添加到序列中。那么在使用中如果碰到需要实现更加灵活、复杂的功能,使用自带的一些步骤类型可能难以满足,这时就需要使用到自定义
    的头像 发表于 09-11 14:46 865次阅读
    如何创建TestStand<b class='flag-5'>自定义</b>步骤

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划

    EtherCAT运动控制器PT/PVT实现用户自定义轨迹规划。
    的头像 发表于 08-15 11:49 545次阅读
    EtherCAT运动控制器PT/PVT<b class='flag-5'>实现</b>用户<b class='flag-5'>自定义</b>轨迹规划

    NVIDIA NeMo加速并简化自定义模型开发

    如果企业希望充分发挥出 AI 的力量,就需要根据其行业需求量身定制的自定义模型。
    的头像 发表于 07-26 11:17 680次阅读
    NVIDIA NeMo加速并简化<b class='flag-5'>自定义</b>模型开发

    何在IDF框架中使自定义的静态库和动态库?

    基于商业需要,我们需要在 ESP-IDF v4.0-rc 这个版本的IDF中开发与使用自定义库,有如下问题请协助: 1如何利用IDF框架编写自定义静态库和动态库? 2如何在IDF框架中使
    发表于 06-25 07:57

    ESP32下如何加自定义Python库?

    我看官方有提供Micropython的bin文件,但我想根据自己外设扩充一下Python库,这个应该从哪里入手? 之前做过RTT系统的python库扩充,RTT有提供Micropython的源代码,直接在里面加自己的库就行 ESP32下如何加
    发表于 06-18 06:27

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗
    的头像 发表于 05-16 18:18 1276次阅读
    HarmonyOS开发案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 601次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    HarmonyOS开发案例:【UIAbility和自定义组件生命周期】

    本文档主要描述了应用运行过程中UIAbility和自定义组件的生命周期。对于UIAbility,描述了Create、Foreground、Background、Destroy四种生命周期。对于页面
    的头像 发表于 05-10 15:31 1173次阅读
    HarmonyOS开发案例:【UIAbility和<b class='flag-5'>自定义</b>组件生命周期】

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 969次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 601次阅读

    RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验

    RK3568驱动指南|驱动基础进阶篇-进阶5 自定义实现insmod命令实验
    的头像 发表于 02-20 14:10 633次阅读
    RK3568驱动指南|驱动基础进阶篇-进阶5 <b class='flag-5'>自定义</b><b class='flag-5'>实现</b>insmod命令实验

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现自定义数据集上,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 2773次阅读
    基于YOLOv8<b class='flag-5'>实现</b><b class='flag-5'>自定义</b>姿态评估模型训练

    博途用户自定义库的使用

    博途官方提供了很多库,比如:基本函数库、通信库、安全库、驱动库等等,用户可以使用库中的函数/函数块来完成具体的控制任务。除了官方的库,我们也可以创建自己的库(用户自定义库)。比如,把项目
    的头像 发表于 12-25 10:08 873次阅读
    博途用户<b class='flag-5'>自定义</b>库的使用

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用YOLOv8呢?
    的头像 发表于 12-20 10:51 725次阅读
    基于YOLOv8的<b class='flag-5'>自定义</b>医学图像分割