一、pytest-allure常用api

test_role_manager.py

import allure
from utils import role_manager_utils
import pytest
import uuid



@allure.feature('角色管理测试')
class TestRoleManager:
    def setup_class(self):
        print("-------------setup_class--------------")

    @allure.story('查询角色列表')
    @allure.description('测试查询角色列表')
    @allure.title('查询角色列表')
    def test_get_role_list(self):
        self.res = role_manager_utils.get_role_list()
        assert self.res['status'] == 200
        assert self.res['result'] == True
        assert len(self.res['data']) > 0

 

二、参数封装

role_manager_utils.py

import copy

from utils import send_request

BASE_URL = "http://10.15.123.111:92"
PATH = "/api/role"
url = BASE_URL + PATH
dic_params = {}


def get_role_list():
    return send_request.send_get_request(url=url, params=dic_params)


def test_get_role_by_name(name=None):
    if name is not None:
        dic_params.update(name=name)
    return send_request.send_get_request(url=url, params=dic_params)


def add_role(name=None, description=None, status_id=True):
    if name is not None:
        dic_params.update(name=name)
    if description is not None:
        dic_params.update(description=description)
    if status_id is not None:
        dic_params.update(status_id=status_id)
    return send_request.send_post_request(url=url, params=dic_params)


def delete_role(role_id=None):
    if role_id is not None:
        dic_params.update(role_id=role_id)
    del_url = url + "/" + str(role_id)
    return send_request.send_delete_request(url=del_url)


def update_role(role_id=None, name=None, description=None, status_id=True):
    if name is not None:
        dic_params.update(name=name)
    if description is not None:
        dic_params.update(description=description)
    if status_id is not None:
        dic_params.update(status_id=status_id)

    update_url = url + "/" + str(role_id)
    return send_request.send_update_request(url=update_url, params=dic_params)

 

三、代码封装工具类

send_request.py

import json
import requests

from utils import common_headers
from utils.logger_utils import logger

# 请求头
headers = common_headers.get_headers()

print(type(headers))


def send_post_request(url, params):
    """
    post请求
    :param url:
    :param params:
    :return:
    """
    logger.debug(f'打印日志信息为:{url}')
    logger.debug(f'打印日志信息为:{params}')
    r = requests.post(url=url, headers=headers, data=json.dumps(params))
    rcontent = r.json()
    logger.debug(f'打印日志信息为:{rcontent}')
    return rcontent


def send_get_request(url, params):
    """
    get请求
    :param url:
    :param params:
    :return:
    """
    logger.debug(f'请求url信息为:{url}')
    logger.debug(f'请求参数为:{params}')
    logger.debug(f'请求头信息为:{headers}')
    r = requests.get(url=url, headers=headers, params=params)
    rcontent = r.json()
    logger.debug(f'后端返回json数据为:{rcontent}')
    return rcontent


def send_delete_request(url):
    """
    delete请求
    :param url:
    :param params:
    :return:
    """
    logger.debug(f'请求url信息为:{url}')
    logger.debug(f'请求头信息为:{headers}')
    r = requests.delete(url=url, headers=headers)
    rcontent = r.json()
    logger.debug(f'后端返回json数据为:{rcontent}')
    return rcontent


def send_update_request(url, params):
    logger.debug(f'请求url信息为:{url}')
    logger.debug(f'请求参数为:{params}')
    logger.debug(f'请求头信息为:{headers}')
    r = requests.put(url=url, headers=headers, json=params)
    rcontent = r.json()
    logger.debug(f'后端返回json数据为:{rcontent}')
    return rcontent