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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

业务逻辑漏洞有哪些?漏洞攻击防御及代码示例

文章目录 简介危害成因攻击防御代码示例1. 未经验证的重要操作2. 认证绕过3. 逻辑时间窗口漏洞4. 负载测试漏洞 修复 业务逻辑漏洞是指软件或系统的逻辑设计上的缺陷,这些缺陷可能被攻击者利用,从而导致意料之外的行为。下面是对业务逻辑漏洞的简介、危害…

在线客服系统性价比比较:哪家更适合您的需求?

众多的在线客服系统中,哪家性价比更高?这大概是很多企业要考虑和考量的问题。如果您是一名公司采购人员,正在寻找一款功能全面、价格合适的在线客服系统,那么这篇文章或许能为您提供一些参考价值。 Zoho Desk工单管理系统&#x…

微信小程序promise封装

一. 在utils文件夹内创建一个request.js 写以下封装的 wx.request() 方法 const baseURL https:// 域名 ; //公用总路径地址 export const request (params) > { //暴露出去一个函数,并且接收一个外部传入的参数let dataObj params.data || {}; //…

软文营销的重要性,媒介盒子为你解答

信息茧房环立且用户注意力稀缺的时代下,品牌方唯有在内容上精耕细作才能吸引用户。软文营销能够帮助公司吸引流量,建立与消费者的信任联系,同时增加转化并产生更多的业务。接下来媒介盒子就和大家聊聊:软文营销的重要性。 一、 可…

【论文阅读】FreeU: Free Lunch in Diffusion U-Net

FreeU: 无需训练直接提升扩散模型生成效果。 paper:https://arxiv.org/abs/2309.11497 code:GitHub - ChenyangSi/FreeU: FreeU: Free Lunch in Diffusion U-Net 1. 介绍 贡献: •研究并揭示了U-Net架构在扩散模型中去噪的潜力&#xff0…

【小白专用】php pdo方式连接sqlserver 设置方法 更新23.12.21

windows系统的拓展相对来说比较好安装&#xff0c;直接下载对应的dll文件&#xff0c;修改php.ini配置文件即可。 添加PHP对SQL SERVER的支持 1.新建PHP 文件&#xff0c;输入内容&#xff1a; <?php echo phpinfo(); ?> 2.运行后&#xff0c;可以查看到如下数据&…

Linux 磁盘空间占满故障解决方法

故障排查&#xff1a; 使用命令查看磁盘使用量 # 使用人类可读的格式(预设值是不加这个选项的...) df -h # --inodes 列出 inode 资讯&#xff0c;不列出已使用 block df -i # 查看当前目录下各个文件及目录占用空间大小 du -sh / 情况一&#xff1a;一般磁盘空间满了&a…

106 uni-app 小程序之巨坑 not found path,not found methods v-for渲染出现报错

1.Component is not found in path 你是否像我一样&#xff0c;检查了无数遍&#xff0c;引入路径检查千万遍&#xff0c;就是没写错&#xff0c;小程序后台就是给你报错&#xff0c; 不用慌&#xff0c;心里默念&#xff1a;我不能砸电脑&#xff0c;我不能砸电脑&#xff0…

[c]超半的数

题目意思很简单&#xff0c;就是输入一组数据&#xff0c;输出出现次数过半的数 根据这个题我们也可以写出另一个题&#xff0c;&#xff08;题2&#xff09;&#xff08;统计一组数据中各个数出现的次数&#xff09; 下面附上两个题代码 题1&#xff1a; #include<stdio.…

接口响应过慢怎样排查?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 服务变慢服务器全局慢包括cpu 慢&#xff0c;内存慢&#xff0c;io/磁盘慢&#xff0c;io/网络慢。 服务器局部慢指得是发现某一个或者多个服务很慢。 1.全局查询思…

Vue实现rem自适应布局,无需安装插件,代码简单

&#x1f935; 作者&#xff1a;coderYYY &#x1f9d1; 个人简介&#xff1a;前端程序媛&#xff0c;目前主攻web前端&#xff0c;后端辅助&#xff0c;其他技术知识也会偶尔分享&#x1f340;欢迎和我一起交流&#xff01;&#x1f680;&#xff08;评论和私信一般会回&#…

Jenkins自动化构建打包,部署

1.环境准备 上传jdk&#xff0c;maven和tomcat的包&#xff0c;解压到/usr/local下并配置环境变量。 配置jdk [rootserver04 ~]# vim /etc/profile.d/java.sh JAVA_HOME/usr/local/java export PATH$JAVA_HOME/bin:$PATH##加载环境变量 [rootserver04 ~]# source /etc/profi…

电影《名侦探柯南:黑铁的鱼影》观后感

上周看了电影《名侦探柯南&#xff1a;黑铁的鱼影》,整体故事的话,就是柯南他们团队一起去岛屿去上参观&#xff0c;“正好”碰上了“海上信标案件”&#xff0c;在柯南的电影里&#xff0c;用“正好”多少有些反讽的意味&#xff0c;因为柯南好像走到哪&#xff0c;都正好碰到…

FFmpeg 简单文档

一、播放器框架 常用音视频术语 容器&#xff0f;文件&#xff08;Conainer/File&#xff09;&#xff1a;即特定格式的多媒体文件&#xff0c;比如mp4、flv、mkv等。媒体流&#xff08;Stream&#xff09;&#xff1a;表示时间轴上的一段连续数据&#xff0c;如一段声音数据、…

键盘失灵?别慌!三招帮你调出电脑软键盘

在电脑使用中&#xff0c;我们有时候需要输入文字&#xff0c;但可能会遇到键盘突然失灵的情况。这时&#xff0c;我们可以使用电脑自带的软键盘来解决问题。本文将介绍如何调出电脑软键盘&#xff0c;以便在需要时进行文字输入。 下面以Windows10系统电脑调出软键盘为例进行演…

如何将采购时间从几天缩短为几小时?

从事采购工作时&#xff0c;采购需要多长时间是面临的常见挑战之一。 采购是供应链中的一个环节&#xff0c;大家都不想看到整个流程被拖慢&#xff0c;但很多时候&#xff0c;事情往往向超出控制范围的方向发展。不过&#xff0c;企业可以通过多种方式简化采购和管理整个采购…

红队打靶练习:ESCALATE_LINUX: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …

Jenkins持续集成自动化测试

执行集成构建 持续&#xff0c;自动地构建&测试软件项目代码管理&#xff08;git/svn&#xff09;>编译&#xff08;maven/ant/gradle&#xff09;>打包>测试环境部署>自动化测试 研发体系中的迭代流程 1 源码分支管理&#xff1a; git或者svn, 将不同开发编…

MySQL 分表真的能提高查询效率?

背景 首先我们以InnoDB引擎&#xff0c;BTree 3层为例。我们需要先了解几个知识点&#xff1a;页的概念、InnoDB数据的读取方式、什么是树搜索&#xff1f;、一次查询花费的I/O次数&#xff0c;跨页查询。 页的概念 索引树的页&#xff08;page&#xff09;是指存储索引数据…