搭建接口自动化测试框架python+requests+pytest
- 安装python(最好是比较新比较稳定的版本),然后是python的解释器或者叫编译器pycharm
- 安装后新建一个项目,以此项目为基础,安装依赖搭建框架。打开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,docker运行java程序的Dockerfile # 使用基础镜像 FROM alpine:latest # 暴露容器的端口 不会自动将容器的端口映射到宿主机上 docker run -d -p <宿主机端口>:7080 <镜像名称> EXPOSE 9202 EXPOSE 19202 #下载jdk8 RUN apk update && apk a…...
docker数据卷数据卷容器
前言 今天调休在家,随便玩玩,简单做下学习记录 1. 数据卷特点 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会被拷贝到新初始化的数据卷中数据卷可以在容器之间共享和重用可以对数据卷里的内容直接…...
使用HTTP协议有哪些风险?HTTP与HTTPS的区别是什么
作为两种常见的网络协议,HTTP和HTTPS都是用于在浏览器和服务器之间传输数据的。然而在保障数据安全性方面,HTTPS远远优于HTTP。在网络安全愈发重要的当下,HTTP协议的不安全性使得其逐渐被淘汰弃用。那么使用HTTP协议有哪些风险呢?…...
【jvm从入门到实战】(十) 实战篇-内存调优
内存溢出和内存泄漏:在Java中如果不再使用一个对象,但是该对象依然在GC ROOT的引用链上,这个对象就不会被垃圾回收器回收,这种情况就称之为内存泄漏。内存泄漏绝大多数情况都是由堆内存泄漏引起的。少量的内存泄漏可以容忍&#x…...
设计模式分类
不同设计模式的复杂程度、 细节层次以及在整个系统中的应用范围等方面各不相同。 我喜欢将其类比于道路的建造: 如果你希望让十字路口更加安全, 那么可以安装一些交通信号灯, 或者修建包含行人地下通道在内的多层互通式立交桥。 最基础的、 底…...
【前缀和】【单调栈】LeetCode2281:巫师的总力量和
作者推荐 map|动态规划|单调栈|LeetCode975:奇偶跳 涉及知识点 单调栈 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 作为国王的统治者,你有一支巫师军队听你指挥。 给你一个下标从 0 开始的整数数组 strength &…...
力扣面试经典题之二叉树
104. 二叉树的最大深度 简单 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:3示例 2: 输入…...
图灵日记之java奇妙历险记--数据类型与变量运算符
目录 数据类型与变量字面常量数据类型变量语法格式整型变量浮点型变量字符型变量希尔型变量类型转换自动类型转换(隐式)强制类型转换(显式) 类型提升不同数据类型的运算小于4字节数据类型的运算 字符串类型 运算符算术运算符关系运算符逻辑运算符逻辑与&&逻辑或||逻辑非…...
PhysX——源码编译
从git下载源码 git主页 https://github.com/NVIDIA-Omniverse/PhysXclone地址 https://github.com/NVIDIA-Omniverse/PhysX.git源码编译 运行PhysX需要两个编译器的支持,CMake 3.12 或以上版本以及Python 2.7.6 版本 进入工程的 physx 目录,运行generate…...
小鹅通基于 TSE 云原生 API 网关的落地实践
导语 2023腾讯全球数字生态大会已于9月7-8日完美落幕,40专场活动展示了腾讯最新的前沿技术、核心产品、解决方案。 微服务与消息队列专场,我们邀请到了小鹅通的基础架构组负责人黄徐震为我们带来了《小鹅通基于 TSE 云原生网关的落地实践》的精彩演讲。…...
Postgresql处理JSON类型中替换某个属性值问题
一、问题描述 使用postgresql对json的特性使用sql批量处理json中某个属性的值 结构如下: {"id": 1,"parentId": 123,"globalParameters": [{"value": "date","boardId": 123,"canReName":…...
@德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
德人合科技 | 天锐绿盾加密软件是一款全面保障企业电脑数据和安全使用的加密软件 PC端访问地址:www.drhchina.com 它的功能包括但不限于: 实时操作日志:可以实时详细地记录所有终端的操作日志,包括终端上窗口标题的变换、程序的…...
android 使用GSON 序列化对象出现字段被优化问题解决方案
一、问题描述 有以下结构: 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的方法都在这了,肯定能进!
前言 有些小伙伴可能在重装系统的第一步就卡住了,接着就放弃了。哇哈哈哈啊,先让小白笑会~ 根据小白十二年的装机经验,不同主板进入Bios的时候有不同的姿势。也许要蹲着大喊Bios才能进入呢?要不试试? 好了…...
手把手教你基于 FastGPT 搭建个人知识库
前言 大家好,我是潇潇雨声。我发现在使用 GPT 时,尽管它能够生成一些小红书文案和日志,但内容常常显得空洞缺乏深度。今天我想分享一个解决这个问题的方法,那就是基于开源项目 FastGPT[1]。 我们可以通过向 GPT 提供一些有针对性的…...
gitee 怎么添加SSH密钥
要在Gitee上添加SSH密钥,请按照以下步骤操作: 登录到Gitee账户并导航到您要添加SSH密钥的存储库页面。点击页面右上方的“设置”按钮。在设置页面中,选择“SSH公钥”选项卡。点击“添加密钥”按钮。在弹出的对话框中,输入密钥标题…...
万界星空开源MES/注塑MES/开源注塑MES/免费MES/MES源码
一、系统概述: 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES、好看的数据大屏、功能齐全开源mes. 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理,车间基础数据管理&…...
macOS 开发 - MASShortcut
文章目录 关于 MASShortcut项目结构 快速使用源码学习检测是否有热键冲突处理 Event macOS 开发交流 秋秋群:644096295,V : ez-code 关于 MASShortcut MASShortcut 是一款快捷键管理工具,替代和兼容 ShortcutRecorder github : https://git…...
【大数据面试】Flink面试题附答案
目录 ✅Flink介绍、特点、应用场景 ✅Flink与Spark Streaming的区别 ✅Flink有哪些部署模式 ✅Flink架构 ✅怎么设置并行度? ✅什么是算子链? ✅什么是任务槽(Task Slots)? ✅任务槽和并行度的关系 ✅Flink作…...
语音识别之百度语音试用和OpenAiGPT开源Whisper使用
0.前言: 本文作者亲自使用了百度云语音识别,腾讯云,java的SpeechRecognition语言识别包 和OpenAI近期免费开源的语言识别Whisper(真香警告)介绍了常见的语言识别实现原理 1.NLP 自然语言处理(人类语言处理) 你好不同人说出来是不同的信号表示 单位k 16k16000个数字表示 1秒160…...
Rust报错:the msvc targets depend on the msvc linker but `link.exe` was not found
当我在我的 windows 电脑上安装 rust,然后用 cargo 新建了一个项目后,cargo run 会报错: error: linker link.exe not found| note: program not foundnote: the msvc targets depend on the msvc linker but link.exe was not foundnote: p…...
2312llvm,04后端上
后端 后端由一套分析和转换趟组成,任务是生成代码,即把LLVM中间(IR)转换为目标代码(或汇编). LLVM支持广泛目标:ARM,AArch64,Hexagon,MSP430,MIPS,NvidiaPTX,PowerPC,R600,SPARC,SystemZ,X86,和XCore. 所有这些后端共享一套,按通用API方法抽象后端任务的目标无关生成代码的一部…...
springboot学习笔记(五)
MybatisPlus进阶 1.MybatisPlus一对多查询 2.分页查询 1.MybatisPlus一对多查询 场景:我有一个表,里面填写的是用户的个人信息(姓名,生日,密码,用户ID)。我还有一个表填写的订单信息&#x…...
文件上传——后端
文件上传流程: 创建阿里云OSS(对象存储服务)的bucket 登录阿里云,并完成实名认证,地址:https://www.aliyun.com/. 可以通过搜索,进入以下页面: 点击立即使用后: 点击…...
虾皮开通:如何在虾皮上开通跨境电商店铺
在当今的数字时代,跨境电商已经成为了全球贸易的一种重要形式。虾皮(Shopee)作为东南亚市场份额第一的跨境电商平台,为卖家提供了广阔的销售机会。如果您想在虾皮上开通店铺,以下是一些步骤和注意事项供您参考。 先给…...
C语言—每日选择题—Day60
明天更新解析 第一题 1. 下列for循环的循环体执行次数为() for(int i 10, j 1; i j 0; i, --j) A:0 B:1 C:无限 D:以上都不对 答案及解析 A for循环的判断条件是 i j 0;赋值语句做判断条件…...
【3D生成与重建】SSDNeRF:单阶段Diffusion NeRF的三维生成和重建
系列文章目录 题目:Single-Stage Diffusion NeRF: A Unified Approach to 3D Generation and Reconstruction 论文:https://arxiv.org/pdf/2304.06714.pdf 任务:无条件3D生成(如从噪音中,生成不同的车等)、…...
计算机网络:应用层
0 本节主要内容 问题描述 解决思路 1 问题描述 不同的网络服务: DNS:用来把人们使用的机器名字(域名)转换为 IP 地址;DHCP:允许一台计算机加入网络和获取 IP 地址,而不用手工配置࿱…...
自做装逼头像网站/关键词推广优化app
TCP主动关闭连接 appl: close(), --> FIN FIN_WAIT_1 //主动关闭socket方,调用close关闭socket,发FIN <-- ACK FIN_WAIT_2 //对方操作系统的TCP层,给ACK响应。然后给FIN <-- FIN …...
网站开发三大元素/大型营销型网站制作
Servlet处理请求的流程: 1) 客户端在浏览器的地址栏中输入一个请求的URL,按回车后就向服务器端发起一个http request(由浏览器生成)。 2) 服务器端的Web Server首先接受到请求,并将请求转交给容器,容器会根据请求的URL去调用客户端要访问的Servlet。 3) …...
惠州营销网站建设/小程序开发公司排行榜
当今的互联网,用户为王。传统的用户单方面接收信息(Web 1.0)、用户创造信息(Web 2.0)的爆炸时代已经趋缓,互联网逐步向用户之间交流信息、分享信息的平台发展。如何打造一个优秀的社区,累积有价…...
网站文章更新频率/网络营销ppt
利用KNIMI做商超零售关联推荐老帅 20150801http://blog.csdn.net/shuaihj一、测试数据需要测试数据,请留下邮箱二、训练关联推荐规则1.读取销售记录(sales.table)2.训练关联规则(得到前后项)设置最小项集属性3.过滤不关心列只保留“后项”和“前项”两列4.列重命名更…...
英文书 影印版 网站开发/站长工具seo查询软件
在idea使用htmlcss 简单仿制QQ会员官网主页页面 附带登录页面 跳转登陆页面 导航栏设置固定 底部信息栏附加根据鼠标在页面滑动的距离设置自动隐藏和显示 登录页面在点击登录后,实现覆盖整个页面,保持固定在页面中央位置,背景半透明化 …...
门户网站样式/seo任务平台
1.题目描述: 2.算法分析: 首先肯定是定义一个double类型数组存放数据,然后的一个问题是怎么判断浮点数最近的整数的差, 使用round函数即可 floor : 不大于自变量的最大整数 ceil :不小于自变量的最大整数 round:四舍五入到最邻近…...