-
首页
-
产品中心
- Swift PLM
- 杰信Swift PLM产品生命周期管理系统
- 杰信EDM图文档管理系统
- 杰信PPM项目管理系统
- 杰信MDM主数据管理系统
- 杰信QMS质量管理系统
- Swift CPQ成本报价管理系统
- 杰信Swift CPQ成本报价管理系统
- Oracle Agile PLM
- Oracle Agile PLM产品生命周期管理系统
- Oracle BPM业务流程管理系统
- Oracle Primavera P6 EPPM
-
解决方案
- Swift PLM行业解决方案
- 医疗器械行业解决方案
- 高科技电子行业解决方案
- 芯片半导体行业解决方案
- 精密制造行业解决方案
- 机械装备行业解决方案
- 生物制药行业解决方案
- Swift CPQ报价系统解决方案
- 电子行业报价系统解决方案
- 新材料行业报价系统解决方案
- 精密制造行业报价系统解决方案
- 医疗器械行业报价系统解决方案
- 玩具制造行业报价系统解决方案
- 企业运营管理数字化解决方案
- 智慧能源管理系统
- Swift PPM项目管理系统解决方案
- 高科技电子行业企业研发项目管理解决方案
- 精密加工行业企业项目管理平台解决方案
- 医疗器械行业企业研发项目管理解决方案
- Swift EDM图文档管理解决方案
-
业务服务
-
优秀案例
-
新闻中心
-
关于我们
-
首页
-
产品中心
- Swift PLM
- 杰信Swift PLM产品生命周期管理系统
- 杰信EDM图文档管理系统
- 杰信PPM项目管理系统
- 杰信MDM主数据管理系统
- 杰信QMS质量管理系统
- Swift CPQ成本报价管理系统
- 杰信Swift CPQ成本报价管理系统
- Oracle Agile PLM
- Oracle Agile PLM产品生命周期管理系统
- Oracle BPM业务流程管理系统
- Oracle Primavera P6 EPPM
-
解决方案
- Swift PLM行业解决方案
- 医疗器械行业解决方案
- 高科技电子行业解决方案
- 芯片半导体行业解决方案
- 精密制造行业解决方案
- 机械装备行业解决方案
- 生物制药行业解决方案
- Swift CPQ报价系统解决方案
- 电子行业报价系统解决方案
- 新材料行业报价系统解决方案
- 精密制造行业报价系统解决方案
- 医疗器械行业报价系统解决方案
- 玩具制造行业报价系统解决方案
- 企业运营管理数字化解决方案
- 智慧能源管理系统
- Swift PPM项目管理系统解决方案
- 高科技电子行业企业研发项目管理解决方案
- 精密加工行业企业项目管理平台解决方案
- 医疗器械行业企业研发项目管理解决方案
- Swift EDM图文档管理解决方案
-
业务服务
-
优秀案例
-
新闻中心
-
关于我们
Swift PLM—Pytest+Excel+Allure完整框架集成
实现Pytest+Excel+Allure的框架封装,并且结合异常处理及编写动态生成测试标题完善测试标题、及实现接口关联。
-
Pytest数据参数化(DDT)
参数化实现是指在测试中使用参数化的方式来执行多组相似的测试数据或测试步骤。通过参数化,可以轻松地对不同的输入数据进行测试,并在一次运行中执行多个测试案例。
假设你需要测试一个登录功能,输入用户名和密码后验证登录结果。可以使用参数化实现多组输入数据的测试:
-
测试正确的用户名和密码登录成功
-
测试正确的用户名和错误的密码登录失败
-
测试错误的用户名和正确的密码登录失败
-
测试错误的用户名和密码登录失败
语法结构:
![]()
常用参数:
-
argnames:参数名
-
argvalues:参数对应值
运行方式:参数值为N个,测试方法就会运行N次
当参数为一个时格式:[value]
当参数个数大于一个时,格式为:[(param_value1,param_value2.....),(param_value1,param_value2.....)]
单参数:元组或者列表

多参数:列表+元组


多参数:列表+字典


优化:数据都可以通过方法获取

![]()
以下是一个使用 pytest 测试框架和参数化装饰器的示例:


在上述示例中,使用 @pytest.mark.parametrize 装饰器为 test_login 函数指定了多组输入参数,每组参数由 (username, password, expected_result) 组成。在测试过程
中, pytest 框架会自动使用每组参数执行 test_login 函数,并根据断言验证结果是否符合预期。
通过这种方式,你可以轻松地测试多组登录输入数据,验证登录功能的正确性,减少了重复编写相似的测试用例代码。
-
Pytest+Excel接口自动化框架
2.1 封装Excel的读取的方法
读取Excel方法如下:


