接口测试基础+requests库

接口测试基础

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())

在这里插入图片描述

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值