cookie和session关联的接口

申明:
1、做接口自动化一般不会通过request去发送请求,而是通过session发送请求,这样子 的话就不用考虑接口的关联。
2、request.request()和session.request()的区别在于:前者的每个请求都是独立的,后面会关联所有的请求的cookies信息(类似于jmeter的http cookies管理器)
class TestLogin:
token = “” #定义一个为空的类变量
access_token = “” #定义一个为空的变量
csrf_token =“” #定义一个为空的变量
cookies = “”
def test_phpwind_start(self): # 访问php首页
url = “http://47.107.116.139/phpwind/”
res = requests.post(url)
result = res.text
TestLogin.csrf_token = re.search(‘name=“csrf_token” value=“(.*?)”’,result)[1]
print(TestLogin.csrf_token)
TestLogin.cookies= res.cookies

def test_phpwind_login(self):  # phpwind登录接口
    url = "http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun"
    headers = {
        "Accept":"application/json, text/javascript, /; q=0.01",
        "X-Requested-With":"XMLHttpRequest"
    }
    data = {
        "username":"cc,
        "password": "17c",
        "csrf_token": TestLogin.csrf_token,
        "backurl": "http://47.107.116.139/phpwind/",
        "invite": ""
    }
    res = requests.post(url, headers= headers,data=data,cookies=TestLogin.cookies)
    result = res.json,TestLogin.cookies
    print(result)

if name == ‘main’:
pytest.main()
2、进行统一的处理
import re

import jsonpath
import pytest
import requests

class TestLogin:

token = ""  #定义一个为空的类变量
access_token = ""  #定义一个为空的变量
csrf_token ="" #定义一个为空的变量
cookies = ""
sess = requests.session()   #创建一个session的对象


def test_login_b2c(self):    #登录测试用例
    url = "http://101.34.221.219:8010/api.php?s=user/login"
    params = {
       "application":"app",
       "application_client_type":"h5"
    }
    data = {
        "accounts": "cc",
        "pwd": "17cc8",
        "type": "username"
    }
    res = TestLogin.sess.request(method="post",url=url,json=data,params=params)  #sesssion关联请求
    print(res.json())
    result = res.json()
    TestLogin.token = result["data"]["token"]  #类变量通过类名来访问
    print(TestLogin.token)

def test_order_list(self):  # 订单列表接口
    url = "http://101.34.221.219:8010/api.php?s=order/index"
    params = {
        "application": "app",
        "application_client_type": "h5",
        "token":TestLogin.token
    }
    data = {
        "page": 1,
        "keywords": "",
        "status": "-1",
        "is_more": 1
    }
    res = TestLogin.sess.request(method="post",url=url,json=data,params=params)
    # res = requests.post(url, json=data, params=params)
    print(res.json())

def test_get_access_token(self):  # 获取微信公众号access_token接口
    url = "https://api.weixin.qq.com/cgi-bin/token"
    params = {
        "grant_type": "client_credential",
        "appid": "wx....79866f",
        "secret": "e68.....2c86....7056817"
    }
    res = TestLogin.sess.request(method="get",url=url, params=params)
    # res = requests.get(url, params=params)
    result = res.json()
    TestLogin.access_token=result["access_token"]
    print(TestLogin.access_token)

def test_file_upload(self):  # 文件上传的接口
    url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg"
    params = {
        "access_token": TestLogin.access_token
    }
    data ={
        "media": open(r"F:\zidonghua.png",mode="rb")
    }
    res = TestLogin.sess.request(method="post",url=url, files=data, params=params)
    # res = requests.post(url, params=params,files=data)
    result = res.json
    print(result)

def test_phpwind_start(self):  # 访问php首页
    url = "http://47.107.116.139/phpwind/"
    res = TestLogin.sess.request(method="post",url=url)
    # res = requests.post(url)
    result = res.text
    TestLogin.csrf_token = re.search('name="csrf_token" value="(.*?)"',result)[1]
    print(TestLogin.csrf_token)
    TestLogin.cookies= res.cookies

def test_phpwind_login(self):  # phpwind登录接口
    url = "http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun"
    headers = {
        "Accept":"application/json, text/javascript, /; q=0.01",
        "X-Requested-With":"XMLHttpRequest"
    }
    data = {
        "username":"cc",
        "password": "cc228",
        "csrf_token": TestLogin.csrf_token,
        "backurl": "http://47.107.116.139/phpwind/",
        "invite": ""
    }
    res = TestLogin.sess.request(method="post",headers=headers,url=url, data=data)
    res = requests.post(url, headers= headers,data=data,cookies=TestLogin.cookies)
    result = res.json,TestLogin.cookies
    print(result)

if name == ‘main’:
pytest.main()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值