Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

目录
本文主要介绍了Python+Requess+PyTest+Excel+Allure 接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。

Pytest是Python的另一个第三方单元测试库。它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。

两者对比:

Pytest项目实战:
第一步、搭建项目框架(创建Gwyc_Api_Script_Pytest项目目录)

依次创建子目录如下:base:存放一些最底层的方法封装,协议,请求发送等。common:存放一些公共方法。config:存放配置文件。data:存放测试数据。 log:存放日志。report:存放报告。tests:存放用例。utils:存放公共类。 readme:用于说明文档。requirements.txt: 用于记录所有依赖包极其版本号,便于环境部署,可以通过pip命令自动生成和安装。

第二步、封装请求方法(base目录下面创建method.py)

封装有两种方法:

第一种:直接调用requests库下面的request方法,并将所有需要用到的参数定义进去,分为实参和行参,实参调用必须要传参,行参可给默认值,调用时可重新赋值也可以使用默认值。这种方法代码量少,不用做判断,request会自动根据传入的参数进行发送请求到服务器。

第二种:分别对各个请求方式按函数的形式封装,分别调用requests进行发送请求。以get和post为例:put,delete请求按一样方法封装,各个请求方式封装完成以后再定义一个主方法,直接调用主方法会自动根据请求方式进行判断调用各个请求函数,这里也可以不对请求方式汇总封装,直接调用各个函数进行发送请求也是可以的。这种方法封装涉及代码量较多,也没有能够很好的用上requests库,因此推荐使用第一种方法。

第三步、封装读取文件的方法(common目录下创建public.py):

1、这里需要用到python的os库,os 库是Python标准库,包含几百个函数,常用的有路径操作、进程管理、环境参数等。

2、分别对获取目录和获取目录下文件进行了封装,直接调用并传入相应的参数即可使用。如下图:

第四步、准备数据(data目录下创建data.xlsx)

将接口写入excel表,将接口需要用到的字段都写进excel然后直接进行读取。

第五步、封装读取文件方法(utils目录下面创建operationExcel.py)

定义一个文件类分别再定义一个方法获取Sheet表,定义一个方法获取出所有数据存放进列表。

第六步、封装登录方法(common目录下面创建login.py)

获取token提供给接口使用,使用@pytest.fixture装饰器每次执行所有用例前执行一遍登录方法获取到token并返回。

 第七步、对表头定义全局变量,可以定义在utils目录下面的operationExcel.py文件中

第八步、封装用例(tests目录下面创建test_gwyc_api_all.py)

需要用到@pytest.mark.parametrize()装饰器进行封装用例,调用getExceldatas()将读取出来的用例存放进装饰器,"data"为别名。如下图,分别请求头和参数做了为空判断,并将token插入到headers里面,这样每一个接口都能使用到登录返回的token,不用每次都去调用获取token。

第九步、利用allure生成测试报告。

allure是Pytest的插件包需要下载安装,并将allure里面的bin目录所在的路径配置到PATH环境变量中就可以直接使用报告。

将生成的json文件存放到用例所在的目录下面执行完成以后会在tests目录下面生成一个report目录,下面包含result目录和html目录,前者是存放json文件,后者存放读取后生成的html报告

第十步、封装日志方法(log目录下面创建log.py)

日志在自动化测试中起到的参考作用相对较小以测试报告为准,直接按相应规则配置好直接调用即可。

到此这篇关于Python+Requests+PyTest+Excel+Allure 接口自动化测试实战的文章就介绍到这了,更多相关Requests PyTest Excel Allure自动化测试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持小编!

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。      

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

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

相关文章

nginx 模块相关配置及结构理解

