【pytest】七、pytest之parametrize结合yaml实现接口自动化

1、使用requests模块,进行接口自动化,requests有必要自己封装的;

        请求方式有多种,但我们一般用session的方式

request使用session的方法去连接,可以做cookie的关联;

用session发请求,会自动关联cookie,所以一般用这种方式去发送请求;

from common.common_util import CommonUtil

import pytest

from common.yaml_util import read_yaml
import requests

class TestLogin(CommonUtil):

    # request使用session的方法去连接,可以做cookie的关联;
    # 用session发请求,会自动关联cookie,所以一般用这种方式去发送请求;
    # requests.session(),是一个方法,定义在这个类中,传给session变量
    # 下面的login防范中,用TestLogin.session来调用这个方法
    session = requests.session()


    #通过key去提取value,如caseinfo['request']['method'],提取method的值
    @pytest.mark.parametrize('caseinfo',read_yaml('testcase/login.yaml'))
    def test_login_01(self,caseinfo):
        print("\n测试01号登录成功")
        print(caseinfo)
        name = caseinfo['name']
        method = caseinfo['request']['method']
        url = caseinfo['request']['url']
        data = caseinfo['request']['data']
        header= caseinfo['request']['headers']
        validate = caseinfo['validate']

        # 将caseinfo中的数据,传到request中,其中数据有params,data,json三种格式;
        # 当请求方式是:get,数据格式用params
        # 当请求方式是:post,数据格式用data,json
        # 发送请求后,会得到一个响应,存到res变量中
        res = TestLogin.session.request(method= method, url=url,headers=header, data=data)
        print(res.json())
        assert 'message' in res.json()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值