首页 > 其他分享 >接口自动化测试框架实战-0-项目功能概览

接口自动化测试框架实战-0-项目功能概览

时间:2024-07-22 21:29:42浏览次数:17  
标签:实战 框架 概览 支持 pytest 接口 测试 自动化

熟悉我CSDN的朋友们应该知道,之前已经更新了requests、pytest、allure2、yaml、jenkins、postman等基础知识的合集。相信大家对接口测试已经有了全面的认识,现在应该迫不及待地想要一个实战项目了。接下来的文章中,我们将把这些知识点串联起来,以钉钉开放接口为例,一起从0到1开发一个通用的、可落地的接口自动化测试框架。如果大家有好的意见和建议,欢迎在评论区一起讨论!

背景

  • 微服务架构:现代应用程序越来越多地采用微服务架构,其中服务之间通过 API 进行通信。这增加了对 API 测试的需求。
  • 持续集成/持续部署(CI/CD):在 CI/CD 流程中,自动化测试是确保代码质量的关键环节。接口自动化测试可以快速验证代码更改是否符合预期。
  • 敏捷开发:敏捷开发强调快速迭代和频繁发布。自动化接口测试可以减少回归测试的时间,加快发布周期。
  • 技术栈多样性:不同的团队可能使用不同的技术栈开发服务。接口自动化测试框架通常与技术栈无关,可以统一测试标准。

作用

  • 提高测试效率:自动化测试可以快速执行大量测试用例,提高测试效率。
  • 减少人为错误:自动化测试减少了手动测试过程中可能出现的人为错误。
  • 实时反馈:自动化测试可以提供即时的测试结果,帮助开发团队快速定位问题。
  • 回归测试:在软件迭代过程中,自动化测试可以确保新代码不会破坏现有功能。
  • 负载测试:接口自动化测试可以模拟高并发请求,评估系统的性能。
  • 安全性测试:自动化测试可以检测 API 安全漏洞,如输入验证、认证和授权问题。
  • 文档验证:自动化测试可以验证 API 的实际行为是否与文档描述一致。
  • 跨团队协作:接口自动化测试框架可以作为不同团队之间协作的基础,确保接口的一致性和可用性。

意义

  • 质量保证:接口自动化测试是确保软件质量的重要手段。
  • 风险降低:通过早期发现问题,减少后期修复的成本和风险。
  • 敏捷性提升:自动化测试支持快速迭代和部署,提高团队的敏捷性。
  • 资源优化:释放测试人员从重复性工作中,让他们专注于更复杂的测试场景。
  • 业务支持:通过快速响应开发变更,更好地支持业务需求。
  • 技术进步:随着 AI 和机器学习技术的发展,接口自动化测试框架可以变得更加智能和高效。

功能概览

  • 运行环境:支持windows/mac/linux
  • 接口协议:支持http/https协议
  • 测试环境:支持test/stg/prod环境切换
  • 接口场景:支持单接口/场景接口
  • 数据库:支持mysql/mongod增删改查操作
  • 数据驱动:支持yaml/ini/db等三种类型驱动
  • 参数化:支持动态模版替换
  • 用例框架:支持pytest用例
  • json提取:支持jmespath表达式
  • 用例断言:支持等于/不等于/大于/小于/包含/不包含/True/False/长度等于/长度不等于/开头/结尾/数据库/正则匹配等10几种常见的断言
  • 测试报告: 支持allure2报告定制
  • 失败重试:支持
  • 用例并发执行:支持
  • 日志记录:支持控制台和文件输出
  • 代码托管:支持github/gitlab
  • 接口文档:钉钉开放接口文档(支持同学们本地调用调试)
  • 持续集成:支持jenkins参数化构建/定时任务/关联任务
  • 消息通知: 支持钉钉/飞书/企业微信/邮件等4种方式的测试结果通知

框架设计

主要技术栈:python3+requests+pytest+yaml+jmespath+allure2+github+jenkins

框架目录

commons:通用方法层,包括测试引擎、文件读写、数据库操作、业务封装、断言封装、报告增强、日志封装

config:配置文件层,test/stg/prod3个环境分开管理,其中有xxx_config.yaml和db.ini 分别为接口和数据库的配置信息

data:数据文件层,test/stg/prod3个环境分开管理,其中有xxxx_api.yaml为接口的测试数据模版

logs:日志记录层,按照时间维度记录接口测试执行的日志

reports:测试报告层,allure_results为测试结果数据,allure_reports为测试报告,status.txt为简要测试结果,后续供jenkins调用

tests:测试用例层,按照微服务分目录,新建测试用例py文件

utils:工具层,邮件/钉钉/飞书/企业微信结果通知封装

venv:项目虚拟环境

environment.properties:allure2报告环境信息配置

