Python+Requests+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自动化测试内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 如何使用Python对Excel表格进行拼接合并

    目录 准备工作 一.横向拼接 1.1 一般拼接 1.2 指定键进行拼接,即指定某一列作为两个表的连接依据. 1.2.1 多对一 1.2.2 多对多 1.2.3 用on来指定多个连接键 1.2.4 指定左右连接键 1.2.5 索引当作连接键 1.3 连接的方式 1.3.1 内连接(inner) 1.3.2 左连接(left) 1.3.3 右连接(right) 1.3.4 外连接(outer) 二.纵向拼接 2.1 普通合并 2.2 重叠数据的合并 三.整合代码 准备工作 我准备了两个表格数据,以此

  • 使用Python对EXCEL数据的预处理

    一.熟悉数据 我们将EXCEL中的数据导入之后,需要对数据进行大致性的了解,当对数据充分地了解之后,才便于后期的分析工作. 该部分涉及到四个基本方法,分别为“shape”“info”“head”“describe”.下面会具体介绍四者的用法与功能. 以下是我准备好的一组简单的excel数据: 其中:“编号”“姓名”“识别码”“时间”称为索引列:左边的“1”“2”···“6”称为索引行. 通过第一篇的方法,将数据导入python中.代码与输出结果如下所示: import pandas as pd

  • 如何在Python中导入EXCEL数据

    目录 一.前期准备 二.编写代码基本思路 三.编写代码读取数据 3.1 3.2 四.结语 一.前期准备 此篇使用两种导入excel数据的方式,形式上有差别,但两者的根本方法实际上是一样的. 首先需要安装两个模块,一个是pandas,另一个是xlrd. 在顶部菜单栏中点击文件,再点击设置,然后在设置中找到以下界面,并点击“+”号. 然后会出现以下界面,在搜索框中分别搜索以上两个模块:pandas/xlrd. 选中搜索出来的模块,并点击左下角的的安装按钮,便可将模块安装到自己电脑中. 需要注意的是,

  • 14个Python处理Excel的常用操作分享

    目录 一.关联公式:Vlookup 二.数据透视表 三.对比两列差异 四.去除重复值 五.缺失值处理 六.多条件筛选 七. 模糊筛选数据 八.分类汇总 九.条件计算 十.删除数据间的空格 十一.数据分列 十二.异常值替换 十三.分组 十四.根据业务逻辑定义标签 自从学了Python后就逼迫用Python来处理Excel,所有操作用Python实现.目的是巩固Python,与增强数据处理能力. 这也是我写这篇文章的初衷.废话不说了,直接进入正题. 数据是网上找到的销售数据,长这样: 一.关联公式:

  • Python Excel数据处理之xlrd/xlwt/xlutils模块详解

    目录 1.模块说明 2.xlrd处理 3.xlwt处理 4.xlutils处理 常规的Excel数据处理中,就是对Excel数据文件的读/写/文件对象操作. 通过对应的python非标准库xlrd/xlwt/xlutils,来实现具体的数据处理业务逻辑. 在复杂的Excel业务数据处理中,三兄弟扮演的角色缺一不可.如何能够使用xlrd/xlwt/xlutils三个模块来实现数据处理就是今天的内容. 1.模块说明 使用该三个模块来处理Excel数据最好的地方就是他们和Excel文件对象对应的数据处

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

    Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架. Pytest是Python的另一个第三方单元测试库.它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试. 两者对比: Pytest项目实战: 第一步.搭建项目框架(创建Gwyc_Api_Script_Pytest项目目录) 依次创建子目录如下:base:存放一些最底

  • Python+unittest+requests+excel实现接口自动化测试框架

    环境:python3 + unittest + requests Excel管理测试用例, HTMLTestRunner生成测试报告 测试完成后邮件发送测试报告 jsonpath方式做预期结果数据处理,后期多样化处理 后期扩展,CI持续集成 发送邮件效果: 项目整体结构: common模块代码 class IsInstance: def get_instance(self, value, check): flag = None if isinstance(value, str): if chec

  • python+requests+pytest接口自动化的实现示例

    1.发送get请求 #导包 import requests #定义一个url url = "http://xxxxxxx" #传递参数 payload="{\"head\":{\"accessToken\":\"\",\"lastnotice\":0,\"msgid\":\"\"},\"body\":{\"user_name\&

  • 利用Python如何实现数据驱动的接口自动化测试

    前言 大家在接口测试的过程中,很多时候会用到对CSV的读取操作,本文主要说明Python3对CSV的写入和读取.下面话不多说了,来一起看看详细的介绍吧. 1.需求 某API,GET方法,token,mobile,email三个参数 token为必填项 mobile,email 必填其中1项 mobile为手机号,email为email格式 2.方案 针对上面的API,在做接口测试时,需要的测试用例动辄会多达10+, 这个时候采用数据驱动的方式将共性的内容写入配置文件或许会更合适. 这里考虑把AP

  • Python3+Requests+Excel完整接口自动化测试框架的实现

    框架整体使用Python3+Requests+Excel:包含对实时token的获取 1.------base -------runmethond.py runmethond:对不同的请求方式进行封装 import json import requests requests.packages.urllib3.disable_warnings() class RunMethod: def post_main(self, url, data, header=None): res = None if

  • Python+unittest+requests 接口自动化测试框架搭建教程

    一.Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建_00--框架结构简解 首先配置好开发环境,下载安装Python并下载安装pycharm,在pycharm中创建项目功能目录.如果不会的可以百度Google一下,该内容网上的讲解还是比较多比较全的! 大家可以先简单了解下该项目的目录结构介绍,后面会针对每个文件有详细注解和代码. common: --configDb.py:这个文件主要编写数据库连接池的相关内容,本项目暂未考虑使用数据库

  • Pytest+Yaml+Excel 接口自动化测试框架的实现示例

    目录 一.框架架构 二.项目目录结构 三.框架功能说明 四.核心逻辑说明 配置文件 输出目录 请求工具类 代码编写case 程序主入口 执行记录 一.框架架构 二.项目目录结构 三.框架功能说明 解决痛点: 通过session会话方式,解决了登录之后cookie关联处理 框架天然支持接口动态传参.关联灵活处理 支持Excel.Yaml文件格式编写接口用例,通过简单配置框架自动读取并执行 执行环境一键切换,解决多环境相互影响问题 支持http/https协议各种请求.传参类型接口 响应数据格式支持

  • python使用pytest接口自动化测试的使用

    简单的设计思路 利用pytest对一个接口进行各种场景测试并且断言验证 配置文件独立开来(conf文件),实现不同环境下只需要改环境配置即可 测试的场景读取excle的测试用例,可支持全量执行或者自定义哪条用例执行(用例内带加密变量): 接口入参还包含了加密的逻辑,所以需加一层加密处理 用例的样例: 应用的库包含: import pytest import time, json import base64, hmac import hashlib, uuid, re import request

  • Python + Requests + Unittest接口自动化测试实例分析

    本文实例讲述了Python + Requests + Unittest接口自动化测试.分享给大家供大家参考,具体如下: 1. 介绍下python的requests模块 Python Requests快速入门 :http://cn.python-requests.org/zh_CN/latest/ 想必会Python基础的小伙伴们一看就懂了 2. Requests接口自动化测试: 2.1 如何利用这么利器进行接口测试,请看小demo: # -*- coding:utf-8 -* import re

  • Pytest+Request+Allure+Jenkins实现接口自动化

    利用Pytest+Request+Allure+Jenkins实现接口自动化: 实现一套脚本多套环境执行: 利用参数化数据驱动模式,实现接口与测试数据分离 使用logger定制实现自动化测试日志记录 实现步骤: 框架结构: 1.接口自动化项目代码编写(先在window实现) 1.1 项目准备 先在window安装响应的环境依赖 安装python3.7(要保证pip能用,一般安装python3.7会自动安装pip) 安装pytest框架---- pip install pytest 安装reque

随机推荐