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

Python+Requests+Pytest+Excel+Allure 接口自动化测试项目实战【框架之间的对比】

        --------UnitTest框架和PyTest框架的简单认识对比与项目实战--------

定义:

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)

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

实战结束

便于自己记忆也能帮上需要帮助的一部分人,何乐而不为! 哈哈

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

http://www.lryc.cn/news/163000.html

相关文章:

  • 商业航天进展迅速:中国航天科工三院成功完成电磁发射试验
  • MySQL和Oracle数据库引擎
  • CloudQuery X PolarDB:让数据库管理更简单
  • 机器学习开源工具BatteryML,一站式分析与预测电池性能
  • TypeScript:赋予JavaScript数据类型新的力量,提升编程效率!
  • LLMs之Baichuan 2:《Baichuan 2: Open Large-scale Language Models》翻译与解读
  • 听书网站模板源码 懒人书院网站源码 苹果cms手机听书网站模版源码 支持手机端
  • 算法 数据结构 斐波那契数列 递归实现斐波那契数列 斐波那契递归的优化 斐波那契数列递归求解 多路递归实现 斐波那契算法系列 数据结构(十一)
  • 【面试经典150 | 双指针】两数之和
  • 桥接模式简介
  • 零钱兑换00
  • JavaScipt中如何实现函数缓存?函数缓存有哪些场景?
  • android studio的Android Drawable Preview
  • 基于云计算的区域LIS系统系统源码
  • VR农学虚拟仿真情景实训教学演示
  • sklearn中make_blobs方法:聚类数据生成器
  • Win11自带微软输入法怎么输入π及其他希腊字母
  • 关于MyBatisPlus框架下出现xml里面定义的方法无法被正确识别以及提示调用mysql存储过程时参数无效的问题
  • vscode路径别名文件跳转解决办法
  • layui 富文本编辑器layedit 以及 图片转base64前端页面显示
  • 服务器给前端实时推送数据轻量化解决方案eventSource+Springboot
  • 数据结构与算法:数据结构基础
  • virtualbox虚拟机中安装FreeDOS系统和DJGPP编译环境
  • JAVASE事件监听
  • ubuntu14.04改静态ip
  • “文件的上传与下载:实现与优化“
  • uboot顶层Makefile前期所做工作说明三
  • Mysql树形表的两种查询方案(递归与自连接)
  • text-align和text-align-last的属性值
  • SpringMVC的注解、参数传递、页面跳转