当前位置: 首页 > news >正文

搭建接口自动化测试框架python+requests+pytest

  1. 安装python(最好是比较新比较稳定的版本),然后是python的解释器或者叫编译器pycharm
  2. 安装后新建一个项目,以此项目为基础,安装依赖搭建框架。打开pycharm,点击左上角的File->New project->弹出如下界面->在Location中输入项目名称(最好是英文)->在Baes interpret,选择python的版本,点击Creat即可,最好新开一个页面。

3.在新建的项目中安装依赖,直接新建一个文档保存已安装的依赖。

pytest
requests
requests-mock
pyyaml
openpyxl
pandas
pydantic[dotenv]
allure-pytest

点击项目名称,点击鼠标右键,弹出菜单New->file->在输入名称栏输入一个txt文本格式的文件名称,创建后保存以上依赖,可以直接手动批量执行安装以上依赖。

4.安装依赖:点击pycharm底部菜单栏的Terminal,如果没有显示,可以在代码输入栏中点击输入右键,然后选择打开Terminal,输入命令:pip install -r yilai.txt(最后这个文本,是你自己取的文本文件的名称)

5.重写requests

requests:是python中最经典的http客户端。需要实现一下功能
1.日志记录,记录请求响应报文
2.接口mock
3.支撑base_url,实现环境的切换:开发、测试、集成、预生产、生成环境

重写后的代码需要放入一个新的文件夹/包中:点击项目名称,点击鼠标右键,弹出菜单New->python package->在输入名称栏输入一个文件名称.

然后再点击刚才创建的文件名称,点击鼠标右键,弹出菜单New->python file->在输入名称栏输入一个文件名称后保存即可完成。(学习的时候这块重新代码没有,看来只有自己写或者网上找了)

6.基于yaml配置:用于切换测试环境使用

1.创建一个setting类,存储配置
2.从yaml中读取配置

点击重写request的文件名称,点击鼠标右键,弹出菜单New->python file->在输入名称栏输入一个文件名称后保存即可完成(用于保存setting的配置)。(配置文件中的代码后续补充)

注意:

1.日志的配置信息是直接传递给“logging”,不需要存储;
2.日志保存再某个目录下,需要提前创建。

7.创建日志配置文件:点击项目名称,点击鼠标右键,弹出菜单New->file->在输入名称栏输入一个日子配置的yaml文件名称(“settings.yaml”)。

8.创建日志保存文件夹,点击项目名称,点击鼠标右键,弹出菜单New->Directory->在输入名称栏输入记录日志的名称”logs“。

9.加载或者启用配置:

需要编写python代码,点击项目名称,点击鼠标右键,弹出菜单New->python file->在输入名称栏输入一个写python代码的文件名称,是一个固定的名称“conftest.py”(也可自定义名称)。

写代码需要实现的功能:读取yaml配置->配置logging->启用接口mock功能->记录用例的启停->生成allure测试报告;

写代码的过程中需要创建一个执行allure的文件:点击项目名称,点击鼠标右键,弹出菜单New->file->在输入名称栏输入一个“pytest.ini”文件名称,也可自定义名称。

输入代码:#此文件作用:执行pytest传递allure-dir参数

#pytest.ini
[pytest]
addopts==——alluredir=./.allure_result_folder

10.编写用例

10.1创建一个用例文件夹:用来存放用例使用:点击项目名称,点击鼠标右键,弹出菜单New->Directory->在输入名称栏输入一个“testcase”文件名称,也可自定义名称。

10.2创建一个文件用来定义接口,点击用例的文件夹名称,点击鼠标右键,弹出菜单New->python file->在输入名称栏输入一个“conftest”文件名称,也可自定义名称。

10.3编写用例,点击用例的文件夹名称,点击鼠标右键,弹出菜单New->python file->在输入名称栏输入一个“test_user”文件名称,也可自定义名称。

10.4实现数据驱动,需要创建一个ddt的文件,点击项目文件名称,点击鼠标右键,弹出菜单New->Directory->在输入名称栏输入一个“ddt”文件名称,也可自定义名称。

注意:写完用例就可以开始执行了。需要注意此框架需要编写一定的简单代码。并且各种配置中的封装需要自己写。

相关文章:

搭建接口自动化测试框架python+requests+pytest

安装python(最好是比较新比较稳定的版本),然后是python的解释器或者叫编译器pycharm安装后新建一个项目,以此项目为基础,安装依赖搭建框架。打开pycharm,点击左上角的File->New project->弹出如下界面…...

一套rk3588 rtsp服务器推流的 github 方案及记录 -02

整体方案参考上一篇博文 https://blog.csdn.net/qq_31764341/article/details/134810566 本篇博文主要介绍基于RK3588进行硬解码 还是之前的套路,我不生产代码,我只是代码的搬运工,今天我们搬运瑞芯微的官方代码,并记录下来整个调…...

docker运行java程序的Dockerfile

1&#xff0c;docker运行java程序的Dockerfile # 使用基础镜像 FROM alpine:latest # 暴露容器的端口 不会自动将容器的端口映射到宿主机上 docker run -d -p <宿主机端口>:7080 <镜像名称> EXPOSE 9202 EXPOSE 19202 #下载jdk8 RUN apk update && apk a…...

