博客接口自动化测试--搭建测试环境&库的介绍&安装allure

一、搭建测试环境

新建PyCharm项目

查看Python安装路径:

Windows+r -> cmd -> where python

切换终端类型为Windows PowerShell

  • PowerShell:功能更强,适合复杂脚本、管道操作

File -> Settings -> Tools -> Terminal

Shell path : 'powershell.exe'

点击 OK 保存

安装所需要的库:

1、创建 requirements.txt 文件,输入库名及版本号

python 复制代码
pytest==8.3.2
allure-pytest==2.13.5
jsonschema==4.23.0
PyYAML==6.0.1
requests==2.31.0

2、通过包管理器 pip 一件安装

python 复制代码
pip install -r requirements.txt

3、检查有没有安装成功

pip list

已经安装成功

二、库的介绍

1. requests

HTTP客户端库,用户发送HHTTP请求

常用方法:

|-------------------------------|------------|
| 方法 | 说明 |
| get(url,params=None) | 发送get请求 |
| post(url,data=None,json=None) | 发送post请求 |
| put(url,data=None) | 发送put请求 |
| delete(url) | 发送delete请求 |

常用参数:

|---------|-----------|
| 参数 | 说明 |
| url | 接口地址 |
| params | URL查询参数 |
| headers | 请求头 |
| json | JSON格式请求体 |
| data | 表单格式请求体 |
| timeout | 超时时间 |

返回值(Response对象):

|---------------|-----------|
| 属性/方法 | 说明 |
| r.status_code | 状态码 |
| r.text | 字符串响应体 |
| r.json() | JSON格式响应体 |
| r.headers | 响应头 |

2. pytest

Python测试框架,用于编写和执行测试用例

核心功能:

|--------------------------|----------|
| 功能 | 说明 |
| test_xxx.py | 测试文件命名规则 |
| def test_xxx(): | 测试函数命名规则 |
| assert | 断言 |
| @pytest.fixture | 测试夹具 |
| @pytest.mark.parametrize | 参数化 |

常用命令:

bash 复制代码
pytest                 # 运行所有测试
pytest -v              # 显示详细信息
pytest -k "login"      # 运行指定关键字测试
pytest test_demo.py    # 运行指定文件
pytest --html=report.html  # 生成HTML报告

3. allure-pytest

pytest的插件,用于生成美观的测试报告

常用装饰器:

|---------------------------|--------|
| 装饰器 | 说明 |
| @allure.feature("模块名") | 功能模块 |
| @allure.story("故事点") | 子功能 |
| @allure.title("用例标题") | 测试用例标题 |
| @allure.description("描述") | 用例描述 |
| @allure.severity("级别") | 用例严重级别 |
| @allure.step("步骤") | 测试步骤 |

常用命令:

bash 复制代码
pytest --alluredir=./allure-result  # 生成allure数据
allure serve ./allure-result         # 启动web报告

4. jsonschema

JSON数据验证库,用于校验接口返回的数据格式

常用方法:

|----------------------------|----------------|
| 方法 | 说明 |
| validate(instance, schema) | 验证数据是否符合schema |

Schema示例:

python 复制代码
schema = {
    "type": "object",
    "required": ["name", "age"],
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer", "minimum": 0},
        "email": {"type": "string", "format": "email"}
    },
    "additionalProperties": False
}

验证规则:

|---------------------|---------|------------------------------|
| 关键字 | 说明 | 示例 |
| type | 数据类型 | "string","integer","boolean" |
| required | 必填字段 | ["name","age"] |
| minimum/maximum | /最小值最大值 | 18/188 |
| minLength/maxLength | 字符串长度范围 | 5/50 |
| pattern | 正则表达式 | "^1[3-9]\d{9}$" |
| enum | 枚举值 | ["male","female"] |
| format | 格式 | "email","date","uri" |

5. PyYAML

yaml文件解析库,用于读写yaml格式的配置文件或测试数据

常用方法:

|--------------------------------|-----------------------|
| 方法 | 说明 |
| yaml.safe_load(file) | 读取YAML文件 → Python对象 |
| yaml.safe_dump(data, file) | Python对象 -> 写入yaml文件 |
| yaml.safe_load_all(file) | 读取多文档yaml |
| yaml.safe_dump_all(docs, file) | 写入多文档yaml |

示例:

python 复制代码
import yaml

# 读取YAML
with open("config.yaml", "r", encoding="utf-8") as f:
    data = yaml.safe_load(f)
    print(data["database"]["host"])

# 写入YAML
data = {
    "database": {
        "host": "localhost",
        "port": 3306,
        "user": "root"
    }
}
with open("config.yaml", "w", encoding="utf-8") as f:
    yaml.safe_dump(data, f, allow_unicode=True)

YAML格式特点:

XML 复制代码
# 键值对
name: 张三
age: 25

# 列表
hobbies:
  - 读书
  - 编程
  - 音乐

# 对象嵌套
user:
  name: 李四
  address:
    city: 北京
    street: 长安街

6. 五者之间的关系

三、安装allure

下载安装包链接:https://github.com/allure-framework/allure2/releases/download/2.30.0/allure-2.30.0.zip

解压 -> 找到bin目录 -> 复制文件路径

配置环境变量:

确认结果:打开cmd查看allure版本

**注意:**可能存在部分情况,在cmd上执行命令可以通过,但是在pycharm上执行allure--version提示找不到的命令,需要手动修改pycharm中的配置:

运行自动化,并指定测试报告放置路径:

bash 复制代码
pytest --alluredir=allure-results

查看测试报告:

1、启动⼀个本地服务器来在浏览器中展示测试报告

bash 复制代码
#不指定端⼝号和主机地址
allure serve .\allure-results\
#指定端⼝号
allure serve --port 8787 .\allure-results\
#清除上⼀次⽣成的测试报告
allure serve .\allure-results\ --clean-alluredir

2、从测试结果生成测试报告

bash 复制代码
allure generate .\allure-results\ -o .\allure-report
相关推荐
2401_900151542 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python
还是奇怪2 小时前
Python第十课:异常捕获与测试入门
开发语言·python·异常捕获
yj15582 小时前
怎么样避开装修易踩的10个坑
python
花间相见2 小时前
【JAVA基础09】—— 赋值与三元运算符:从基础到实操的避坑指南
java·开发语言·python
wmfglpz882 小时前
使用Python进行PDF文件的处理与操作
jvm·数据库·python
LitchiCheng2 小时前
Mujoco 仿真相机下 SolvePnp 获得 Apriltag 位姿
人工智能·python
PD我是你的真爱粉2 小时前
Django的MTV架构
python·架构·django
小江的记录本2 小时前
【AOP】AOP-面向切面编程 (系统性知识体系全解)
java·前端·后端·python·网络协议·青少年编程·代理模式
小鸡吃米…2 小时前
调试线程应用程序
开发语言·python