搭建接口自动化测试框架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”文件名称,也可自定义名称。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/238357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过navcat的ssh连接 将一个服务器当作跳板连接远程mysql

文章目录 通过ssh连接一个服务器当作跳板连接远程mysql 通过ssh连接一个服务器当作跳板连接远程mysql 简单来说 一共三台机器 windows Linux(入口) Linux(mysql) windows 可以通过ssh 私钥连接Linux(入口)…

开发模型和测试模型

1. 开发模型 1.1 瀑布模型 瀑布模型是其他模型的基础框架 start—>需求分析---->计划----->设计----->编码----->测试----->End(其实就是软件开发的生命周期) 特点:线性的开发流程 缺陷:测试被后置。①风险往…

OpenCV-Python(18):图像梯度

目录 背景介绍及应用 学习目标 原理 Sobel算子和Scharr算子 Laplacian 算子 代码示例 重要提醒 背景介绍及应用 图像的梯度是指图像中每个像素点的强度变化情况。计算图像的梯度可以帮助我们了解图像中物体的边界和纹理等信息。梯度在计算机视觉和图像处理领域有着广泛…

超分辨数据集:Set5 Set14 BSD100 Urban100 Manga109

DIV2K数据集官网上很好找到,但是网上流传的Set5 14 BSD100,Urban100 Manga109都是私人进行处理过的版本,各个处理方式都不同,为了统一方式写了这篇文章。 官方的DIV2K x2、x3、x4的LR图片使用下面matlab代码生成(已经经过测试最后…

基于单片机设计的指纹锁(读取、录入、验证指纹)

一、前言 指纹识别技术是一种常见的生物识别技术,利用每个人指纹的唯一性进行身份认证。相比于传统的密码锁或者钥匙锁,指纹锁具有更高的安全性和便利性,以及防止钥匙丢失或密码泄露的优势。 基于单片机设计的指纹锁项目是利用STC89C52作为…

ARM GIC(三) gicv2架构

ARM的cpu,特别是cortex-A系列的CPU,目前都是多core的cpu,因此对于多core的cpu的中断管理,就不能像单core那样简单去管理,由此arm定义了GICv2架构,来支持多核cpu的中断管理 一、gicv2架构 GICv2,支持最大8个core。其框图如下图所示: 在gicv2中,gic由两个大模块组成: …

华为OD机试真题-园区参观路径-2023年OD统一考试(C卷)

题目描述:园区某部门举办了Family Day,邀请员工及其家属参加;将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角;家属参观园区时,只能向右和向下园区前进;求从起始园区到终点园区会有多少条不同的参观路径; 输入描述:第一行为园区长和宽;后面每一行…

集群与分布式的概念及区别

目前在工作中经常接触到集群的概念,通过这篇文章总结一下集群的几种方式以及和分布式对比学习 1.集群(Cluster) 集群是由多个计算机节点组成的网络,旨在共同提供服务,并确保高性能和高可用性。在高可用集群中&#xf…

conda环境下执行conda命令提示无法识别解决方案

1 问题描述 win10环境命令行执行conda命令,报命令无法识别,错误信息如下: PS D:\code\cv> conda activate pt conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径&a…

Redis原理之网络通信协议笔记

目录 1. RESP协议 ​2. 自定义Socket连接Redis 1. RESP协议 2. 自定义Socket连接Redis public class MyRedisClient {static Socket s;static PrintWriter writer;static BufferedReader reader;static Object obj;public static void main(String[] args) {try {// 1.建立连…

Redis(非关系型数据库)

Redis(非关系型数据库) 文章目录 Redis(非关系型数据库)认识Redis(Remote Dictionary Server)1.Redis的基本介绍2.Redis的应用场景2.1 取最新N个数据的操作2.2 排行榜应用,取TOP N操作2.3 需要精准设定过期时间的应用2.4 计数器应用2.5 Uniq 操作,获取某段时间所有数…

threejs中变换相关的知识点总结

一, 前言 在threejs的使用过程中经常会遇到需要移动旋转缩放之类的变换的情况,而可以实现这一目的的方法也有很多,如: translate,scale,rotateX,applyMatrix4,position.set,rotateOnWorldAxis… 等等, 很多方法可供选择。有的是作用在geometry上的, 有的是作用在me…

回归分析笔记

回归分析 回归分析: 寻找两个或多个变量之间的函数关系(相关关系) 一元和线性 y β 0 β 1 x ε \begin{aligned} y&\beta_0\beta_1x\varepsilon\\ \end{aligned} y​β0​β1​xε​ 误差项 ε \varepsilon ε是一个期望值为0的随机变量,即 E ( ε ) 0 …

mysql 23-2day 数据库查询(DQL)

目录 数据库查询(DQL)环境:准备一个表格作为查询环境查看数据根据要求查看数据运算查询as 可以修改字段名字 进行查询查询所有部门拼接两个字段查询 2017年入职的员工一个是空null 一个是空白查询 NULL集合排序查询查看有那些组通配符正则查询函数 数据库查询(DQL) …

如何搭建Web自动化测试框架?

在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的…

Java---泛型讲解

文章目录 1. 泛型类2. 泛型方法3. 泛型接口4. 类型通配符5. 可变参数6. 可变参数的使用 1. 泛型类 1. 格式&#xff1a;修饰符 class 类名 <类型>{ }。例如&#xff1a;public class Generic <T>{ }。 2. 代码块举例&#xff1a; public class Generic <T>{…

防火墙双机热备(HCIA)

目录 一、冗余分类 1、双机热备的产生 2、热备和冷备 二、VRRP VRRP注意事项 VRRP通告报文 三、VGMP 两种VGMP组 VGMP优先级 四、HRP 五、双机热备基本组网与配置 配置步骤 一、冗余分类 物理冗余&#xff1a;单设备改多设备&#xff0c;多线路连接。 网络冗余&a…

ssm420基于JavaEE的企业人事管理信息系统的设计与实现论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本企业人事管理信息系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…

【2023年网络安全优秀创新成果大赛专刊】银行数据安全解决方案(天空卫士)

在2023年网络安全优秀创新成果大赛&#xff0c;成都分站中&#xff0c;天空卫士银行数据安全方案获得优秀解决方案奖。与此同时&#xff0c;天空卫士受信息安全杂志邀请&#xff0c;编写《银行数据安全解决方案》。12月6日&#xff0c;天空卫士编写的《银行数据安全解决方案》做…

山西电力市场日前价格预测【2023-12-23】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-23&#xff09;山西电力市场全天平均日前电价为505.77元/MWh。其中&#xff0c;最高日前电价为807.08元/MWh&#xff0c;预计出现在08:15。最低日前电价为332.81元/MWh&#xff0c;预计…