docker数据卷数据卷容器

前言 今天调休在家&#xff0c;随便玩玩&#xff0c;简单做下学习记录 1. 数据卷特点 数据卷在容器启动时初始化&#xff0c;如果容器使用的镜像在挂载点包含了数据&#xff0c;这些数据会被拷贝到新初始化的数据卷中数据卷可以在容器之间共享和重用可以对数据卷里的内容直接…...

使用HTTP协议有哪些风险?HTTP与HTTPS的区别是什么

作为两种常见的网络协议&#xff0c;HTTP和HTTPS都是用于在浏览器和服务器之间传输数据的。然而在保障数据安全性方面&#xff0c;HTTPS远远优于HTTP。在网络安全愈发重要的当下&#xff0c;HTTP协议的不安全性使得其逐渐被淘汰弃用。那么使用HTTP协议有哪些风险呢&#xff1f;…...

【jvm从入门到实战】(十) 实战篇-内存调优

内存溢出和内存泄漏&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在GC ROOT的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情况就称之为内存泄漏。内存泄漏绝大多数情况都是由堆内存泄漏引起的。少量的内存泄漏可以容忍&#x…...

设计模式分类

不同设计模式的复杂程度、 细节层次以及在整个系统中的应用范围等方面各不相同。 我喜欢将其类比于道路的建造&#xff1a; 如果你希望让十字路口更加安全&#xff0c; 那么可以安装一些交通信号灯&#xff0c; 或者修建包含行人地下通道在内的多层互通式立交桥。 最基础的、 底…...

【前缀和】【单调栈】LeetCode2281:巫师的总力量和

作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 作为国王的统治者&#xff0c;你有一支巫师军队听你指挥。 给你一个下标从 0 开始的整数数组 strength &…...

力扣面试经典题之二叉树

104. 二叉树的最大深度 简单 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xf…...

图灵日记之java奇妙历险记--数据类型与变量运算符

目录 数据类型与变量字面常量数据类型变量语法格式整型变量浮点型变量字符型变量希尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升不同数据类型的运算小于4字节数据类型的运算 字符串类型 运算符算术运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非…...

PhysX——源码编译

从git下载源码 git主页 https://github.com/NVIDIA-Omniverse/PhysXclone地址 https://github.com/NVIDIA-Omniverse/PhysX.git源码编译 运行PhysX需要两个编译器的支持&#xff0c;CMake 3.12 或以上版本以及Python 2.7.6 版本 进入工程的 physx 目录&#xff0c;运行generate…...

小鹅通基于 TSE 云原生 API 网关的落地实践

导语 2023腾讯全球数字生态大会已于9月7-8日完美落幕&#xff0c;40专场活动展示了腾讯最新的前沿技术、核心产品、解决方案。 微服务与消息队列专场&#xff0c;我们邀请到了小鹅通的基础架构组负责人黄徐震为我们带来了《小鹅通基于 TSE 云原生网关的落地实践》的精彩演讲。…...

Postgresql处理JSON类型中替换某个属性值问题

一、问题描述 使用postgresql对json的特性使用sql批量处理json中某个属性的值 结构如下&#xff1a; {"id": 1,"parentId": 123,"globalParameters": [{"value": "date","boardId": 123,"canReName":…...

@德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?

德人合科技 | 天锐绿盾加密软件是一款全面保障企业电脑数据和安全使用的加密软件 PC端访问地址&#xff1a;www.drhchina.com 它的功能包括但不限于&#xff1a; 实时操作日志&#xff1a;可以实时详细地记录所有终端的操作日志&#xff0c;包括终端上窗口标题的变换、程序的…...

android 使用GSON 序列化对象出现字段被优化问题解决方案

一、问题描述 有以下结构&#xff1a; public class NativeParam<T> {private T data;public NativeParam(T data) {this.data data;}public T getData() {return data;}public void setData(T data) {this.data data;} };NativeParam<String> data "1.0…...

进入不了Bios?进入Bios的方法都在这了,肯定能进!

前言 有些小伙伴可能在重装系统的第一步就卡住了&#xff0c;接着就放弃了。哇哈哈哈啊&#xff0c;先让小白笑会&#xff5e; 根据小白十二年的装机经验&#xff0c;不同主板进入Bios的时候有不同的姿势。也许要蹲着大喊Bios才能进入呢&#xff1f;要不试试&#xff1f; 好了…...

手把手教你基于 FastGPT 搭建个人知识库

前言 大家好&#xff0c;我是潇潇雨声。我发现在使用 GPT 时&#xff0c;尽管它能够生成一些小红书文案和日志&#xff0c;但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法&#xff0c;那就是基于开源项目 FastGPT[1]。 我们可以通过向 GPT 提供一些有针对性的…...

gitee 怎么添加SSH密钥

要在Gitee上添加SSH密钥&#xff0c;请按照以下步骤操作&#xff1a; 登录到Gitee账户并导航到您要添加SSH密钥的存储库页面。点击页面右上方的“设置”按钮。在设置页面中&#xff0c;选择“SSH公钥”选项卡。点击“添加密钥”按钮。在弹出的对话框中&#xff0c;输入密钥标题…...

