简介
requests 是Python的第三方包,用来在Python去申请请求查看返回值的,同时也给做自动化请求非常有帮助
下载方法
pip install requests
使用方法
- 简单的一个get例子
"""
request
"""
# 导入第三方包
import requests
def test_01():
res = requests.get("https://cn.bing.com/") # 获取请求地址
print(res.text) # 打印返回数据 print(res.headers) # 响应的信息头 print(res.status_code) # 响应的http状态码 print(res.cookies) # 显示cookie
if __name__ == "__main__":
test_01()
- 简单的一个post例子
学post请求,工作中常用的有三种参数传递的方法,都是按照需求文档来进行
- form-data
- x-www-form-urlencoded
- raw-json
第一步、首先我们在postman中输入创建一个post请求,然后运行

第二步、点击code

第三步、选择requests,把代码粘贴到Python里面进行修改

第四步,查看信息
"""
request
"""
# 导入第三方包
import requests
def test_02_post_formdata():
u = "http://132.232.44.158:8080/morning/user/userLogin" # 接口地址
# payload,formdata格式的参数
d = "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"user.loginName\"\r\n\r\n2941635995@qq.com\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"user.loginPassword\"\r\n\r\na123456\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--"
r = requests.post(url = u,data = d) # 用post方法去打开url地址
# 这里为返回的信息
print(r.text)
print(r.status_code)
# 这里显示的结果为空
if __name__ == "__main__":
test_02_post_formdata()
"""
request
"""
# 导入第三方包
import requests
def test_post_json():""" json下的文件传参,json就是字典类型的,键值对的形式传参"""
u = "http://132.232.44.158:5000/userLogin/"
d = {"username":"test", "password":"123456", "captcha":"123456"}
r = requests.post(url = u,json = d)
print(r.text)
if __name__ == "__main__":
test_post_json()
注意:如果单接口,就不用添加headers,如果是多接口,那么就会涉及cookie,那么就最后添加headers,避免不必要的错误
request的测试流程
step1:我们来测试一个登陆的流程,这里我们要查看数据库,所以先对数据库进行关联,首先创建一个utils用来放之前写的pymysql的代码,里面放一个__init__.py的文件,这样pymysql里面的方法才能被引用

pymysql代码
import pymysql
def init(host,user,password,db):
db = pymysql.connect(host,user,password,db)
return db
"""
查询操作
"""
def query(sql,db):
"""
创建一个对数据库进行查询的方法
"""
cursor = db.cursor() # 获取游标窗口
try:
cursor.execute(sql) # 执行sql语句
res = cursor.fetchall() # 获取返回值
db.close() # 关闭数据库
return res
except:
print("sql语句错误")
return False
def commit(sql,db):
"""
对表进行增加,删除,修改都可以
"""
cursor = db.cursor()
try:
cursor.execute(sql) # 执行sql语句
db.commit() # 对数据进行保存
return True
except:
print("sql语句错误")
return False
request代码
"""
测试步骤
"""
import requests
from utils import demo02
# step1,构造请求
u = "http://132.232.44.158:5000/userLogin/"
d = {"username":"test", "password":"123456", "captcha":"123456"}
r = requests.post(url = u,json = d)
print(r.text)
# step2,断言http响应状态码,非生即死# 这个是整个互联网制定的规则,响应码
assert r.status_code == 200
# step3,断言响应信息
res = r.json() # res变成了字典 ,前提是服务器返回的信息必须是json格式的
assert res.get("code") == 200 # 这个是公司内部制定的规则
# step4,查询数据库,看是否有此记录(可选,登录,订单....)
# 目的:为了判断后台代码是否有问题
sql = "select * from tbl_user where username='test' and password='123456'"
res = demo02.init("132.232.44.158","vn","Langjintest!@#4##","lux")
reesult = demo02.query(sql,res)
assert len(reesult) == 1
print("登录测试用例通过")