自动化测试复习巩固第一天,requests的用法

发布时间 2023-12-18 10:45:31作者: xuhao2008

如何快速发送post请求

因为我用的python语言,所以大家需要在本地安装python语言和pycharm,如何安装请自行查找教程,这里不做过多赘述

这里需要提前下载安装好需要的第三方库requests,requests 是一个流行的 Python 库,用于发送 HTTP 请求。它提供了一种简单而优雅的方式来与 Web 服务进行交互,可以用于执行各种 HTTP 请求,如 GET、POST、PUT、DELETE 等,并处理服务器响应。

安装requests库

方式一:在本地的cmd环境下,使用pip install requests命令下载requests包,我这里已经下载了,大家自行下载

image-20231218095635336

 

方式二:打开pycharm--setting--python Interpreter搜索requests下载,可以看到我已经下载了

image-20231218100120632

requests用法

requests 包的使用方法非常简单和直观。

1.发送get请求

import requests

method = "get"
url = "http://api.example.com/data"
response = requests.request(method,url)
print(response.status_code)
print(response.json())  # 获取响应的 JSON 数据

2.发送post请求

import requests

method = "post"
url = "http://api.example.com/submit"
data = {"name": "John", "age": 25}
response = requests.request(method,url, data=data)
print(response.status_code)
print(response.text)  # 获取响应的文本内容

3.发送带有请求头的请求

import requests

method = "get"
url = "http://api.example.com/data"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.request(method,url, headers=headers)
print(response.status_code)
print(response.json())

4.处理会话

import requests

session = requests.Session()
session.headers.update({"User-Agent": "Mozilla/5.0"})
response1 = session.get("http://api.example.com/login")
response2 = session.post("http://api.example.com/submit", data={"name": "John"})

5.处理认证和 Cookie

import requests

url = "http://api.example.com/data"
response = requests.get(url, auth=("username", "password"))
print(response.status_code)
print(response.json())

# 或者使用 Cookie
cookies = {"session_id": "12345"}
response = requests.get(url, cookies=cookies)

6.文件上传

import requests

url = "http://api.example.com/upload"
files = {"file": open("data.txt", "rb")}
response = requests.post(url, files=files)
print(response.status_code)
print(response.text)

这些只是 requests 库的一些基本用法,大家可以参考requests官方文档查看更多的功能和选项

使用request库发送http请求

进入pycharm创建项目,创建python文件

第一步导入requests库

import requests

第二步准备好测试数据

url = "http://192.168.3.xx/zentaopms/www/index.php?m=user&f=login"
method = "post"
data = {"account":"xxx",
       "password":"*****"}

这里我准备的是自己搭建的禅道,IP和账号密码就脱敏了,大家自行准备网站进行测试

第三步发送http请求

re = requests.request(method,url,json=data)

这里闹了一个乌龙,我先写的是(url,method,json=data),结果报错了,看了requests用法才发现,如果单独使用url,method这样传参的话,得先把method放在第一个参数。如果想把url放第一个参数,可以使用url=url,method=method这样。这里把请求传给re变量是为了方便后面查看结果。

第四步查看请求结果

print("禅道登录状态码是:",re.status_code)
print("禅道登录响应头是:",re.headers)
print("禅道登录响应类型是:",type(re.text))
print("禅道登录响应数据是:",re.text)

第五步查看返回结果

image-20231218101428882