文章目录
更新记录
时间 | 版本 | 内容 | 修订者 | 备注 |
---|---|---|---|---|
2024/06/11 | 0.1.0 | 创建 | henry.xu | |
2024/06/17 | 0.2.0 | 新增部分内容 | henry.xu | |
2024/07/08 | 0.3.0 | 新增开发组交付内容部分 | henry.xu | |
2024/07/25 | 0.4.0 | 新增注意事项 | henry.xu |
重要:注意事项
-
- 导入包的过程中要避免循环导入;
- 分层级组织包:将包分层级组织,包只能从比自己低层次的包导入。这样可以减少循环依赖的可能性。
- 使用相对导入:在同一包或子包内,使用相对导入避免直接依赖。
- 利用 init.py 文件:在 init.py 中合理导入模块,可以使得包的导入更加清晰和简洁。
-
- 使用相对路劲时,请注意工作目录才是相对路径的起点;推荐调试时合理使用test部分;
1. 通用项目框架结构规范
test
开发人员测试用文件夹
documents
- 用于存放开发相关文档
- static
- 包括但不限于用于存放readme.md所引用的截图文件等
- readme.md(必要)
- 开发文档
# 1. 项目信息
- 项目名称:xxxx
- 项目开发python版本: 3.7
| 时间 | 版本 | 内容 |修订者|备注 |
|--|--|--|--|--|--|
| 2024/06/11 | 0.1.0 |创建| henry.xu|
# 2. 脚本结构
参考:
- 1.进入需要生成目录结构的文件夹,在路径处输入cmd,进入命令行窗口;
- 2.输入命令tree/f>list.txt并回车,就会在当前目录下生成一个名为list.txt的文件,并且里面有目录结构;
- 3.将需要的目录结构粘贴到readme.md文档中,在目录头和目录尾加上```。
# 3. 脚本运行逻辑
# 4. 配置文件参数 - config.ini
config.ini配置文件中所有的参数说明
eg.
| 参数名 | 参数说明 |
| --------------- | ------------------------------------------------------------ |
| [step] | 测试Case参数,为t时表示当前Case需要运行,可通过UI界面进行选择,Case运行结束后会修改为f,每新增一个Clas
# 5. 脚本运行方式
1. 双击ModuleSSDTest文件夹下run.bat
2. 等待出现Module SSD Test UI设置界面
3. 勾选需要运行的测试报告、勾选需要运行的测试Case、设置参数
4. 点击确定开始运行
# 6. 注意事项
- 1.....
- 2.....
- requirment.txt(必要)
- 项目依赖库的文本文件
- 生成方式
pip freeze > requirements.txt # 生成requirements.txt
pip install -r requirements.txt # 使用requirements.txt
- change_log.md(必要)
-
版本变更历史
-
变更内容分为以下类型:
- 新增:功能新增;
- 优化:已有功能的改进;
- 修复:已知问题的修复; -
版本状态分为以下类型:
- 已发布
- 开发中 -
版本号共三位:x.x.x
-
版本控制:V1.0.0一位数控制:
- 第一位数控制:由需求主导进版,大版本,修改或新增>50%的情况下进版;Note:特殊情况下开发也可以介入;
- 第二位数控制:由需求控制进版,修改或新增<50%下进版;
- 第三位数控制:由开发控制进版,debug程序和维护程序;
------
# 范例:
## Version 2.0.0 (2023年6月30日)
### 作者:XXX
### 变更内容:
- [新增]:change_log样式:新增change_log.md的模版。用于统一change_log样式。
- [优化]:change_log样式:优化change_log.md的模版。用于统一change_log样式。
- [修复]: 修复1的具体内容
### 版本状态:
- 已发布
------
## Version 1.0.0 (2023年6月29日)
### 作者:XXX
### 变更内容:
- [优化]:优化v1.1样式:优化change_log.md的模版。用于统一change_log样式。
### 版本状态:
- 开发中
------
src
- static
- 存放静态文件,即程序会引用,但是不对其进行修改的所有类型文件;例如引用的图片,使用的第三方tools: pwrtest.exe,BiosConfigUtility64.exe等。
- templates
- 存放配置文件,即只有程序会修改和引用的文件;例如json,yml等配置文件
- gui
- 前端模块部分
- modules
- 功能模块部分
- utils或者utils.py
-
公共静态方法
-
当功能模块较少时,可以考虑直接在一个名为
utils.py
的单个文件中编写和组织代码;但如果功能模块很多,可以采取以下步骤:-
- 创建
utils
包:新建一个名为utils
的文件夹或包。
- 创建
-
- 按类别组织文件:在
utils
包内,根据功能的类别创建多个.py
文件,每个文件专门负责一个相关的功能模块。
例如:
utils/network.py
:处理与网络相关的功能。utils/files.py
:处理文件操作的功能。utils/math.py
:包含数学计算函数。- 等等…
- 按类别组织文件:在
-
eg.结构如下
— utils包
|
|—— network.py.py # 处理与网络相关的功能。
|—— files.py # 处理文件操作的功能。
- 理论上的基本方法单元:不包含捕获语句(try-expect);包含结果输出(bool或其他);
- repository
- 功能类,越简单越好
- 功能1.py
功能1的实现
- 功能2.py
功能2的实现
- service或者service.py
- 功能类自由组合
- 复合功能实现.py
- 对于repository中基本功能单元的自由组合
- main.py(必要)
- 程序入口
- python script在pycharm中的设置位置File->settings->Editor->File and CodeTemplates->Python Script;
- 可将以下代码放入pycharm中的python script,在创建文件时自动生成以下代码;
- 然后在新建的py文件中,运行以下代码,产生必要的头文件,主要目的是记录当前python版本;
# 记录当前python版本
import sys
from datetime import datetime
def generate_file_header(file_path):
current_time = datetime.now().strftime("%d/%m/%Y %I:%M %p")
# 以下为py文件注释内容,可自行修改
header = f"""# -*- coding: utf-8 -*-
# @Time : {current_time}
# @FileName: main.py
# @PythonVersion : {sys.version_info[:2]}
"""
file_path = file_path if file_path.endswith(".py") else file_path + ".py"
with open(file_path, 'w', encoding='utf-8', errors="ignore") as file:
file.write(header)
if __name__ == '__main__':
generate_file_header("""${NAME}""")
config.ini
- 供用户和测试人员修改的程序配置文件
- 前端和后端的接口文件
run.bat
- 程序启动文件
2. 开发组开发前后的交付对象及交付内容
- 开发前:
交付 | 接收 | |
---|---|---|
需求组 | 需求分析文件 | NA |
开发组 | NA | 需求分析文件 |
测试组 | NA | NA |
- 开发完成
交付 | 接收 | |
---|---|---|
需求组 | NA | 填写完成的需求分析文件,readme.md, 测试程序 |
开发组 | 填写完成的需求分析文件,readme.md, 测试程序 | NA |
测试组 | NA | 填写完成的需求分析文件, 测试程序,readme.md |