万界星空开源MES/注塑MES/开源注塑MES/免费MES/MES源码

一、系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES、好看的数据大屏、功能齐全开源mes. 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理&#xff0c;车间基础数据管理&…...

macOS 开发 - MASShortcut

文章目录 关于 MASShortcut项目结构 快速使用源码学习检测是否有热键冲突处理 Event macOS 开发交流 秋秋群&#xff1a;644096295&#xff0c;V : ez-code 关于 MASShortcut MASShortcut 是一款快捷键管理工具&#xff0c;替代和兼容 ShortcutRecorder github : https://git…...

ESP32+LVGL实战:手把手教你搞定ST7789屏幕镜像显示(附完整代码)

ESP32LVGL实战&#xff1a;从寄存器到工程化配置&#xff0c;彻底解决ST7789屏幕镜像显示问题 当你用ESP32驱动ST7789屏幕时&#xff0c;是否遇到过图像上下左右颠倒的困扰&#xff1f;这个问题看似简单&#xff0c;但网上的零散教程往往只告诉你改某个寄存器值&#xff0c;却忽…...

「5 个 Markdown 文件 + 1 句提示词」让 AI 精准重构你的 React 组件 | 附完整模板

这个场景你一定经历过&#xff1a; 你给 ChatGPT/Claude 一个又臭又长的 React 组件&#xff0c;说&#xff1a;"帮我重构一下&#xff0c;让它更清晰。" 结果要么&#xff1a; 改错了交互逻辑&#xff0c;导致功能崩溃改变了接口契约&#xff0c;后端完全适配不了代…...

智能客服原型开发:OpenClaw+Qwen3-32B搭建对话系统

智能客服原型开发&#xff1a;OpenClawQwen3-32B搭建对话系统 1. 为什么选择这个技术栈&#xff1f; 去年我接手了一个智能客服系统的预研项目&#xff0c;客户要求两周内交付可演示的原型。传统方案需要前后端开发、对话引擎集成、工单系统对接&#xff0c;时间根本不够。最…...

ICEM高效建模技巧:从快捷键到多点创建模式

1. ICEM快捷键&#xff1a;让你的建模效率翻倍 刚开始用ICEM建模那会儿&#xff0c;我总被繁琐的鼠标操作折磨得够呛。直到有天发现隔壁工位的同事建模速度比我快三倍&#xff0c;偷师学艺才知道——原来快捷键才是真正的生产力神器。这里分享几个我每天必用的核心快捷键组合&a…...

threejs 加载glb模型时DRACOLoader的正确配置与常见错误解析

1. 为什么需要DRACOLoader&#xff1f; 在Three.js中加载glb/gltf模型时&#xff0c;经常会遇到模型文件过大的问题。这是因为很多3D建模工具&#xff08;如Blender&#xff09;在导出时会使用Draco压缩算法来减小文件体积。这种压缩虽然能显著减少模型大小&#xff08;通常能…...

FlowState Lab 保姆级Docker容器化部署与运维实战

FlowState Lab 保姆级Docker容器化部署与运维实战 1. 前言&#xff1a;为什么选择Docker部署FlowState Lab 如果你正在寻找一种简单高效的方式来部署FlowState Lab模型&#xff0c;Docker容器化无疑是最佳选择。想象一下&#xff0c;你花了一周时间在本地调试好的模型&#x…...

BarrageGrab技术深度解析:构建高可用跨平台直播弹幕抓取架构

BarrageGrab技术深度解析&#xff1a;构建高可用跨平台直播弹幕抓取架构 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连&#xff0c;非系统代理方式&#xff0c;无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/BarrageGrab 在当今直播…...

VeraCrypt实战指南:从取证入门到加密容器构建

1. VeraCrypt初探&#xff1a;数字取证中的"保险箱" 第一次接触VeraCrypt是在去年的网络安全竞赛上。当时有个加密容器文件摆在面前&#xff0c;队友急得直挠头&#xff1a;"这玩意儿怎么打开&#xff1f;"我盯着那个看似普通的文件&#xff0c;突然意识到…...

拆解一个Buck电路实例:我是如何根据Datasheet为我的电源项目挑选MOS管的

拆解一个Buck电路实例&#xff1a;我是如何根据Datasheet为我的电源项目挑选MOS管的 当我在设计一款输入36V、输出12V/5A的Buck转换器时&#xff0c;MOS管的选择成了整个项目的关键转折点。市面上琳琅满目的型号让人眼花缭乱&#xff0c;而Datasheet里密密麻麻的参数表格更像是…...

MoveCertificate终极指南:Android 7-15系统证书管理全解析

MoveCertificate终极指南&#xff1a;Android 7-15系统证书管理全解析 【免费下载链接】MoveCertificate 支持Android7-15移动证书&#xff0c;兼容magiskv20.4/kernelsu/APatch, Support Android7-15, compatible with magiskv20.4/kernelsu/APatch 项目地址: https://gitco…...