conftest.py:pytest钩子函数

debug.py:项目调试函数

pytest.ini:pytest配置文件

requirements.txt: 项目依赖包管理文件

总结

接口自动化测试框架是现代软件开发不可或缺的一部分,它帮助团队提高软件交付的速度和质量,同时降低风险和成本。随着技术的不断进步,接口自动化测试框架将继续发展,为软件开发带来更多的可能性。

标签:实战,框架,概览,支持,pytest,接口,测试,自动化
From: https://blog.csdn.net/qq_22357323/article/details/140619822

相关文章

  • SQL实战宝典:快速上手数据库查询与优化
    文章目录SQL速成手册SQL的主要功能1、基本查询语句2、表操作语句3、数据操作语句4、函数与聚合操作5、子查询与联接6、高级操作7、性能优化与安全性基本查询语句表操作语句数据操作语句函数与聚合操作子查询与联接高级操作性能优化与安全性SQL速成手册SQL(Struct......
  • 一文详细梳理!大模型从理论到实战落地必备干货!
    在人工智能的浩瀚星辰中,大模型犹如璀璨的北极星,引领着技术的前沿方向。它们不仅代表了深度学习领域的最新突破,更成为了推动各行各业智能化转型的关键力量。本文笔者总结了大模型从理论研究到实战落地所需具备的所有知识干货,与大家分享~基础知识数学深入浅出动态可视化数......
  • 后端API接口定义返回编码规则
    code状态码code返回状态码,一般小伙伴们是在开发的时候需要什么,就添加什么。如接口要返回用户权限异常,我们加一个状态码为101吧,下一次又要加一个数据参数异常,就加一个102的状态码。这样虽然能够照常满足业务,但状态码太凌乱了。我们应该可以参考HTTP请求返回的状态码(下面是常见的......
  • 蓝牙协议栈概览
    https://www.jianshu.com/p/29af94dc518chttps://wlink.blog.csdn.net/article/details/107727900 蓝牙底层结构HW层:蓝牙芯片层RF(RADIO):射频层,本地蓝牙数据通过射频信号发送给空中设备,并通过射频接收来自空中的蓝牙信号和数据BB(BASEBAND):基带层,射频信号和数字(音频)信......
  • 卷积神经网络CNN实战:MINST手写数字识别——数据集下载与网络训练
    数据集下载这一部分比较简单,就不过多赘述了,把代码粘贴到自己的项目文件里,运行一下就可以下载了。fromtorchvisionimportdatasets,transforms#定义数据转换,将数据转换为张量并进行标准化transform=transforms.Compose([transforms.ToTensor(),#转换为张量......
  • 位运算知识点概览
    前言计算机位运算是处理整数值的基本操作,直接在二进制位上进行操作。理解位运算的要点对于编程和优化代码非常有用。以下是位运算的主要操作和一些常见的应用:1.基本位运算操作与运算(AND)&将两个数的对应位进行逻辑与操作。例子:0101&0011=0001或运算(OR)|将两个数的对......
  • PHP银行卡实名认证接口对接、银行卡识别
    在这个数字时代,每一张银行卡都承载着你的故事,它是你辛勤汗水的见证,是你生活品质的保障。就像你的身份证一样,银行卡也需要“实名认证”,这不仅仅是一次信息的匹配,更是对个人财产安全的一份承诺。随着市场需求的不断增多,翔云银行卡实名认证接口应用而生,可根据银行卡号、身份......
  • PHP身份证实名认证接口集成守护电商购物
    在这个万物互联的世界里,网购已成为日常生活中不可或缺的一部分。然而,随着线上交易的增加,如何保护消费者和商家免受欺诈,确保每一笔交易的安全,成了亟待解决的难题。这时,身份证实名认证接口应运而生,它就像一把金钥匙,开启了电商领域信任与安全的大门。想象一下,当你在心仪的商......
  • 实战:ForkJoinPool对大文件导入技术优化指南
    1、ForkJoinPool简介Fork/Join框架是Java7提供了的一个用于并行执行任务的框架。ForkJoinPool是Java中提供了一个线程池,特点是用来执行分治任务。主题思想是将大任务分解为小任务,然后继续将小任务分解,直至能够直接解决为止,然后再依次将任务的结果合并。ForkJoinPool是一种工......
  • 纳米体育数据API电竞数据接口:指数数据包接口文档API示例①
    纳米体育数据的数据接口通过JSON拉流方式获取200多个国家的体育赛事实时数据或历史数据的编程接口,无请求次数限制,可按需购买,接口稳定高效;覆盖项目包括足球、篮球、网球、电子竞技、奥运等专题、数据内容。纳米数据API2.0版本包含http协议以及websocket协议,主要通过http获取数......