基于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报告

相关文章
|
4天前
|
敏捷开发 测试技术 持续交付
探索自动化测试框架的设计与实现
【9月更文挑战第36天】在软件开发的海洋中,自动化测试如同一艘能够带领我们高效航行的帆船。本文将引导你理解自动化测试框架的核心概念,并通过一个简化的例子展示如何搭建自己的测试框架。我们将一同揭开自动化测试的神秘面纱,让你从新手成长为能够独立设计和实现测试框架的高手。
|
8天前
|
Web App开发 敏捷开发 数据管理
自动化测试框架的设计与实现
【9月更文挑战第32天】在软件开发的海洋中,自动化测试如同一艘精确导航的船只,确保我们的应用程序能够在波涛汹涌的技术潮流中稳健航行。本文将带你领略自动化测试框架的设计之美,从搭建基础到功能扩展,再到维护实践,我们将一起探索如何打造一个既高效又灵活的自动化测试体系。
14 3
|
24天前
|
敏捷开发 IDE 测试技术
自动化测试框架的选择与应用
【9月更文挑战第16天】在软件开发周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试成为提升软件质量和效率的关键手段。本文将探讨如何根据项目需求选择合适的自动化测试框架,并通过实际案例分析展示其在软件开发过程中的应用。我们将从单元测试、集成测试到端到端测试等多个层面,讨论自动化测试的最佳实践和常见问题解决策略。
|
14天前
|
敏捷开发 Java 测试技术
自动化测试框架的选择与应用
【9月更文挑战第26天】在软件开发的海洋里,自动化测试是那一盏指路明灯。它不仅加快了开发周期,还提升了软件质量。本文将带你探索自动化测试框架的世界,了解它们的核心特性、适用场景及如何根据项目需求做出明智选择。让我们一起启航,找到那把打开高效、稳定软件生产大门的钥匙。
|
14天前
|
敏捷开发 数据管理 测试技术
自动化测试框架的设计与实现
【9月更文挑战第25天】 本文将引导读者深入理解自动化测试框架的核心概念,并展示如何从零开始构建一个简单且有效的自动化测试框架。通过通俗易懂的语言和实际代码示例,我们将探讨测试框架设计的关键步骤、实现方法以及常见问题的解决方案。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
16天前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
|
14天前
|
设计模式 测试技术 持续交付
自动化测试框架的设计与实现
【9月更文挑战第25天】本文旨在探讨如何设计并实现一个高效、可扩展的自动化测试框架,以提升软件测试的效率和质量。通过分析当前流行的测试框架特点,结合最佳实践,提出一套完整的解决方案。文章不仅涵盖框架设计的理论依据,还包括具体实现步骤和示例,帮助读者深入理解自动化测试框架的搭建过程。
|
28天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
128 7
Jmeter实现WebSocket协议的接口测试方法
|
28天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
121 3
快速上手|HTTP 接口功能自动化测试
|
1天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
5 0