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

接口测试基础+requests库

接口测试基础+requests库

  • 接口测试基础
    • URL格式
      • 协议
      • IP地址
      • 端⼝号
      • 资源路径
      • 查询参数
    • 练习
    • HTTP请求
      • 请求行
      • 请求头
      • 请求体
      • 浏览者开发工具
  • Requests库
    • Requests库安装和简介
    • 设置http请求语法
    • 应用案例
      • py02_tpshop_search.py
      • py03_tpshop_login.py
      • py04_ihrm_login.py

接口测试基础

URL格式

在这里插入图片描述

协议

http、https。 作⽤:指定数据传输规则

IP地址

也就是域名。 作⽤在⽹络环境中,唯⼀定位 ⼀台主机

端⼝号

作⽤:在主机上,唯⼀定义个应⽤程序。
可以省略。如果省略,跟随协议。 http - 80 。 Https - 443

资源路径

作⽤:应⽤对应的数据资源。
可以省略。如果省略,资源路径为 “/”

查询参数

作⽤:给资源传递参数
可以省略。如果省略,没有 ?分割符。
可以有多组。每组 k=v 格式。各组之间 ⽤ “&” 隔分。

练习

请写出以下URL的各个组成部分。这个URL没有写出端⼝号,它的端⼝是什么?

http://tpshop-test.itheima.net/index.php?m=Home&c=User&a=do_login

在这里插入图片描述

HTTP请求

⼀定产⽣于 客户端。当 客户端给服务器发送请求时,使⽤该协议。(请求报⽂、请求包)
在这里插入图片描述

//请求行
POST http://demo.zentao.net/user-login.html HTTP/1.1
//请求头
Host: demo.zentao.net
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101
Firefox/68.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://demo.zentao.net/user-login.html
Content-Type: application/x-www-form-urlencoded
Content-Length: 54
Connection: keep-alive
Upgrade-Insecure-Requests: 1
//请求体
account=demo&password=efc4a3b32e48054865e5a8321cfda3e4

请求行

  • LGET:查询 —— 没有请求体
  • POST:添加 (注册、登录)
  • DELETE:删除 —— 没有请求体
  • PUT:修改

请求头

  • 位于请求⾏之下,空⾏之上的部分。 数据组织格式 ⼀定是 k:v 对
  • Content-Type : 作⽤,指定请求体的数据类型

application/json:请求体数据类型为json
application/x-www-form-urlencoded:请求体的数据类型 为 表单类型

请求体

  • 位于空⾏之下
  • 有的请求协议 是没有请求体。如:get、delete
  • 请求体的数据类型,受请求头中 Content-Type 的值影响

浏览者开发工具

  • 抓包获取 ihrm系统的登录接⼝ 和 tpshop登录接⼝,解析请求数据
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

Requests库

Requests库安装和简介

Requests库 是 Python编写的,基于urllib 的 HTTP库,使用方便
在这里插入图片描述

设置http请求语法

resp = requests.请求方法(url='URL地址', params={k:v}, headers={k:v},
data={k:v}, json={k:v}, cookies='cookie数据'(如:令牌))
请求方法:
get请求 - get()
post请求 - post()
put请求 - put()
delete请求 - delete()
url: 待请求的url - string类型
params:查询参数 - 字典
headers:请求头 - 字典
data:表单格式的 请求体 - 字典
json:json格式的 请求体 - 字典
cookies:cookie数据 - string类型
resp:响应结果
  • 入门案例:使用Requests库访问 百度 http://www.baidu.com
import requests

resp = requests.get(url='http://www.baidu.com')
print(resp.text)

在这里插入图片描述

应用案例

py02_tpshop_search.py

【带查询参数 的get请求】使用Requests库,请求 tpshop商城 搜索商品接口。查询 iphone
链接: https://demo6.tp-shop.cn/Home/User/login.html

import requests

# 发送 get 请求,指定 url,获取 响应结果
# 方法1:
resp = requests.get(url="https://demo6.tp-shop.cn/Home/Goods/search.html?q=iPhone")
# 方法2:
# resp = requests.get(url="https://demo6.tp-shop.cn/Home/Goods/search.html",
#                     params={"q": "iPhone"})

# 查询响应结果
print(resp.text)

在这里插入图片描述

py03_tpshop_login.py

【带 表单数据 的post请求】使用Requests库,完成 tpshop商城 登录接口调用。返回 ”验证码错误“ 即可。

import requests

# 发送 post 请求,指定url、请求头、请求体, 获取响应结果
resp = requests.post(url="https://demo6.tp-shop.cn/index.php?m=Home&c=User&a=do_login&t=0.06467934447015278",
                     # headers={"Content-Type": "application/x-www-form-urlencoded"},
                     data={"username": "13012345678", "password": "1234567", "verify_code": "JNTD"})

# 打印响应结果 - 文本
print(resp.text)
# 打印响应结果 - json
print(resp.json())

在这里插入图片描述

py04_ihrm_login.py

【带 json数据 的post请求】使用Requests库,完成 iHRM系统 成功登录。返回 ”令牌数据“。

import requests

# 发送 post 登录请求,指定 url、请求头、请求体,获取响应结果
resp = requests.post(url="https://ihrm-java.itheima.net/api/sys/login",
                     # headers={"Content-Type": "application/json"},
                     json={"mobile": "13800000002", "password": "123456"})

# 打印响应结果
print(resp.json())

在这里插入图片描述


http://www.kler.cn/a/274147.html

相关文章:

  • P7——pytorch马铃薯病害识别
  • Text组件的用法
  • Python——day09
  • 软件测试之全链路压测详解
  • 小程序app封装公用顶部筛选区uv-drop-down
  • 重生之我在异世界学编程之C语言:深入预处理篇(上)
  • 手写 UE4中的 TArray
  • 【JAVA快速编写UI】 Java 编写一个编码转换和加解密工具,可以创建一个简单的 GUI 应用程序(例子)
  • 力扣大厂热门面试算法题 43-45
  • 企企通:AI技术赋能供应链智能化升级,打造数字产业集群
  • 前端流式(stream)请求,获取持续响应的方式
  • 基于java的宠物信息交流平台设计(含源文件)
  • json-server库的使用,实现数据模拟
  • PyTorch学习笔记之基础函数篇(十三)
  • Spring Security的开发
  • Python-GEE绘制DEM精美图片
  • iOS图片占内存大小与什么有关?
  • OSPF特殊区域(stub\nssa)
  • 电商数据采集效率开挂【Python电商数据采集API接口】
  • Jenkins实现CICD(3)_Jenkins连接到git
  • AIGC元年大模型发展现状手册
  • Java 环境一键部署
  • 赛道快马问题
  • 香港科技大学广州|智能制造学域博士招生宣讲会—同济大学专场
  • 基于单片机的模糊PID炉温控制系统设计
  • bios开启secure boot选项,进行pxe安装操作系统时报错,求解决办法