Python pytest接口测试文件的绝对路径设置

问题:为什么要设置绝对路径?

答案:

1.避免调用过程中,找不到文件

2.减少拼写路径的人为失误

3.文件路径不对时可以快速排查

4.方便文件迁移

# -*- coding: utf-8 -*-
# @__author__:choppa
# @DATA 2021/8/23
# 设置绝对路径以免文件调用过程中使用相对路径找不到文件的情况
import os
dir0 = os.path.abspath(__file__)  # abspath 获取绝对路径 此路径为配置所有文件绝对路径所在的绝对路径 path_handle.py 所在绝对路径

dir1 = os.path.dirname(__file__)  # dirname 获取上级目录


base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  # 重复嵌套获取到工程目录


# join(父级的绝对路径,目标文件或文件夹所在路径)  这个工程中以工程目录为父级目录,依次添加其他文件的绝对路径
# 根据工程目录设置输入输出文件的绝对路径,一般包括:xls,yaml,configs,logs,report等等,第一个写入父级目录,下面写入文件或文件夹所在路径
# In 输入型文件路径要具体到文件
xls_dir = os.path.join(base_dir, r'data\Delivery_System_excel-V1.5.xls')

# Out 输出型文件路径具体到文件夹
logs_dir = os.path.join(base_dir, 'logs')

if __name__ == '__main__':

    print('当前文件的绝对路径:', dir0)
    print('当前文件的上级绝对路径:', dir1)
    print('当前文件的上上级绝对路径', base_dir, '这个也是此工程目录的绝对路径')
    print(xls_dir)
    print(logs_dir)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一套基于Python pytest和requests的日志记录接口自动化框架的设计: 1. 安装pytest和requests库 ``` pip install pytest requests ``` 2. 创建一个配置文件 在项目根目录下创建一个config.py文件,用于存储一些常量和配置信息,例如API的基本URL、请求头、日志文件路径等。 ```python API_BASE_URL = 'http://localhost:8080/api' API_HEADERS = {'Content-Type': 'application/json'} LOG_FILE_PATH = 'logs/test.log' ``` 3. 创建一个测试用例 在tests目录下创建一个test_sample.py文件,用于编测试用例。这里以测试一个获取用户列表的API接口为例。 ```python import pytest import requests from config import API_BASE_URL, API_HEADERS def test_get_user_list(): url = f'{API_BASE_URL}/users' response = requests.get(url, headers=API_HEADERS) assert response.status_code == 200 assert len(response.json()) > 0 ``` 4. 创建一个日志记录器 在utils目录下创建一个logger.py文件,用于记录测试过程的日志信息。 ```python import logging from config import LOG_FILE_PATH logging.basicConfig(filename=LOG_FILE_PATH, level=logging.INFO) def log_info(msg): logging.info(msg) def log_error(msg): logging.error(msg) ``` 5. 创建一个pytest插件 在根目录下创建一个conftest.py文件,用于定义一个pytest插件,用于在测试用例执行前后记录日志信息。 ```python from datetime import datetime import pytest from utils.logger import log_info, log_error @pytest.hookimpl def pytest_runtest_logstart(nodeid, location): log_info(f'Test Case: {nodeid} started at {datetime.now()}') @pytest.hookimpl def pytest_runtest_logfinish(nodeid, location): log_info(f'Test Case: {nodeid} finished at {datetime.now()}') @pytest.hookimpl(hookwrapper=True) def pytest_runtest_makereport(item, call): outcome = yield rep = outcome.get_result() if rep.when == 'call': if rep.failed: log_error(f"Test Case: {item.nodeid} failed with error: {rep.longrepr}") else: log_info(f"Test Case: {item.nodeid} passed") ``` 6. 运行测试 在命令行执行以下命令: ``` pytest -v tests/test_sample.py ``` 执行完成后,可以在logs/test.log文件查看测试过程的日志信息。 以上就是一套基于Python pytest和requests的日志记录接口自动化框架的设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shan_non

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值