使用request库实现接口测试-笔记

目录

  • request库
    • request库的安装和查验
    • request发送请求的语法
    • 获取响应结果指定内容
    • 案例
  • Unittest框架集成Requests库
    • Unittest框架语法
    • Unittest框架基础代码
    • 案例

request库

request库是python编写的,基于urllib的HTTP库,使用方便。

request库的安装和查验

安装:
方法一:pip install requests
方法二:pip install -i 镜像源 requests
方法三:pycharm设置中解释器中去安装
在这里插入图片描述
验证:
方法一:pip show requests
方法二:pip list(查看列表中是否存在requests)
方法三:pycharm设置中解释器确认是否存在requests

request发送请求的语法

resp=requests.请求方法(url='url地址',params={k:v},header={k:v},data={k:v},json={k,v},cookies='cookie数据') 请求方法:get请求、post请求、put请求、delete请求url:待请求的url  -----string类型params:查询参数   ------字典headers:请求头   --------字典data:表单格式的请求体    ----字典json:json格式的请求体  ------字典cookie:cookie数据    ------string类型resp:响应结果

获取响应结果指定内容

常用
获取URL:resp.url
获取响应状态码:resp.status_code
获取cookie:resp.cookies
获取响应头:resp.headers
获取响应体:
文本格式:resp.text
json格式:resp.json()

import requests
resp=requests.get(url="http://www.baidu.com")#获取URL:resp.url
print(resp.url)
#获取响应状态码:resp.status_code
print(resp.status_code)
#获取cookie:resp.cookies
print(resp.cookies)
#获取响应头:resp.headers
print(resp.headers)
#获取响应体:
#	文本格式 :resp.text
#	json格式:resp.json()
print(resp.text)
print(resp.json())     #当实际响应体不符合 JSON 格式时调用会报错

案例

入门案例:使用Request库访问百度http:www.baidu.com

import requests
resp=requests.get(url="https://www.baidu.com")
print(resp.text)

案例1:带参数的get请求,使用requests库,请求淘宝搜索接口,查询iphone

import requests
#resp=requests.get(url="https://s.taobao.com/search?q=iPhone")
parma={"q":"iPhone"}
resp=requests.get(url="https://s.taobao.com/search",params=parma)
print(resp.text)

案例2:post请求,有请求头和表单参数

import requests
headers={"content-type":"application/x-www-form-urlencoded"
}
url="https://login.taobao.com/newlogin/login.do?appName=taobao&fromSite=0"
data={"loginId": "15897908103","password2":"991d2723de5f47a7d2af0bb265f24723f76aad30cd229fb6aa341685c703b2c43b1ca8d447cfa0f5c8574b30c01f07b39584ed9bfc066a28ab4fb7c018ad7d09b807a376b2f04304c2c1dd1f588b16b7c799584a558335bfa0ed0a53e0e15623a2490a9c62af4f53f6088a2c88988713dc60eb2c55253325e4baa958b40b407f"
}
param={"appName":"taobao","formSite":0
}
resp=requests.post(url=url,params=param,headers=headers,data=data)print(resp.text)

Unittest框架集成Requests库

Unittest是开发人员用来实现“单元测试的框架”,可以在自动化“测试执行”时使用
使用Unittest的好处:
1.方便管理、维护测试用例
2.提供丰富的断言方法
3.生产测试报告(需要插件HTMLTestReport)

Unittest框架语法

TestCase

#1.导包
import unittest
#定义测试类继承TestCase
class TestXxxx(unittest.TestCase):#测试用例,即测试方法,建议方法名test+编号def test_01(self):pass

TestFixture
方法级别的前置方法setup(self);后置方法teardown(self)(在每个函数执行之前之后执行)
类级别的前置方法:setupclass(cls)后置方法teardownclass(cls).(方法前需加装饰器@classmethod;在类执行之前之后执行)

TestSuite&TestLoader

