request 简单应用

简介

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\[email protected]\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("登录测试用例通过")

猜你喜欢

转载自www.cnblogs.com/cheneyboon/p/11868998.html