文章目录 模块配置结构模块配置指令先看一下 ngx_command_t 结构一个模块配置的demo简单模块配置的案例演示 模块上下文结构模块的定义 模块配置结构 Nginx中每个模块都会提供一些指令,以便于用户通过配置去控制该模块的行为。 Nginx的配置信息分成了几个作用域(sc…

【Vue】核心特性(响应式)

响应式&#xff1a; 数据变化&#xff0c;视图自动更新 接下来使用一个例子来体现一下什么是响应式 案例一&#xff1a; 访问数据&#xff0c;视图自动更新 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

【C/PTA】函数专项练习(四)

本文结合PTA专项练习带领读者掌握函数&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 目录 6-1 计算A[n]1/(1 A[n-1])6-2 递归实现顺序输出整数6-3 自然数的位数(递归版)6-4 分治法求解金块问题6-5 汉诺塔6-6 重复显示字符(递归版)…

【git】使用ssh

前言 git之前一直使用https&#xff0c;因为很方便随时随地都可以用。最近吧代码托管到GitHub&#xff0c;使用https就使用不了。后面听同事说GitHub使用ssh是没问题的&#xff0c;就想着尝试一下。 git ssh配置 设置用户名和邮箱 git config --global use.name usernamegit…

性能测试的指南:测试类型、性能测试步骤、最佳实践等!

近期公司为了节省成本搞了一波机房迁移&#xff0c;整合了一些南美部署架构。有一些上google云和有些下阿里云等大的调整。 在做机房迁移项目当中就需要思考如何进行性能测试&#xff0c;这种大的机房迁移SRE&#xff08;运维&#xff09;会针对组件会做一些单组件的性能测试&a…

【LeetCode刷题-回溯】-- 47.全排列II

47.全排列II 主要需要解决全排列不重复的问题&#xff0c;设定一个规则&#xff0c;保证在填第i个数的时候重复数字只会被填入一次即可&#xff0c;而在本题中&#xff0c;我们选择对原数组排序&#xff0c;保证相同的数字都相邻&#xff0c;然后每次填入的数一定是这个数所在重…

基于深度学习的文本分类

通过构建更复杂的深度学习模型可以提高分类的准确性&#xff0c;即分别基于TextCNN、TextRNN和TextRCNN三种算法实现中文文本分类。 项目地址&#xff1a;zz-zik/NLP-Application-and-Practice: 本项目将《自然语言处理与应用实战》原书中代码进行了实现&#xff0c;并在此基础…

docker启动容器失败,然后查看日志,docker logs查看容器出现报错:

docker 启动容器失败&#xff0c;然后docker logs 查看容器出现报错&#xff1a; error from daemon in stream: Error grabbing logs: invalid character l after object key:value pair在网上看到的 解决方案&#xff1a; 找到你日志文件目录&#xff1a; docker inspect …

盘点55个Python书籍Python爱好者不容错过

盘点55个Python书籍Python爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1zJ0YGPBugDxCAAvCJbPXvA?pwd8888 提取码&#xff1a;8888 书籍名称&#xff1a; Flask We…

2016年全国硕士研究生入学统一考试管理类专业学位联考数学试题——解析版

文章目录 2016 级考研管理类联考数学真题一、问题求解&#xff08;本大题共 15 小题&#xff0c;每小题 3 分&#xff0c;共 45 分&#xff09;下列每题给出 5 个选项中&#xff0c;只有一个是符合要求的&#xff0c;请在答题卡上将所选择的字母涂黑。真题&#xff08;2016-01&…

VueRouter

路由介绍 1.思考 单页面应用程序&#xff0c;之所以开发效率高&#xff0c;性能好&#xff0c;用户体验好 最大的原因就是&#xff1a;页面按需更新 比如当点击【发现音乐】和【关注】时&#xff0c;只是更新下面部分内容&#xff0c;对于头部是不更新的 要按需更新&#…

NOIP2003提高组第二轮T3:加分二叉树

题目链接 [NOIP2003 提高组] 加分二叉树 题目描述 设一个 n n n 个节点的二叉树 tree \text{tree} tree 的中序遍历为 ( 1 , 2 , 3 , … , n ) (1,2,3,\ldots,n) (1,2,3,…,n)&#xff0c;其中数字 1 , 2 , 3 , … , n 1,2,3,\ldots,n 1,2,3,…,n 为节点编号。每个节点都…