接口测试自动化脚本框架3

 

conftest.py

import time
import pytest
import requests
import re


@pytest.fixture(scope="session")
def s():
    # 创建一个session对象
    s = requests.session()
    return s

#点击前置登录链接
@pytest.fixture(scope="session")
def crftoken(s):

    url = "http://localhost/DBShopV3_Release/public/shop-user"

    response = s.get(url).text

    pattern = "<input type=\"hidden\" name=\"shopCsrf\" value=\"(.+?)\">"

    # 使用正则,匹配出 shopcrftoken

    crftoken = re.findall(pattern, response)[0]

    return crftoken

#输入登录信息发送登录请求
@pytest.fixture(scope="session")
def login(crftoken, s):
    url = "http://localhost/DBShopV3_Release/public/shop-user"

    payload = {
        "shopCsrf": crftoken,
        "loginAccount": 'test_1',
        "loginPassword": "123456",
        "httpReferer": ''
    }

    response=requests.post(url=url, data=payload).text

    assert "退出" in response, "登录不成功"

    yield

    #后置条件,完成所有测试之后退出登录
    url = "http://192.168.2.48/DBShopV3_Release/public/shop-user/userLogout"

    payload = {}

    response = requests.get(url=url, data=payload).text

    assert  "登录" in response , "退出不成功"


#执行每一个用例所花费的时间
@pytest.fixture(scope="function" , autouse=True)
def fix():

    start_time=time.time()

    yield

    end_time=time.time()

    print(f"测试用例的执行时间:{ end_time - start_time}")

test_login.py

import pytest
import requests
import re


@pytest.fixture(scope="session")
def s():
    # 创建一个session对象
    s = requests.session()
    return s


@pytest.fixture(scope="session")
def crftoken(s):
    '''
    点击登录连接
    :param s:
    :return:
    '''

    url = "http://localhost/DBShopV3_Release/public/shop-user"

    response = s.get(url).text

    pattern = "<input type=\"hidden\" name=\"shopCsrf\" value=\"(.+?)\">"

    # 使用正则,匹配出 shopcrftoken

    crftoken = re.findall(pattern, response)[0]

    return crftoken


@pytest.fixture(scope="session")
def login(crftoken, s):
    url = "http://localhost/DBShopV3_Release/public/shop-user"

    payload = {
        "shopCsrf": crftoken,
        "loginAccount": 'test_1',
        "loginPassword": "123456",
        "httpReferer": ''

    }

    response = s.post(url=url, data=payload).text

    assert  "退出" in response , "登录不成功"



def test_1(login):
    assert 1



def test_logout(login):

    url = "http://192.168.3.48/DBShopV3_Release/public/shop-user/userLogout"

    payload = {}

    response = requests.get(url=url, data=payload).text

    assert  "登录" in response , "登录不成功"

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值