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

相关文章
|
13天前
|
测试技术 UED Python
探索软件测试的边界:自动化与手动测试的协同
【8月更文挑战第59天】在追求效率和质量的软件生产中,自动化测试与手动测试的辩论从未停止。本文将通过实际案例,揭示二者如何相辅相成,共同构建更健壮的软件测试体系。我们将深入探讨自动化测试的优势、手动测试不可替代的角色以及它们如何在实际项目中协同工作,旨在为读者提供一种平衡的视角来看待软件测试的实践。
110 65
|
28天前
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
55 6
基于Python访问Hive的pytest测试代码实现
|
4天前
|
敏捷开发 测试技术 持续交付
探索自动化测试框架的设计与实现
【9月更文挑战第36天】在软件开发的海洋中,自动化测试如同一艘能够带领我们高效航行的帆船。本文将引导你理解自动化测试框架的核心概念,并通过一个简化的例子展示如何搭建自己的测试框架。我们将一同揭开自动化测试的神秘面纱,让你从新手成长为能够独立设计和实现测试框架的高手。
|
8天前
|
Web App开发 敏捷开发 数据管理
自动化测试框架的设计与实现
【9月更文挑战第32天】在软件开发的海洋中,自动化测试如同一艘精确导航的船只,确保我们的应用程序能够在波涛汹涌的技术潮流中稳健航行。本文将带你领略自动化测试框架的设计之美,从搭建基础到功能扩展,再到维护实践,我们将一起探索如何打造一个既高效又灵活的自动化测试体系。
14 3
|
24天前
|
敏捷开发 IDE 测试技术
自动化测试框架的选择与应用
【9月更文挑战第16天】在软件开发周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试成为提升软件质量和效率的关键手段。本文将探讨如何根据项目需求选择合适的自动化测试框架,并通过实际案例分析展示其在软件开发过程中的应用。我们将从单元测试、集成测试到端到端测试等多个层面,讨论自动化测试的最佳实践和常见问题解决策略。
|
14天前
|
敏捷开发 Java 测试技术
自动化测试框架的选择与应用
【9月更文挑战第26天】在软件开发的海洋里,自动化测试是那一盏指路明灯。它不仅加快了开发周期,还提升了软件质量。本文将带你探索自动化测试框架的世界,了解它们的核心特性、适用场景及如何根据项目需求做出明智选择。让我们一起启航,找到那把打开高效、稳定软件生产大门的钥匙。
|
15天前
|
敏捷开发 数据管理 测试技术
自动化测试框架的设计与实现
【9月更文挑战第25天】 本文将引导读者深入理解自动化测试框架的核心概念,并展示如何从零开始构建一个简单且有效的自动化测试框架。通过通俗易懂的语言和实际代码示例,我们将探讨测试框架设计的关键步骤、实现方法以及常见问题的解决方案。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
2天前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
6 0
|
29天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
32 5
|
15天前
|
设计模式 测试技术 持续交付
自动化测试框架的设计与实现
【9月更文挑战第25天】本文旨在探讨如何设计并实现一个高效、可扩展的自动化测试框架,以提升软件测试的效率和质量。通过分析当前流行的测试框架特点,结合最佳实践,提出一套完整的解决方案。文章不仅涵盖框架设计的理论依据,还包括具体实现步骤和示例,帮助读者深入理解自动化测试框架的搭建过程。