【pytest】编写自动化测试用例命名规范README

API_autoTest

项目介绍

1. pytest命名规范

  • 测试文件:

文件名需要以 test_ 开头或者以 _test.py 结尾。例如,test_login.py、user_management_test.py 这样的命名方式,pytest 能够自动识别并将其作为测试文件来执行其中的测试用例。

  • 测试类:

如果在测试文件中定义测试类,类名要以 Test 开头,并且类名不能包含 init 方法。

class TestCalculator:def test_addition(self):result = 1 + 2assert result == 3
  • 测试函数:

函数名同样要以 test_ 开头。

def test_subtraction():result = 5 - 3assert result == 2

2. 注释书写:

方法、类的注释书写,写到方法内,或者类内,使用三个单引号,或者3双引号
方便其他人不进入方法就能查看,可以带参数,跟返回值
例如:

     """将测试结果记录下来。: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用例,自动化测试用例名称命名规范:

  1. 对应jira用例的编号数字(有几个写几个,编号之间用&关联);
  2. 市场:OTC(场外)、IB(银行间)、SH(上交所)、SZ(深交所)、BJ(北交所)、FB(非标)、Clearing(清算结算)、CR(合规风控)、Public(公共基础)、STATs(统计报表)
  3. 券商:GT(国泰君安)、EB(光大证券)等
  4. 证券类别:fund(基金)、stock(股票)、bond(债券)、repo(协议正回购)、reverse-repo(协议逆回购)、SPV(资管计划)、Ge-repo(通用正回购)、Ge-reverse-repo(通用逆回购)等
  5. 委托方向:sub(申购)、redeem(赎回)、buy(买)等
  6. 在后面加其他想加的信息。举例:O45_21966&21967_SH-GT-fund-buy-XXX_test.py
  • 用例文件命名中一定要带着jira的用例号
  • 不允许不带不带jira号的_test文件提交git
  • jira号的前后都是 下划线 _,如果多个jira号,中间为&连接
  • 数据分离的excel的命名规则;和测试用例的名称一致。

6. git提交忽略文件

.gitignore

# 忽略 Python 编译后的文件
__pycache__/
*.pyc
*.pyo
*.pyd# 忽略 Excel 打开后的临时文件
~$*.xlsx
~$*.xls# 忽略 PyCharm 相关文件
.idea/
*.iml# 忽略 log 文件
*.log

7.其他注意事项

  1. 增加新文件,备注写清楚这个文件是做什么的(实现了什么事)
  2. 增加新方法,最好写清楚备注,入参,返回值信息,例如:

def get_run_id(cycle_id, issuenum):"""获取运行run_id:param cycle_id: 测试周期id:param issuenum: 用例编号:return:返回  需要运行用例的id,也就是说这个run_id + 运行状态,能改变用例状态显示结果"""#  根据测试周期id,用例编号id# 查询,运行run_idselect = "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])
  1. 复杂业务逻辑模块一定要写清楚备注,方便自己后面回来查看,也方便别人理解
  2. 提交git时【commit】会展示要提交的详情,编译后的文件不要提交,只提交以.py/.xlsx/.xls/.yml这种后缀的
  3. 测试文件/代码 不要提交
  4. py文件中自己测试部分的代码,注释再后提交
  5. commit提交后,一定要记得push
  6. 如果提交git时,提示提交不了,可以重新在自己桌面建个新文件夹,在新文件夹中重拉代码(目的重新建议与git最新的代码的映射关系),将自己修改后的代码放到新文件夹中(不要覆盖!选跳过替换),与git文件有冲突的部分一定要合并代码后再提交

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows桌面系统管理5:Windows 10操作系统注册表

Windows桌面系统管理0:总目录-CSDN博客 Windows桌面系统管理1:计算机硬件组成及组装-CSDN博客 Windows桌面系统管理2:VMware Workstation使用和管理-CSDN博客 Windows桌面系统管理3:Windows 10操作系统部署与使用-CSDN博客 Wi…

llama.cpp将sensor格式的大模型转化为gguf格式

前言 ollama本地只能导入gguf格式的大模型文件,将safetensors 文件转化为gguf格式。需要使用 llama.cpp 这个开源工具。以下是使用 llama.cpp 转换 .safetensors 格式模型到 .gguf 格式的详细步骤: 1. 首先克隆并编译 llama.cpp: 克隆项目 git clone https://gi…

【运维】源码编译安装cmake

背景: 已经在本地源码编译安装gcc/g,现在源码安装cmake 下载源码 下载地址:CMake - Upgrade Your Software Build System 安装步骤: ./bootstrap --prefix/usr/local/cmake make make install 错误处理 1、提示找不到libmpc.…

如何通过AI优化敏捷开发中的任务管理与分配?

用ChatGPT做软件测试 在现代软件开发中,敏捷开发(Agile)已成为一种广泛采用的开发方法论,其核心思想是强调快速响应变化、与客户的持续沟通以及团队协作的高效性。然而,随着项目规模的不断扩大,敏捷开发面临…

petalinux高版本设置自动登录和开机自启动配置

petalinux-config -c rootfs 依次选择 Image Features -> serial-autologin-root 这是配置 进来就是root权限 创建并安装名为 myapp-init 的新建应用程序 petalinux-create -t apps --template install -n myapp-init --enable 编辑 project-spec/meta-user/recipes-…

STM32 USB 设备的描述信息作用

在使用 STM32 USB 功能时 usbd_desc.c 文件中定义了一段宏,以下解每段宏的用途。 #define USBD_VID 1155 #define USBD_LANGID_STRING 1033 #define USBD_MANUFACTURER_STRING "STMicroelectronics" #define US…

React通用登录/注销功能实现方案(基于shadcn/ui)

React通用登录/注销功能实现方案(基于shadcn/ui) 一、功能需求分析二、通用功能封装1. 通用登录表单组件2. 认证Hook封装 三、功能使用示例1. 登录页面实现2. 用户菜单实现 四、路由保护实现五、方案优势 一、功能需求分析 需要实现以下核心功能&#x…

jEasyUI 创建学校课程表

jEasyUI 创建学校课程表 引言 随着信息技术的飞速发展,教育行业也迎来了数字化转型的浪潮。学校课程表的创建和管理作为教育信息化的重要组成部分,其效率和准确性直接影响到学校的教学秩序。jEasyUI,作为一款优秀的开源UI框架,凭借其易用性、灵活性和丰富的组件,成为了许…

Linux 内核中的 container_of 宏:以 ipoib_rx_poll_rss 函数为例

在 Linux 内核编程中,container_of 是一个非常实用的宏,主要用于通过结构体的成员指针来获取包含该成员的整个结构体的指针。rx_ring = container_of(napi, struct ipoib_recv_ring, napi); 在代码中就是利用了这个宏,下面我们详细分析它的作用和工作原理。 背景知识 在内…

【论文学习】RVS-FDSC:一种基于四方向条带卷积的视网膜血管分割方法以增强特征提取

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言论文论文内容RSC模块MSPF2 模块RPDA模块 实验效果 总结互动致谢参考往期回顾 前言…

蓝桥杯篇---IAP15F2K61S2矩阵键盘

文章目录 前言简介矩阵键盘的工作原理1.行扫描2.检测列状态3.按键识别 硬件连接1.行线2.列线 矩阵键盘使用步骤1.初始化IO口2.扫描键盘3.消抖处理4.按键识别 示例代码:4x4矩阵键盘扫描示例代码:优化后的矩阵键盘扫描注意事项1.消抖处理2.扫描频率3.IO口配…

【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑲】

ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase19 作者:车端域控测试工程师 更新日期:2025年02月19日 关键词:UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-019测试用例 用例ID测试场景验证要点参考条款预期结果TC…

Vue 3 30天精进之旅:Day 29 - 项目实战

在学习了近一个月的Vue 3知识后,今天是我们学习旅程的第29天。在这一天,我们将专注于实践,通过一个小型项目来巩固之前的学习成果,并为之后的展示做好准备。 一、项目目标 我们将构建一个简单的个人博客应用,具备以下…

Windows Docker运行Implicit-SVSDF-Planner

Windows Docker运行GitHub - ZJU-FAST-Lab/Implicit-SVSDF-Planner: [SIGGRAPH 2024 & TOG] 1. 设置环境 我将项目git clone在D:/Github目录中。 下载ubuntu20.04 noetic镜像 docker pull osrf/ros:noetic-desktop-full-focal 启动容器,挂载主机的D:/Github文…

PHP 安全与加密:守护 Web 应用的基石

PHP 学习资料 PHP 学习资料 PHP 学习资料 在当今数字化时代,Web 应用无处不在,而 PHP 作为一种广泛使用的服务器端脚本语言,承载着无数网站和应用的核心逻辑。然而,随着网络攻击手段日益复杂,PHP 应用面临着诸多安全…

Qt中使用QPdfWriter类结合QPainter类绘制并输出PDF文件

一.类的介绍 1.QPdfWriter介绍 Qt中提供了一个直接可以处理PDF的类,这就是QPdfWriter类。 (1)PDF文件生成 支持创建新的PDF文件或覆盖已有文件,通过构造函数直接绑定文件路径或QFile对象; 默认生成矢量图形PDF&#…

Golang GORM系列:GORM无缝集成web框架

高效的数据管理是每个成功的web应用程序的支柱。GORM是通用的Go对象关系映射库,它与流行的Go web框架搭配得非常好,提供了无缝集成,简化了数据交互。本指南将带你探索GORM和web框架(如Gin, Echo和Beego)之间…

SAM C++ TensorRT(实时图像分割)

SPEED SAM C TENSORRT 🌐 1、概述 用于SAM(segment anything model分割一切模型)的TensorRT和CUDA优化的高表现C实现,特别适用于实时图像分割任务。 📢 更新 模型转换:从ONNX模型构建TensorRT引擎以加速…

【LLAMA】羊驼从LLAMA1到LLAMA3梳理

every blog every motto: Although the world is full of suffering, it is full also of the overcoming of it 0. 前言 LLAMA 1到3梳理 1. LLAMA 1 论文: LLaMA: Open and Efficient Foundation Language Models 时间: 2023.02 1.1 前言…

什么是网络安全?网络安全防范技术包括哪些?

伴随着互联网的发展,它已经成为我们生活中不可或缺的存在,无论是个人还是企业,都离不开互联网。正因为互联网得到了重视,网络安全问题也随之加剧,给我们的信息安全造成严重威胁,而想要有效规避这些风险&…