基于pytest搭建接口自动化测试框架

  • 框架整体介绍和方法教程
    • 新框架(比这个功能多了很多,用例使用yaml编写)
    • 源码框架结构
    • xmind项目结构介绍
    • 源码地址
    • 使用教程
      • 1.全局变量设置和使用
      • 2.参数配置
      • 3.接口参数依赖关联
        • 参数提取:
        • 参数使用
        • 处理参数依赖代码截图
      • 4.使用效果
      • 5.日志使用
        • 源码
        • 使用
      • 6.requests二次简单封装
        • 源码
        • 使用
      • 7.yaml_.py教程
        • 源码:
        • 写使用
        • 写的效果
        • 读使用
      • 8.mysql_.py教程
        • 源码
        • 使用
      • 9.pytest.ini配置使用
      • 10.运行文件
      • 11.参数自动化使用
      • 12.allure报告

框架整体介绍和方法教程

新框架(比这个功能多了很多,用例使用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 waybillbill :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报告

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

  1. 2023最新pytest+yaml接口自动化测试框架封装总结

    1. 框架封装基础 以下是框架封装的技术基础,打好这些基础的话,能够很轻松地封装出来框架 对于基础还有欠缺的话,建议针对性精进: 1. 扎实的Python语言基础 函数.类 文件读写 处理报错 数据结 ...

  2. 如何搭建接口自动化测试框架?

    为什么要做(自动化)接口测试? 1.由于现在各个系统的复杂度不断上升,导致传统的测试方法成本上升且测试效率大幅下降,而接口测试相对于UI测试更加稳定,且相对容易实现自动化持续集成,可以减少人工回归测试 ...

  3. Python+Pytest+tox 接口自动化测试框架

    目录 前言: 1. 该框架重构自之前的框架 2. 目录截图 一.tox简介和使用介绍 1. tox简介 2. 配置文件tox.ini 二.框架搭建 1. 封装接口请求 2. 配置接口信息 3. 维护测 ...

  4. 基于Python的接口自动化测试框架

    项目背景 公司内部的软件采用B/S架构,目的是进行实验室的数据存储.分析.管理. 大部分是数据的增删改查,但是由于还在开发阶段,所以UI的变化非常快,难以针对UI进行自动化测试,那样会消耗大量的精力与 ...

  5. 接口报params province error_Python3+requests搭建接口自动化测试框架

    01 接口自动化的意义(为什么做这个框架?) 新版本上线时之前版本的功能需要进行回归测试,导致大量的重复性手工测试. 引入自动化测试可以使用自动化技术代替部分手工的回归性测试,解放更多人力做其它更有必 ...

  6. 基于SpringBoot的健身房管理系统(提供源码)

    项目演示地址:http://gym.liujian.cool 项目gitHub源码地址:https://github.com/liujianview/gymxmjpa 项目gitee源码地址:http ...

  7. SpringBoot之从零搭建网站(可提供源码)

    前言 为什么想要搭建这个工作室? 我还记得,在大学的时候,我们往常一样的在学习过着大学生活,同往常一样的解决这某个bug,不停地问度娘,很巧的碰到了一个同行在他的博客中完美的记录了搭建网站的过程,随后 ...

  8. pytest接口自动化测试框架 | 汇总

    视频来源:B站<冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频[软件测试]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...

  9. 接口自动化测试框架搭建:基于python+requests+pytest+allure实现

    目录 一.接口自动化测试框架需要具备什么功能? 二.接口自动化测试框架目录结构 三.日志监控文件的信息 四.搭建具有企业Logo的定制化报告. 众所周知,目前市面上大部分的企业实施接口自动化最常用的有 ...

最新文章

  1. 华为机考HJ17坐标移动
  2. [转载] 杜拉拉升职记——33 360度评估
  3. requests.get(url)执行没反应_翟至宇:执行路上,从未停歇
  4. 2020.5.27 线性规划测试(Lingo实现)
  5. Android 百度地图-实现POI的搜索(搜索周边)附源码
  6. poj 2181 jumping cows
  7. QPushButton/QLabel在鼠标悬浮(划过, hover)、选中(单击, pressed)状态下更换图标样式
  8. centos5.5+NAT+Squid透明代理总结
  9. gulp工具rename
  10. linux performance test
  11. 项目5—中断控制LED下降沿有效与低电平触发
  12. 尚硅谷实战项目---手机影音APP
  13. 学习Python的第一天
  14. 10000小时定律:成为大牛的秘密是什么?
  15. 港科夜闻|「广州粤港澳大湾区研究院」成立,香港科技大学校长史维教授获聘担任研究院顾问...
  16. 国际移动设备识别码IMEI
  17. python tkinter stringvar_关于tkinter StringVar()
  18. 史上最牛的论坛推广方法,论坛推广实战方案!
  19. 江苏省南通中学2021高考成绩查询,南通中学排名前十名,2021年南通中学排名一览表...
  20. H3CTE讲师分享H3C广域网接口和线缆实验

热门文章

  1. 全面屏手机Android,前所未有的新姿态 安卓真全面屏手机推荐
  2. Android Handler消息队列的实现原理
  3. matlab中surf x,matlab中surf什么意思
  4. 容易保:买错保险比不买更可怕!你的保险买对了吗?
  5. maya动画设计课程
  6. C语言的编译,汇编和链接
  7. s8 能刷android p吗,国行三星S8迎重大更新:手机终于能刷卡了
  8. linux命令查看时间属于哪个地区,详解Linux下用date命令查看和计算包含时区的时间戳...
  9. css好看的背景收集
  10. 北上广工程师手机的必装App,为什么是“它”? | 自由职客