【项目一】基于pytest的自动化测试框架day1
day1不涉及编写代码,只简单梳理接口测试相关的概念。
- day1
- 接口测试的本质:功能测试的一部分
- 测试用例的设计与实现
- 接口调试与自动化:从postman到持续集成
- 补充概念
day1
接口测试的本质:功能测试的一部分
接口测试是功能测试的一部分,本质是将测试的对象从用户界面转移到了应用程序接口上。
测试用例的设计与实现
接口测试的第一步,从来都是获取接口文档。一个完整的接口文档通常包含以下几部分
- 接口名词
- 接口地址
- 请求方法(GET,POST,PUT,DELETE等)
- 请求头信息
- 请求参数(必选参数与可选参数)
- 返回值以及数据结构
测试用例的设计围绕如何验证接口的功能暂开,通常从以下几个方面入手:
- 单接口测试:验证某一个接口在不同参数组合下的行为是否符合预期。测试点包括:
- 正向测试:使用正确的参数进行请求,验证返回值是否符合预期。
- 反向测试:使用错误或异常参数进行请求,验证接口是否能正确处理异常情况。
- 边界测试:例如对于要求固定长度的参数(如身份证号),测试其在不同长度下的响应情况。
- 业务逻辑测试:验证多个接口之间的协同工作。例如商品下单流程设计多个接口,如库存检查、订单创建、支付确认等。这些接口之间存在依赖关系,测试是需要保证每个步骤的返回值都正确传递给下一个接口。
接口调试与自动化:从postman到持续集成
postman、jmeter等可以帮助我们快速验证接口的功能。通过这些工具,可以确认接口是否正常工作,参数是否正确传递,以及返回值是否符合预期。自动化测试的实现通常是将手动测试的步骤脚本化,并在代码中实现。
例如,使用python的requests库,可以轻松地编写自动化测试脚本,并将这些脚本集成到持续集成(CI)系统中,如Jenkins、GitLab CI等。通过CI,我们可以设定每日定时执行测试,并将测试结果推送到团队的沟通工具(如钉钉、Slack)中,确保所有成员都能及时了解到项目的健康状态。
补充概念
DevOps:
一种将开发、运维结合的文化和实践方法。其目标是通过协作和自动化来提高软件交付的速度、频率和可靠性。DevOps 强调持续交付(CD)和持续部署(CI/CD),即通过自动化构建、测试和部署,确保代码能够快速、安全地推向生产环境。
自动化测试在DevOps中的作用:
自动化测试在 DevOps 流程中至关重要。通过自动化测试,可以在每次代码变更后立即验证其正确性,减少引入新 bug 的风险。自动化测试的主要作用包括:
- 回归测试:确保新代码不会破坏已有功能
- 持续集成:在每次代码提交时自动运行测试,快速发现和修复问题
- 持续交付:确保代码在交付前通过所有测试,从而减少部署后的问题
DevOps工具链中的自动化测试:
在 DevOps 工具链中,自动化测试通常与持续集成/持续交付工具结合使用。例如,Jenkins 是一个广泛使用的 CI/CD 工具,它可以自动化地构建、测试和部署代码。通过 Jenkins,测试工程师可以设置流水线,在代码每次变更时自动运行测试并生成报告。
测试驱动开发(TDD):
测试驱动开发(TDD)是一种软件开发流程,强调先编写测试用例,然后编写最小量的代码来通过这些测试,流程通常是:
- 编写一个失败的测试:根据需求编写一个测试用例,测试当前未实现的功能。
- 编写通过测试的代码:编写代码通过刚刚的测试。
- 重构:优化代码,同时确保所有测试继续通过。
TDD有助于确保代码的每个部分都是经过测试的,并且开发人员能够在早期阶段发现问题。
行为驱动开发(BDD):
行为驱动开发是一种在TDD基础上发展出来的开发流程。BDD强调在开发前,开发人员、测试人员和业务人员共同定义系统的行为,即用户故事。BDD 通常使用自然语言编写测试用例,使其更容易被非技术人员理解。例如:
• “当用户登录成功后,应该跳转到主页。”
BDD 的主要工具包括 Cucumber 和 Behave,这些工具允许测试用例以人类可读的形式编写,并且能够自动运行。
从TDD/BDD到CI/CD:
现代软件开发往往将TDD或BDD与CI/CD流程结合起来,以实现高效的测试和交付。具体流程如下:
- TDD/BDD流程:开发人员在编写代码之前,首先编写测试(TDD)或行为描述(BDD)
- 持续集成(CI):每次代码提交后,CI工具(如jenkins)自动运行所有测试,确保代码符合预期
- 持续交付/持续部署(CD):通过CI工具,代码在所有测试通过之后被自动部署到生产环境,或准备好进行手动部署。
相关文章:
【项目一】基于pytest的自动化测试框架day1
day1不涉及编写代码,只简单梳理接口测试相关的概念。 day1接口测试的本质:功能测试的一部分测试用例的设计与实现接口调试与自动化:从postman到持续集成补充概念 day1 接口测试的本质:功能测试的一部分 接口测试是功能测试的一部…...
如何下载和安装 Notepad++
Notepad 是一款功能强大的开源文本编辑器,广泛用于代码编写和文本编辑。以下是 Notepad 的下载安装教程: 下载 Notepad 访问官方网站 打开你的网络浏览器,访问 Notepad 的官方网站:https://notepad-plus-plus.org/ 选择下载选项…...
笔记:如何使用Process Explorer分析句柄泄露溢出问题
一、目的:如何使用Process Explorer分析句柄泄露溢出问题 使用 Process Explorer 分析句柄泄漏问题是一个非常有效的方法。句柄泄漏通常是由于应用程序在创建系统资源(如文件、注册表项、GDI 对象等)后没有正确释放这些资源。以下是使用 二、…...
HTTP/2
http相关知识点 HTTP/2是超文本传输协议(HTTP)的第二个主要版本,旨在解决HTTP/1.x版本中存在的一些性能限制和效率问题。HTTP/2由互联网工程任务组(IETF)的HTTP工作组开发,最终在2015年作为RFC 7540正式发…...
如何在算家云搭建ComfyUI(AI绘画)
一、ComfyUI简介 ComfyUI 是一个强大的、模块化的 Stable Diffusion 界面与后端项目。该用户界面将允许用户使用基于图形/节点/流程图的界面设计和执行高级稳定的扩散管道。该项目部分其它特点如下: 全面支持 SD1.x,SD2.x,SDXL,…...
公司的企业画册如何制作?
企业画册是公司形象和产品服务展示的重要载体,一个制作精良的企业画册不仅能展示公司的实力,也能提升客户对公司专业度的认可。以下是制作企业画册的步骤和要点,帮助你的公司画册既美观又实用。 1.要制作电子杂志,首先需要选择一款适合自己的…...
13、Django Admin创建两个独立的管理站点
admin文件 from .models import Epic, Event, EventHero, EventVillain from django.contrib.admin import AdminSiteclass EventAdminSite(AdminSite):site_header "Events管理"site_title "欢迎您!"index_title "管理员"even…...
使用docker compose一键部署 Openldap
使用docker compose一键部署 Openldap LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是一种用于访问分布式目录服务的网络协议,OpenLDAP 是 LDAP 协议的一个开源实现,由 OpenLDAP 项目提供&#x…...
网站代运维与建设:HTTP虚拟专线的优势
网站代运维与建设:HTTP虚拟专线的优势 企业和个人越来越依赖于网站来展示品牌形象、提供服务和与客户互动。然而,网站的建设和运维往往需要投入大量时间和资金,尤其是在服务器费用和技术维护方面。本文将探讨如何通过使用HTTP虚拟专线来降低…...
奇异递归模板模式(Curiously Recurring Template Pattern)
奇异递归模板模式(Curiously Recurring Template Pattern) - 知乎 (zhihu.com) 本文来自上面的文章!!!本菜鸡学习和记录一下。 CRTP是C模板编程时的一种惯用法:把派生类作为基类的模板参数。 1.静态多态 #include <iostrea…...
【ArcGIS Pro实操第一期】最小成本路径(Least-cost path)原理及实操案例
ArcGIS Pro实操第一期:最小成本路径原理及实操案例 概述(Creating the least-cost path)1.1 原理介绍1.2 实现步骤1.3 应用案例 2 GIS实操2.1 工具箱简介2.1.1 成本路径(Cost path)2.1.2 成本距离(Cost dis…...
探索C++编程技巧:计算两个字符串的最长公共子串
探索C编程技巧:计算两个字符串的最长公共子串 在C面试中,考官通常会关注候选人的编程能力、问题解决能力以及对C语言特性的理解。一个常见且经典的问题是计算两个字符串的最长公共子串(Longest Common Substring, LCS)。本文将详…...
等保2.0--安全计算环境--TiDB数据库
在使用本博客提供的学习笔记及相关内容时,请注意以下免责声明:信息准确性:本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。非专业建议:博客中的内容仅供参考,不能替代专业人士的意见和建议。在做出任何重要决…...
【unity实战】使用新版输入系统Input System+Rigidbody实现第三人称人物控制器(附项目源码)
最终效果 前言 使用CharacterController实现3d角色控制器,之前已经做过很多了: 【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡、物理碰撞效果,复制粘贴即用 【unity实战】C…...
代码随想录算法训练营Day03 | 链表理论基础、203.移除链表元素 、707.设计链表、206.反转链表
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 链表理论基础203.移除链表元素思路与重点 707.设计链表思路与重点 206.反转链表思路与重点 链表理论基础 C/C的定义链表节点方式: // 单链表 struct L…...
【总结】CSS(SCSS) 不常用属性
1、设置 antd Meta 组件中 title 过长自动换行: .ant-card-meta-title {white-space: normal; /* 允许文本换行 */overflow: visible; /* 防止内容被截断 */text-overflow: clip; /* 禁用文本省略号 */} 2、选择器书写: .QR {&:hover {}} 3、设置文…...
电位计的模拟
该电位计的内部电阻在 270 范围内以“几乎”线性的方式从大约 15 欧姆变化到 220 欧姆。该设备的电流和电阻特性如下表所示: 计算曲线拟合以插入电位计欧姆电阻的非线性趋势非常简单。电位曲线如下: R16.2145((1.55848sqrt(x))*sin((-0.038222)*(-45.77…...
OSI七层网络协议
1、OSI各层数据的名称 7-5,应用层、表示层、会话层都叫做协议数据单元(PDU, Protocol Data Unit)。 4,传输层叫数据段(Segment)。 3,网络层叫数据包/报文(Packet)。 2,数据链路层叫数据帧(Frame)。 1,物理层叫比特流(…...
U盘提示需要格式化才能使用怎么办?教你轻松应对
U盘作为一种便捷的数据存储设备,广泛应用于日常工作和生活中。然而,有时我们会遇到U盘插入电脑后提示需要格式化才能使用的情况,这让人倍感焦虑,因为格式化往往意味着数据丢失。不过,在采取极端措施之前,我…...
Atom编辑器:曾经的效率提升利器,终将被新技术取代
Atom编辑器:曾经的效率提升利器,终将被新技术取代 哪个编程工具让你的工作效率翻倍 ? 那么对我来说答案是 Atom。 作为一名Python开发者,我一直依赖Atom编辑器进行日常编程工作。在漫长的开发旅程中,Atom成为了我代码…...
Pentaho Kettle数据血缘追踪架构深度解析:构建企业级数据治理核心能力
Pentaho Kettle数据血缘追踪架构深度解析:构建企业级数据治理核心能力 【免费下载链接】pentaho-kettle Pentaho Data Integration ( ETL ) a.k.a Kettle 项目地址: https://gitcode.com/gh_mirrors/pe/pentaho-kettle 在复杂的企业数据集成场景中࿰…...
YOLO 11 + Qwen3.5打造一站式视频智能监控分析平台
🧠 整体思路:大小模型协同这套方案的核心在于“大小模型协同”:YOLO11 (小模型 - 感知层):负责底层的实时感知,快速完成目标检测、追踪等任务。Qwen3.5 (大模型 - 认知层):对YOLO11提取的关键信息进行深度理…...
【Debug】从 cv2 导入失败到 numpy + BLAS 根因:一次 conda 虚拟环境重建实录
从 cv2 导入失败到 numpy BLAS 根因:一次 conda 虚拟环境重建实录 表面上看,这是一次 cv2 导入失败的问题;真正追到最后,根因却落在 numpy 初始化底层 BLAS 运行库的阶段。更重要的是,这个问题并不是简单的“环境脏了…...
Java AES/ECB/PKCS5Padding加解密实战:从JCE配置到Base64/Hex输出
Java AES/ECB/PKCS5Padding加解密实战:从JCE配置到Base64/Hex输出 在数据安全日益重要的今天,加密技术已成为开发者必备的技能之一。AES(Advanced Encryption Standard)作为目前最常用的对称加密算法,因其安全性和高效…...
5步掌握Android设备远程控制:py-scrcpy-client实战指南
5步掌握Android设备远程控制:py-scrcpy-client实战指南 【免费下载链接】py-scrcpy-client 项目地址: https://gitcode.com/gh_mirrors/py/py-scrcpy-client 想要在电脑上实时查看和控制Android设备吗?py-scrcpy-client为你提供了完美的解决方案…...
Switch第三方控制器终极解决方案:sys-con完全指南
Switch第三方控制器终极解决方案:sys-con完全指南 【免费下载链接】sys-con Nintendo Switch sysmodule that allows support for third-party controllers 项目地址: https://gitcode.com/gh_mirrors/sy/sys-con 想让您的Xbox和PlayStation手柄在Switch上畅…...
在线溶解氧分析仪 在线溶氧测定仪 在线溶解氧水温分析仪
在线溶解氧分析仪的精准性与稳定性,源于核心参数的科学配置,每一项参数都贴合实际应用场景,确保监测数据可靠、设备运行稳定,具体核心参数如下:测量参数:核心监测溶解氧、水温,可快速、准确记录…...
3步解决Zotero PDF Translate翻译失效的终极指南:快速恢复学术研究工具
3步解决Zotero PDF Translate翻译失效的终极指南:快速恢复学术研究工具 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode…...
Kandinsky-5.0-I2V-Lite-5s开源大模型应用:新闻配图→事件动态还原短视频
Kandinsky-5.0-I2V-Lite-5s开源大模型应用:新闻配图→事件动态还原短视频 1. 从静态到动态的新闻革命 想象一下这样的场景:当你看到一则突发新闻的配图时,不仅能了解事件的基本情况,还能通过短短5秒的视频动态还原关键瞬间。这正…...
Fish Speech 1.5零样本语音克隆实操:10秒参考音频生成中英日韩多语种语音
Fish Speech 1.5零样本语音克隆实操:10秒参考音频生成中英日韩多语种语音 想不想让AI用你朋友的声音说一段话?或者用某个电影角色的音色,为你朗读一段外语新闻?过去,这需要专业的录音设备和复杂的模型训练。但现在&am…...
