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

【接口自动化测试】---requests模块

目录

1、接口自动化流程

2、requests模块

2.1、常见的请求方法

2.2、添加请求信息


1、接口自动化流程

接口自动化流程是面试考点

需求分析、挑选自动化接口、测试用例设计、搭建测试环境、设计测试框架、编写代码、执行测试、生成测试报告

1)需求分析

分析请求:明确接口的URL、请求方法、请求头、请求参数和请求体

分析响应:确定接口返回的数据格式,状态码、可能的错误信息

2)挑选自动化接口

3)设计自动化测试用例

根据接口的需求和功能,设计正向测试用例(正常场景)和反向测试用例(异常场景),包括边界值测试、参数组合测试等

4)搭建自动化测试环境

选择变成语言、开发环境(pycharm)来实现。如果选择python的话,安装必要的依赖库

5)设计自动化框架

设计一个框架来执行测试用例,包括报告生成、参数化处理和用例执行逻辑

6)编写代码

根据设计好的测试用例和框架来编写自动化测试脚本

7)执行用例

使用测试框架(如unittest、pytest)来执行编写的测试用例

8)生成测试报告

2、requests模块

安装:pip install requests==2.31.0

requests库是一个非常流行的HTTP客户端库,用于发送HTTP请求,requests.get就是发送一个get请求到指定的URL。request.get返回一个Response对象,这个对象包含了服务器返回的所有信息

r = requests.get("URL")

Response(返回值r)对象提供的属性/方法介绍:

2.1、常见的请求方法

r=requests.GET()/r=requests.request(method="GET")

eg:

import requests
get_r = requests.get("https://www.baidu.com")
post_r = requests.post("https://www.baidu.com")
req_r1 = requests.request(method="get", url="https://www.baidu.com")
req_r2 = requests.request(method="post", url="https://www.baidu.com")
print("get:", get_r.status_code)
print("post:", post_r.status_code)
print("method_get:", req_r1.status_code)
print("method_post:", req_r2.status_code)

运行结果:

2.2、添加请求信息

请求参数(data(POST)、json、params)(比如登录要传参账号、密码就要用data={})

请求头(header、cookies)

请求参数

请求头

例一:

下图是登录页面返回的json格式的数据:

下图是博客详情页请求头的数据:

也就是说:在博客系统里,登录接口返回了用户的登录凭证,后续请求其他的接口需要在请求头中添加上User_token_header

这个是博客详情页的,因为必须要先登录才能看,所有必须要加请求头:

例二:

一般我们用GET的时候,请求参数就用params。POST请求,是一个表单格式的话就用data

我们可以写r = requests.post(url=url、参数)

还可以写:r = requests.request(method="POST",url=url,参数)

例三:添加cookie信息

问题:上传数据是选择data、json还是params呢?(登录的时候用post)

http://www.xdnf.cn/news/17257.html

相关文章:

  • SpringBoot的profile加载
  • 可编辑51页PPT | 某鞋服品牌集团数字化转型项目建议书
  • 微服务如何保证系统高可用?
  • iOS 签名证书全流程详解,申请、管理与上架实战
  • 腾讯iOA:数据安全的港湾
  • 0_外设学习_ESP8266+云流转(no 0基础)
  • 最新的GPT5效果如何,我试了一下(附加GPT5大模型免费使用方法)
  • 力扣-189.轮转数组
  • 秋招笔记-8.8
  • 《Leetcode》-面试题-hot100-链表
  • django uwsgi启动报错failed to get the Python codec of the filesystem encoding
  • Android 系统的安全 和 三星安全的区别
  • C++信息学奥赛一本通-第一部分-基础一-第3章-第1节
  • RAG初步实战:从 PDF 到问答:我的第一个轻量级 RAG 系统(附详细项目代码内容与说明)
  • 2025年渗透测试面试题总结-07(题目+回答)
  • 系统网络端口安全扫描脚本及详解
  • Chrome与Firefox浏览器安全运维配置命令大全:从攻防到优化的专业实践
  • 分治-快排-215.数组中的第k个最大元素-力扣(LeetCode)
  • 【Linux】从零开始:RPM 打包全流程实战万字指南(含目录结构、spec 编写、分步调试)
  • Android 的CameraX的使用(配置,预览,拍照,图像分析,录视频)
  • 使用Python提取PDF大纲(书签)完整指南
  • 持中文的 TXT 合并 PDF 工具 —— GUI + ReportLab 实战
  • Emacs 折腾日记(二十九)—— 打造C++ IDE
  • 使用 Grunt 替换 XML 文件中的属性值
  • 亚马逊跨类目铺货广告运营:从粗放投放to智能提效的省力法则
  • iOS混淆工具有哪些?跨平台 App 混淆与保护的实用方案
  • 零基础深度学习规划路线:从数学公式到AI大模型的系统进阶指南
  • 基于linux环境在centos7上部署gitlab
  • Claude Code 实战场景解析:从代码生成到系统重构的典型应用案例
  • 【类与对象(中)】C++类默认成员函数全解析