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

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

一、搭建测试环境

新建PyCharm项目

查看Python安装路径:

Windows+r -> cmd -> where python

切换终端类型为Windows PowerShell

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

File -> Settings -> Tools -> Terminal

Shell path : 'powershell.exe'

点击 OK 保存

安装所需要的库:

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

pytest==8.3.2 allure-pytest==2.13.5 jsonschema==4.23.0 PyYAML==6.0.1 requests==2.31.0

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

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接口地址
paramsURL查询参数

headers

请求头

jsonJSON格式请求体
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参数化

常用命令:

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("步骤")测试步骤

常用命令:

pytest --alluredir=./allure-result # 生成allure数据 allure serve ./allure-result # 启动web报告

4. jsonschema

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

常用方法:

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

Schema示例:

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

示例:

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格式特点:

# 键值对 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中的配置:

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

pytest --alluredir=allure-results

查看测试报告:

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

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

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

allure generate .\allure-results\ -o .\allure-report

http://www.jsqmd.com/news/485865/

相关文章:

  • 计算机毕业设计springboot电子病例系统 基于SpringBoot的智慧医疗健康管理平台设计与实现 基于Java的医院数字化诊疗信息系统开发
  • SeaweedFS与MinIO深度对比:架构差异与场景化选型指南
  • 【实时Linux工业PLC解决方案系列】第三十八篇 - 实时Linux PLC国产化芯片适配实践
  • AI大模型教程来了(大模型从入门到实战)AI大模型学习全攻略:30节课程+企业项目实战+500+论文资源包
  • 利用Windows特性(::$DATA)绕过文件上传检测的实战解析
  • YOLOv11自动截图与告警机制全攻略:从入门到实战,手把手教你构建智能监控系统
  • 探索DeepSeek在双色球历史数据分析中的娱乐性应用
  • YOLO11与DeepSORT融合实战:从零开始构建多目标跟踪系统
  • 影墨·今颜小红书模型生成作品集展示:覆盖美妆、旅行、美食多垂类
  • 计算机毕业设计springboot高校学生请假管理系统 基于SpringBoot的校园学生考勤与请假审批系统设计与实现 基于Java的高校学生事务请假管理平台开发
  • Hyper-V虚拟化环境下的多网口软路由单臂路由实战:VLAN配置与剩余端口上网全解析
  • Linux OOM Killer实战解析:从日志分析到问题定位
  • Redis面试题 01
  • 自举电路设计避雷手册:为什么你的Cboot总是不够用?
  • SDL:Self-Driving Lab
  • SecGPT-14B多场景落地:安全意识培训中生成钓鱼邮件识别互动测验题
  • 立创PulseTabLite:基于ESP32-S3的多NAS状态监控屏硬件设计与LVGL GUI开发全解析
  • 手把手教你用本地代理屏蔽Jetbrains验证域名(含详细hosts配置)
  • 计算机毕业设计springboot基于vue的汽车销售网站系统 基于SpringBoot的在线汽车交易平台设计与实现 基于Java的汽车电商服务系统开发
  • 基于IPv6与DDNS的远程办公解决方案:从路由器配置到Windows桌面控制
  • 华为路由器实战:路由递归与ECMP负载均衡配置详解(附避坑指南)
  • 从越狱到免越狱:利用TrollStore实现iPA包的提取与安装
  • 币安API实战:从零构建加密货币行情监控系统
  • 汽修单管理系统1.0源码下载
  • OpenClaw“龙虾”:风口之上的机遇与挑战
  • n8n子流程调用避坑指南:从数据库写入到模块化开发实战
  • WS-Discovery协议实战:从ONVIF设备搜索到Wireshark抓包解析
  • MySQL数据安全实战:Base64编码与AES加密的完美结合
  • Netdata实战指南:在Linux与Docker环境下打造高效监控系统
  • SecGPT-14B效果展示:多轮追问下的纵深防御策略生成与技术细节展开