基于pytest搭建接口自动化测试框架,提供源码

简介: 基于pytest搭建接口自动化测试框架,提供源码

框架整体介绍和方法教程

第三代框架使用教程,该框架比第二代这个完善了很多

https://blog.csdn.net/aaaaaaaaanjjj/article/details/129597973

新框架(第二代比这个功能多了很多,用例使用yaml编写)

pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计),源码提供

源码框架结构

xmind项目结构介绍

源码地址

喜欢打个星啊,感谢

gitee :https://gitee.com/your_dad_died/bm_pytest_api

github: https://github.com/Theshy0000/bm_pytest_api

使用教程

1.全局变量设置和使用

知识点:使用conftest配合@pytest.fixture()使用在用例所在的文件中不需要导入可以直接使用

2.参数配置

其他文件通过导入进行读取

3.接口参数依赖关联

参数提取:

调用parameter.update_rv()方法设置参数提取 方法源码自选观看

result 为接口返回的完整响应主体内容,通过字典键值提取值,给与这个值赋值给waybillNo这个变量,后续通过waybillNo可以使用这个提取的值。类似于jmeter的提取器

参数使用

upstream_create_waybill_data 这个是接口原始参数,我存放在data文件下

replace_expression 这个为依赖表达式,我直接用变量写的,也可以写在yaml文件下,自己扩展

rv 之前提取的参数所储存的字典

处理参数依赖代码截图

知识点: 我标记的地方先使用了集合去重的特性,最后用列表返回

4.使用效果

注意:在上面的原数据截图中 “waybillNo”:“Y22011101026000006”,经过替换变了。原始数据的’id’:1111也被替换

5.日志使用

源码

颜色文件存储位置,储存文件日志级别日志名称等

使用

from tool.log import logger

logger.info()等,上面都有打印到控制台的截图

6.requests二次简单封装

源码

直接写了get和post的2种方法,现在常用的就这2个,大部分都是post,提前把ip,headers信息提前封装,针对公司业务封装上下游企业

使用

 post方式: result = requests.post('/waybill/createWaybill', upstream_create_waybill_data).json()
 get方式:  result = requests.get('/waybill/generateWaybillNo').json()

7.yaml_.py教程

源码:

实现读和写,判断文件不存在则新建后读写

写使用

我这里使用了’a’ 操作文件,追加

写的效果

读使用

8.mysql_.py教程

源码

self.cur = self.db.cursor(cursor=pymysql.cursors.DictCursor) 设置以字典的格式返回查询数据

先创建数据库连接,在进行非查询操作时操作完sql语句后需要提交self.db.commit(),如果发生错误就进行回滚self.db.rollback()

使用

知识点 f’{}’ 这是python新语法,等同于format()

9.pytest.ini配置使用

(之前这些和pytest好像没啥关系啊,都自己写的方法)
更改默认运行pytest命令 其他参数百度
addopts = -vs --alluredir ./report/allure_raw --durations=0 
--alluredir ./report/allure_raw  设置报告原始数据的目录
设置运行用例目录
testpaths = case 
设置标签,可以根据标签来运行指定用例
markers =
  waybill : run waybill case  -m waybill
  bill :run bill case  -m bill

10.运行文件

import pytest
import os
import shutil
if __name__ == '__main__':
    try:
        # 删除之前的文件夹
        shutil.rmtree("report/allure_raw")
    except:
        print('之前未生成报告原文件')
    pytest.main([])
    #编译报告原文件并启动报告服务
    os.system('allure serve report/allure_raw')

11.参数自动化使用

12.allure报告

相关文章
|
11月前
|
设计模式 前端开发 测试技术
告别脆弱:构建稳定UI自动化测试的3个核心策略
告别脆弱:构建稳定UI自动化测试的3个核心策略
927 113
|
12月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
11月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
534 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
11月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
1141 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
12月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
907 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
|
12月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
583 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
12月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
641 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
12月前
|
自然语言处理 前端开发 测试技术
使用 Playwright MCP 实现 UI 自动化测试
本文介绍如何结合Playwright与MCP协议实现智能化UI自动化测试。通过自然语言指令控制浏览器,降低技术门槛,提升效率,并涵盖环境搭建、核心功能、实战案例及最佳实践,展现对话式自动化的未来趋势。
|
12月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
737 0