2.2 维护对应的文档路径
相对路径:文件路径的读取是根据当前文件来找路径的,以下主要用户run_main.py文件进行运行
config.py添加内容如下,前提文件放到对应的目录下


验证数据读取 :test_Excel_Dome版本
参考代码:


2.3 EXCEL读取的方法封装


2.3.1 eval()函数的应用
eval() 函数是 Python 内置的一个函数,用于将字符串作为代码执行,并返回结果。
eval() 函数的语法如下:
![]()

参数说明:
-
expression : 表示要执行的代码字符串,可以是一个表达式、语句或者函数调用。
-
globals (可选): 表示全局命名空间,传递一个字典作为全局命名空间,用于执行表达式。
-
locals (可选): 表示局部命名空间,传递一个字典作为局部命名空间,用于执行表达式。
eval() 函数的返回值是执行结果。
下面是一些 eval() 函数的示例:
-
计算表达式的值:


-
执行函数调用:


需要注意的是, eval() 函数具有执行任意代码的能力,但也带来了一些安全风险。在使用 eval() 函数时,应该确保传递给它的代码是可信的,避免执行不受信任的代码。
2.3.2 getattr()函数的应用
getattr() 函数是 Python 内置的一个函数,用于获取对象的属性或方法。
getattr() 函数的语法如下:
![]()

参数说明:
-
object : 表示要获取属性或方法的对象。
-
name : 表示要获取的属性或方法的名称。
-
default (可选): 表示当属性或方法不存在时的默认值。
getattr() 函数会尝试从 object 中获取指定名称的属性或方法。如果属性或方法存在,则返回该属性或方法;如果不存在,则根据传入的 default 参数返回默认值或者引发 AttributeError 异常。
下面是一些 getattr() 函数的应用示例:


需要注意的是, getattr() 函数用于动态地获取对象的属性或方法,可以在运行时根据需要进行灵活操作。但也需要注意确保对象和属性或方法的名称是正确的,避免引发 AttributeError 异常。
-
完整形态自动化框架组装
3.1 封装结合异常处理
思路:
-
结合异常进行处理
-
进行断言,通过与否,根据情况写入到EXCEL中(注:写入的过程excel一定要关闭
3.1.1 封装主函数
参考代码:



3.1.2 写入Excel方法
参考代码:


3.1.3 维护写入EXCEL中的msg
参考代码:


Excel的执行结果:
![]()

3.2 Allure报告日志及动态标题
思路:
-
快速生成allure测试报告和日志
-
应用allure装饰器轻松抓取接口传递的数据
-
应用allure装饰器动态生成接口用例标题、模块名、备注信息、用例级别
3.2.1 新增动态生成标题
在原有基础上新增如下的方法(__dynamic_title),并且在testDat方法中进行调用
参考代码:

![]()
3.2.2 运行效果
Allure报告执行结果:

关于杰信

杰信软件成立于2015年,是一家提供企业数字化转型的专业服务提供商,专注于企业研发管理、企业运营管理等领域,提供数字化平台建设、PLM实施咨询、数据集成等服务。公司作为国内知名的国产PLM原厂商和专业服务商,是Oracle甲骨文公司亚太区金牌合作伙伴和SAP公司中国地区银牌合作伙伴,目前杰信软件自主研发的Swift PLM产品生命周期管理系统广泛应用于芯片半导体、高科技电子、医疗器械、生物医药、汽车零部件、离散制造、自动化设备、航空航天、食品饮料等行业,同时也提供甲骨文Agile PLM、SAP ERP等数字化产品和解决方案,为智能制造领域提供全面的数字化产品生命周期管理PLM平台和解决方案服务。


杰信软件Swift PLM产品生命周期管理
杰信软件专注于医疗器械、高科技电子、芯片半导体、精密制造、离散组装设备、汽车零部件等行业PLM解决方案咨询和实施,同时有着超20年的EDM咨询和实践经验,杰信软件立志于将最先进的业务模式与管理创新方法,通过杰信软件公司专家团队提供的专业信息化解决方案,帮助企业飞速发展。因此公司研制开发了一套有着自我知识产权的国产PLM系统Swift PLM,它有着轻量化、高效化、实用化、易用化的特点,是中小型企业研发设计管理的最佳工具。