API_autoTest
项目介绍
1. pytest命名规范
测试文件:
文件名需要以 test_ 开头或者以 _test.py 结尾。例如,test_login.py、user_management_test.py 这样的命名方式,pytest 能够自动识别并将其作为测试文件来执行其中的测试用例。
测试类:
如果在测试文件中定义测试类,类名要以 Test 开头,并且类名不能包含 init 方法。
python
class TestCalculator:
def test_addition(self):
result = 1 + 2
assert result == 3
测试函数:
函数名同样要以 test_ 开头。
python
def test_subtraction():
result = 5 - 3
assert result == 2
2. 注释书写:
方法、类的注释书写,写到方法内,或者类内,使用三个单引号,或者3双引号
方便其他人不进入方法就能查看,可以带参数,跟返回值
例如:
python
"""将测试结果记录下来。
:param a: 参数a
:param b: 参数b
:return: 计划id
"""
3. pycharm常用快捷键,windows版-mac请自行查询
- ctrl+alt+o,导入删除无效的引用包
- ctrl+A, ctrl+alt+L,全选,格式化代码
- ctrl+shift+F ,全局搜索【与windows的繁体切换冲突,可禁用繁体切换】
4. 目录结构
- com :存放公共方法
- config :统一,存放配置文件。env.yml - 环境配置文件
- file : 项目用到文件。
- photo : 项目用到的图片
- pytest.ini : pytest参数配置
- test_API : 具体请求接口文件夹
- allure-report : allure报告地址
- conftest.py : 统一配置,接口启动+结束设置
- run.py : 启动文件
5. pytest关联jira用例,自动化测试用例名称命名规范:
- 对应jira用例的编号数字(有几个写几个,编号之间用&关联);
- 市场:OTC(场外)、IB(银行间)、SH(上交所)、SZ(深交所)、BJ(北交所)、FB(非标)、Clearing(清算结算)、CR(合规风控)、Public(公共基础)、STATs(统计报表)
- 券商:GT(国泰君安)、EB(光大证券)等
- 证券类别:fund(基金)、stock(股票)、bond(债券)、repo(协议正回购)、reverse-repo(协议逆回购)、SPV(资管计划)、Ge-repo(通用正回购)、Ge-reverse-repo(通用逆回购)等
- 委托方向:sub(申购)、redeem(赎回)、buy(买)等
- 在后面加其他想加的信息。举例:O45_21966&21967_SH-GT-fund-buy-XXX_test.py
- 用例文件命名中一定要带着jira的用例号
- 不允许不带不带jira号的_test文件提交git
- jira号的前后都是 下划线 _,如果多个jira号,中间为&连接
- 数据分离的excel的命名规则;和测试用例的名称一致。
6. git提交忽略文件
.gitignore
bash
# 忽略 Python 编译后的文件
__pycache__/
*.pyc
*.pyo
*.pyd
# 忽略 Excel 打开后的临时文件
~$*.xlsx
~$*.xls
# 忽略 PyCharm 相关文件
.idea/
*.iml
# 忽略 log 文件
*.log
7.其他注意事项
- 增加新文件,备注写清楚这个文件是做什么的(实现了什么事)
- 增加新方法,最好写清楚备注,入参,返回值信息,例如:
python
def get_run_id(cycle_id, issuenum):
"""获取运行run_id
:param cycle_id: 测试周期id
:param issuenum: 用例编号
:return:返回 需要运行用例的id,也就是说这个run_id + 运行状态,能改变用例状态显示结果
"""
# 根据测试周期id,用例编号id
# 查询,运行run_id
select = "SELECT run.ID FROM ao_69e499_testcycle cycle JOIN " \
"ao_69e499_testrun run ON run.TEST_CYCLE_ID=cycle.ID JOIN " \
"jiraissue issue ON issue.ID=run.TC_ID WHERE cycle.ID = %s and issue.issuenum = %s"
arg = [cycle_id, issuenum]
result = DBmysql().select(select, arg)
return str(result[0][0])
- 复杂业务逻辑模块一定要写清楚备注,方便自己后面回来查看,也方便别人理解
- 提交git时【commit】会展示要提交的详情,编译后的文件不要提交,只提交以.py/.xlsx/.xls/.yml这种后缀的
- 测试文件/代码 不要提交
- py文件中自己测试部分的代码,注释再后提交
- commit提交后,一定要记得push
- 如果提交git时,提示提交不了,可以重新在自己桌面建个新文件夹,在新文件夹中重拉代码(目的重新建议与git最新的代码的映射关系),将自己修改后的代码放到新文件夹中(不要覆盖!选跳过替换),与git文件有冲突的部分一定要合并代码后再提交