#方法一
#实例化测试集对象
suite=unittest.TestSuite()
#把测试用例添加到测试集
suite.addTest(unittest.makesuite(类名))
#方法二(搜索文件名可通过*通配符查询)
suite unittest.TestLoader().discover("搜索目录",“搜索文件名”)

HTMLTestRunner

runner=HTMLTestRunner("报告存放路径",title="报告标题",description='描述信息')
runner.run(suite)

Unittest框架基础代码

import unittest
from findIphone import add
class TestAdd(unittest.TestCase):@classmethoddef setUpClass(cls):print("开始测试")@classmethoddef tearDownClass(cls):print("测试结束")def setUp(self):print("用例开始测试")def tearDown(self):print("用例测试结束")def test01_add(self):self.assertEqual(3,add(1,2))def test02_add(self):self.assertEqual(4,add(2,2))
import unittest
from htmltestreport import HTMLTestReport
suite=unittest.TestLoader().discover('.','testAdd.py')
runner=HTMLTestReport('report.html')
runner.run(suite)

案例

import unittest
import requestsclass TestFind(unittest.TestCase):def test01_find(self):url='https://mbd.baidu.com'resp=requests.post(url=url)self.assertEqual(200,resp.status_code)#断言json串中的数据seccessself.assertEqual(True,resp.json()['seccess'])
import unittest
from htmltestreport import HTMLTestReportsuite=unittest.TestLoader().discover('.','request*.py')
runner=HTMLTestReport('report.html')
runner.run(suite)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/70174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速傅里叶离散变换FFT (更新中)

声明:参考了 y y c yyc yyc 的 blog 和 PPT (from smwc) ,以及 w z r wzr wzr 的 blog 。 目录 Part 1 多项式Part 2 FFT概论Part 3 点值与插值Part 4 复数,单位根Part 5 Part 1 多项式 定义:对于有限数列 A 0 A_{0} A0​~ n…

【C++】STL——list的使用

目录 💕1.带头双向链表List 💕2.list用法介绍 💕3.list的初始化 💕4.size函数与resize函数 💕5.empty函数 💕6.front函数与back函数 💕7.push_front,push_back,pop_front,pop_back函数…

2021Java面试-基础篇

文章目录 前言一: Java概述 1、何为编程2、JDK1.5之后的三大版本3、JVM,JRE和JDK的关系4、什么是跨平台?原理是什么5、Java语言有哪些特点6、什么是字节码?采用字节码的最大好处是什么7、什么是Java程序的主类?应用程序和小程序的…

MapStruct工具类的使用

