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

yizhihongxing

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

本攻略将详细介绍如何使用Python的Requests库、PyTest测试框架、Excel作为测试数据源以及Allure生成漂亮的测试报告进行接口自动化测试。

准备工作

  1. 安装Python:确保您的系统已经安装了Python,并配置好了环境变量。

  2. 安装依赖库:使用pip命令安装以下依赖库:

shell
pip install requests pytest openpyxl allure-pytest

  1. 创建项目目录结构:创建一个新的项目目录,并按照以下结构组织文件:

├── api
│ ├── __init__.py
│ └── api_client.py
├── data
│ └── test_data.xlsx
├── reports
└── tests
├── __init__.py
└── test_api.py

编写接口测试用例

  1. 创建测试数据文件:在data目录下创建一个Excel文件test_data.xlsx,并在其中创建一个名为test_cases的工作表,用于存储测试用例数据。

  2. 编写接口测试用例:在test_cases工作表中,按照以下格式编写接口测试用例数据:

Case ID Method URL Headers Body Expected Status Code
1 GET https://api.com/ 200
2 POST https://api.com/ {\"name\": \"John Doe\"} 201
...
  1. 创建API客户端:在api目录下创建一个api_client.py文件,编写一个API客户端类,用于发送请求和处理响应。

```python
import requests

class APIClient:
def init(self):
self.session = requests.Session()

   def send_request(self, method, url, headers=None, body=None):
       response = self.session.request(method, url, headers=headers, json=body)
       return response

```

  1. 编写测试用例:在tests目录下创建一个test_api.py文件,编写接口测试用例。

```python
import pytest
from api.api_client import APIClient
from openpyxl import load_workbook

@pytest.fixture(scope='module')
def api_client():
return APIClient()

@pytest.fixture(scope='module')
def test_data():
workbook = load_workbook('data/test_data.xlsx')
sheet = workbook['test_cases']
data = []
for row in sheet.iter_rows(min_row=2, values_only=True):
data.append(row)
return data

@pytest.mark.parametrize('case_id, method, url, headers, body, expected_status_code', test_data())
def test_api(api_client, case_id, method, url, headers, body, expected_status_code):
response = api_client.send_request(method, url, headers=headers, body=body)
assert response.status_code == expected_status_code
```

运行测试用例

  1. 运行测试用例:在项目根目录下打开终端,运行以下命令执行测试用例:

shell
pytest --alluredir=reports

  1. 生成Allure报告:运行以下命令生成Allure测试报告:

shell
allure serve reports

这将在默认浏览器中打开Allure报告,您可以查看测试结果、错误信息、测试步骤等详细信息。

以上是关于使用Python+Requests+PyTest+Excel+Allure进行接口自动化测试的完整攻略。希望对您有所帮助!如果您还有其他问题,请随时提问。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python+Requests+PyTest+Excel+Allure 接口自动化测试实战 - Python技术站

(0)
上一篇 2023年10月17日
下一篇 2023年10月17日

相关文章

  • C语言实现字符串字符反向排列的方法详解

    C语言实现字符串字符反向排列的方法详解 在C语言里面,实现字符串的反向排列并不是一件难事,下面我会详细讲解一下具体的实现方式和流程。 一、字符串反向排列思路 字符串反向排列的思路很简单,就是将字符串中的每一个字符按照相反的顺序重新排列组成一个新串。这个新串与原来的字符串完全相同,只是顺序不同。 二、字符串反向排列的代码实现 以下是一个简单的C语言程序,用于将…

    other 2023年6月27日
    00
  • layui递归实现动态左侧菜单

    让我们来讲解如何使用 layui 递归实现动态左侧菜单。 什么是递归 在讲解 layui 递归实现动态左侧菜单之前,我们有必要先了解什么是递归。在计算机科学中,递归指的是一个函数可以调用自身的编程技巧,通常用来解决和数据结构有关的问题。递归函数通常具有以下特点: 至少有一个条件判断语句(递归的结束条件)。 调用自己函数本身。 步骤 接下来我们按照以下步骤来实…

    other 2023年6月27日
    00
  • bxslider使用教程

    以下是bxslider使用教程的完整攻略: 什么是bxslider? bxslider是一个基于jQuery的响应式图片轮播插件,可以用于创建漂亮的幻灯片、轮播图滑块等。 步骤1:引入bxslider 首先,需要HTML文件中引入jQuery和bxslider的CSS和JS文件,例如: <head> <link rel="styl…

    other 2023年5月6日
    00
  • N叉树的三种遍历(层次遍历、前序遍历、后序遍历)

    N叉树是一种特殊的树形结构,它的每个节点可以拥有多个子节点。在对N叉树进行遍历时,有三种常用的遍历方式:层次遍历、前序遍历和后序遍历。 层次遍历 层次遍历是一种逐层遍历整棵N叉树的方法,它是通过队列实现的。可以采用BFS算法(广度优先遍历)将每一层的节点先全部入队列,然后依次出队列并输出。 示例1: 对于如下的一棵简单的N叉树,进行层次遍历: 1 /|\ \…

    other 2023年6月27日
    00
  • 宽带常见故障及解决方法

    宽带常见故障及解决方法 宽带故障是生活中常见的问题之一,其原因可能包括家庭网络故障,运营商线路故障等。下面是几种宽带常见故障及解决方法来帮助您解决网络问题。 故障1:网络连接失败 解决方法 首先检查网络连接设置,确保电脑上的DHCP服务是否开启。确定DHCP服务开启后,网络连接应该能够自己获取IP地址,并正确连接到网络。 如果DHCP服务已经正常开启,但是连…

    other 2023年6月27日
    00
  • 一、tcga和gdc简介

    下面是关于“一、tcga和gdc简介”的完整攻略: 1. TCGA和GDC简介 TCGA(The Cancer Genome Atlas)是一个由国国立癌症研究所(NCI)和国立人类基因组研究所(NHGRI)共同发起癌症基因组计划,旨在通过对多种癌症类型的基因组学研究,揭示癌症的发生机制和治疗。GDC(Genomic Data Commons)是TCGA的继…

    other 2023年5月7日
    00
  • 如何使用TS对axios的进行简单封装

    下面我将详细讲解如何使用 TypeScript 对 Axios 进行简单封装。 第一步:安装依赖 我们首先需要安装 axios 和 @types/axios 两个依赖。 @types/axios 是对 axios 这个库的 TypeScript 类型定义文件,我们使用 TypeScript 的时候需要依赖。 npm install axios @types/…

    other 2023年6月25日
    00
  • 利用C++模拟实现STL容器:list

    利用C++模拟实现STL容器:list 1. 概述 在模拟实现STL容器:list之前,我们首先需要理解STL容器:list的特点和功能。 STL容器:list 是C++标准模板库中的一个双向链表容器。它允许在任意位置插入、删除元素,可以高效地在头部和尾部进行插入和删除操作。STL容器:list 的实现需要维护链表的数据结构,并提供操作链表的接口。 在这个攻…

    other 2023年6月28日
    00
合作推广
合作推广
分享本页
返回顶部