找回密码
 会员注册
查看: 33|回复: 0

pytest+allure+excel实现python调CANoe进行诊断自动化测试(二)

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-9-4 12:19:13 | 显示全部楼层 |阅读模式
一、前言本文主要介绍整体框架构成及python调CANoeCOM接口封装的方法二、测试框架的好处当我们开发软件时,需要确保软件的各个部分能正常工作。为了做到这一点,我们需要测试软件,即检查软件是否按照我们预期的方式运行。传统的测试通常是手动的,即人工点击按钮、输入数据来模拟用户行为,来检查软件功能是否正常。但是这种方式效率低下且容易出错。为了提高测试效率和质量,我们可以构建一个自动化测试框架。这个框架就像一个机器人,能自动执行测试用例,验证软件的功能是否正常。构建自动化测试框架的好处是可以节省时间和人力资源,并确保每次更新后软件依然正常运行。同时,自动化测试框架可以帮助我们更方便地合作,共享测试用例和结果,确保软件质量。因此,构建自动化测试框架可以帮助我们更快速、更准确地测试软件,确保软件质量。主要好处分为以下几点:1. 提高测试效率:自动化测试框架可以自动执行测试用例,省去了手动测试的时间和劳动成本。测试团队可以更快速地执行测试,并及时发现问题。2. 提高测试覆盖率:自动化测试框架可以帮助测试团队更全面地覆盖功能、边界条件和各种场景,确保软件质量。3. 降低测试成本:虽然构建自动化测试框架需要一定的投入,但长期来看,自动化测试可以减少重复劳动和人力资源成本。同时,自动化测试框架可以更快速地应对软件变更,减少因人为错误导致的质量问题。4. 提高持续集成与交付软件的速度:自动化测试框架可以与持续集成工具(如 Jenkins)和持续交付流程结合,确保每次代码提交都能进行自动化测试,从而提高软件交付速度和质量。5. 方便协作与回归测试:构建自动化测试框架可以使测试团队更容易共享测试用例和测试结果,方便团队合作。同时,自动化测试框架可以帮助团队更方便地进行回归测试,确保每次更新后软件依然符合预期。三、框架构成从上往下依次介绍:allure-report主要存放生成完的allure测试报告,之后执行结束后打开index.html即可查看完整的测试报告comm存放公用方法,因为是自动化测试框架嘛,后面后其他自动化测试要实现时需要用到的公用方法都在此处存放使用canoe_application.py主要是python调CANoe的方法封装execute_excel.py主要是读写excel的方法security_key.py主要是进行安全解锁的方法log用于存放日志,目前只存放了CANoe生成的trace日志report存放allure生成的json文件。Allure生成的.json文件是一种用于存储测试结果数据的格式化文件。通常,当运行测试并生成Allure测试报告时,Allure会生成.json文件来存储测试执行的详细信息,包括测试用例的执行结果、测试用例的状态、测试步骤的日志、附加信息等里面的environment.properties是allure报告的配置文件testcase存放的是测试脚本。testdata存放测试数据。根目录下的文件config.ini:配置路径、设备等environment.properties:测试报告环境配置,方便复制到allure生成的json文件中main.py:执行文件四、python调CANoeCOM封装canoe_application.pyimportosimporttimefromwin32com.clientimport*frompathlibimportPathclassCANoe:def__init__(self):#self.application=Noneself.application=DispatchEx("CANoe.Application")self.ver=self.application.Versionprint('LoadedCANoeversion',self.ver.major,'.',self.ver.minor,'.',self.ver.Build,'...')self.logging_collection=Noneself.logger=Noneself.log_target_dir=Noneself.Measurement=self.application.Measurement.Runningdefopen_cfg(self,cfgname):"""打开工程:paramcfgname::return:"""if(self.application!=None):ifos.path.isfile(cfgname)and(os.path.splitext(cfgname)[1]=='.cfg'):self.application.Open(cfgname)print("opening..."+cfgname)else:raiseNameError("Can'tfindCANoecfgfile")else:raiseRuntimeError("CANoeApplicationismissing,unabletoopensimulation")defclose_cfg(self):"""关闭工程:return:"""if(self.application!=None):self.application.Quit()self.application=Nonedefstart_Measurement(self):"""运行:return:"""retry=0retry_counter=5#尝试5次whilenotself.application.Measurement.Runningand(retry
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-29 12:22 , Processed in 0.741298 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表