文章目录 1.简介2.作用2.1 属性拷贝2.2 类型安全2.3 性能高效2.4 自定义转换 3.如何使用3.1 创建一个maven工程项目并引入mapstruct的坐标依赖:3.2 源对象类3.3 目标对象类(和源对象类中的字段属性名相同)3.4 创建接口SyncMapper(…

FPGA| 使用Quartus II报错Top-level design entity ““ is undefined

1、使用FPGA准备点亮LED测试下板子,发现这个报错Error (12007): Top-level design entity "LEDLED" is undefined 工程如上图 报错如下图 2、分析到原因是因为工程名称和顶层模块里面的module名称不一样导致 解决办法:修改module名称和顶层模…

LeetCode - #198 打家劫舍

网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…

【DeepSeek】本地私有化部署 DeepSeek 模型教程

一、引言 DeepSeek 模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自身需求进行定制化配置。本教程将详细介绍如何在本地进行 DeepSeek 模型的私有…

【玩转 Postman 接口测试与开发2_016】第13章:在 Postman 中实现契约测试(Contract Testing)与 API 接口验证(上)

《API Testing and Development with Postman》最新第二版封面 文章目录 第十三章 契约测试与 API 接口验证1 契约测试的概念2 契约测试的工作原理3 契约测试的分类4 DeepSeek 给出的契约测试相关背景5 契约测试在 Postman 中的创建方法6 API 实例的基本用法7 API 实例的类型实…

proxmox通过更多的方式创建虚拟机

概述 作为一名资深运维工程师,我们经常需要在 Proxmox 虚拟化平台上创建和管理虚拟机。本文将介绍三种不同的方式在 Proxmox 上创建 Ubuntu 虚拟机: 通过 Proxmox 命令创建虚拟机通过 Shell 脚本自动化创建虚拟机使用 Proxmox API 创建虚拟机 每种方式…

【分布式架构理论3】分布式调用(2):API 网关分析

文章目录 一、API 网关的作用1. 业务层面:简化调用复杂性2. 系统层面:屏蔽客户端调用差异3. 其他方面: 二、API 网关的技术原理1. 协议转换2. 链式处理3. 异步请求机制1. Zuul1:同步阻塞处理2. Zuul2:异步非阻塞处理 三…

使用线性回归模型逼近目标模型 | PyTorch 深度学习实战

前一篇文章,计算图 Compute Graph 和自动求导 Autograd | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started 使用线性回归模型逼近目标模型 什么是回归什么是线性回归使用 PyTorch 实现线性回归模型代码执行结…

20250205——Windows系统基于ollama的DeepSeek-R1本地安装

1、安装ollama 1.1 Windows系统 打开ollama官网链接Download Ollama on Windows,根据自己的系统下载安装包,如果是Windows系统,下载Windows版本。 1.1 Linux系统 (这个是因为运行遇到报错了,想自己记录一下解决方法&a…

VSCode中使用EmmyLua插件对Unity的tolua断点调试

一.VSCode中搜索安装EmmyLua插件 二.创建和编辑launch.json文件 初始的launch.json是这样的 手动编辑加上一段内容如下图所示: 三.启动调试模式,并选择附加的进程

pytorch基于FastText实现词嵌入

FastText 是 Facebook AI Research 提出的 改进版 Word2Vec,可以: ✅ 利用 n-grams 处理未登录词 比 Word2Vec 更快、更准确 适用于中文等形态丰富的语言 完整的 PyTorch FastText 代码(基于中文语料),包含&#xff1…

JVS低代码逻辑引擎多种业务场景触发案例配置:涵盖列表页按钮、表单数据、流程审批、外部API接口调用等

逻辑引擎作为JVS低代码开发套件的核心组件,专注于业务逻辑的快速构建与实现,它扮演着程序配置与执行的核心角色,适用于多样化的应用场景。该逻辑引擎设计灵活,能够通过多种配置方式被触发,以精准响应各类业务需求并实现…

文字加持:让 OpenCV 轻松在图像中插上文字

前言 在很多图像处理任务中,我们不仅需要提取图像信息,还希望在图像上加上一些文字,或是标注,或是动态展示。正如在一幅画上添加一个标语,或者在一个视频上加上动态字幕,cv2.putText 就是这个“文字魔术师”,它能让我们的图像从“沉默寡言”变得生动有趣。 今天,我们…

2024年12月 Scratch 图形化(四级)真题解析 中国电子学会全国青少年软件编程等级考试

202412 Scratch 图形化(四级)真题解析 中国电子学会全国青少年软件编程等级考试 一、选择题(共10题,共30分) 第 1 题 列表存放全班同学的身高,小猫运行下列程序,下列选项说法正确的是?( &#…

基于springboot的在线BLOG博客网

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 项目包含: 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…

Colorful/七彩虹 隐星P15 TA 24 原厂Win11 家庭版系统 带F9 Colorful一键恢复功能

Colorful/七彩虹 隐星P15 TA 24 原厂Win11 家庭中文版系统 带F9 Colorful一键恢复功能 自动重建COLORFUL RECOVERY功能 带所有随机软件和机型专用驱动 支持机型:隐星P15 TA 24 文件下载:asusoem.cn/745.html 文件格式:ISO 系统版本&…

Unity游戏(Assault空对地打击)开发(3) 摄像机的控制

详细步骤 打开My Assets或者Package Manager。 选择Unity Registry。 搜索Cinemachine,找到 Cinemachine包,点击 Install按钮进行安装。 关闭窗口,新建一个FreeLook Camera,如下。 接着新建一个对象Pos,拖到Player下面…