pytest.fixture管理接口测试用例

1.实现逻辑:

导包:import pytest →数据源(必须是列表形式)→标记方法@pytest.fixture()→标志方法→定义class类→def定义方法→接口发送请求→断言等等

2.conftest管理配置文件

1、import pytest →数据源(必须是列表形式)→标记方法@pytest.fixture()→标志方法可以作为一个配置文件:conftest
2、conftest文件名就是conf.py,名字是不能改的
3、实例展示:

conftest代码实现逻辑:

import pytest
#定义数据,数据源必须是列表形式,但是列表里面可为字典,亦可为列表
names=[["lex004","123456"],["lex005","234567"],["lex006",345678]]
@pytest.fixture(params=read_excel(names)#names也就是列表名

#对方法进行标记,属于固定写法,username可以自行命名,其他是固定写法
#得到的是对一个列表轮询地读,也就是顺序执行用例
def username(request):
    return request.param

#从其他方法引用一个列表:
#从文件夹manage下的py文件test_excel01,导入方法read_excel
from manage.test_excel01 import read_excel

@pytest.fixture(params=read_excel(r"E:\pythonfile\name.xlsx"))
def username(request):
    return request.param

3.接口发起请求

1.实例展示:

import json
import requests
import pytest
#定义一个函数
class TestUserManager():
#定义一个函数test_sign_up
    def test_sign_up(self,username):
        url="http://localhost:8080/admin/register"#接口URL
        #body内容
        body={"email": "[email protected]",
             "icon": "",
             "nickName": "lli",
             "note": "",
             "password": "123456",
             "username": "lily000"}
        body["username"]=username["name"]
        body["password"]=username["pwd"]
        r=requests.post(url=url,json=body)
        print(r.request.body)#打印请求正文
        print(r.text,type(r.text))#打印响应报文
        assert r.json()["code"]==username["code"]#断言r.json里面的code值是否等于200

你可能感兴趣的:(pytest.fixture管理接口测试用例)