Python+Requests+Ddt+Execl接口测试框架整理之01(框架整体描述)

(2020/3/23日修改)首先,附上当前整理的框架的整体结构,因为是初学者,所以框架整体还是比较简单的,应该一眼就能看出来总体的大概 哈哈~~
然后,希望各位能给出意见,我肯定还有哪里写的不对,希望能指点一下呢 谢谢
最后,其余模块的也会持续的更新,在后面的博文里面。

最后的最后描述一下我的框架的整体的思路。该框架运用的是Unnitest+Ddt数据驱动的方式。所以,整体上运用起来还是挺简单的,由于使用的是DDT进行数据驱动的方式,所以对于用例的管理来说应该是最为方便的,首先我在Sys_Execl模块设计了execl用例的读取方法,主要思路是运动递归循环从Execl表格中按行读取表格中的内容后,并加入到LIst集合中,便于Ddt驱动时读取。

我还是单独拆分到不同的模块进行写吧!如有需要思路探取的请移步到后续文章当中去。

(System_Config配置中心)主要用以管理和配置框架中所有的需要用到全局变量的地方,有如测试报告名、数据库名、Execl sheel名、登录账户的Token以及nodetoken等等配置,使用时可直接进行读取。
在这里插入图片描述
因为框架的整体还在一直自学并逐渐优化中,如数据库这里还没有加,但是都很简单容易上手,后面我也再贴出来。对了,再附上一下运行后的效果截图:
在这里插入图片描述
有个问题就是一展开成功的就全部都展开了,这里的报告还需要优化。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建一个基于Python + requests + pytest + ddt + unittest 的自动化测试框架,可以按照以下步骤进行: 1. 安装所需依赖:在你的项目环境中安装 requests、pytest、ddt 和 unittest。 ``` pip install requests pytest ddt unittest ``` 2. 创建项目结构:在你的项目目录下创建以下文件和文件夹结构: ``` ├── tests │ ├── __init__.py │ └── test_cases.py ├── data │ └── test_data.xlsx └── conftest.py ``` 3. 编写测试用例:在 `test_cases.py` 文件中编写你的测试用例,可以使用 `ddt` 来实现数据驱动,示例: ```python import unittest import ddt from data.test_data import TestData from utils.api_helper import APIClient @ddt.ddt class APITestCase(unittest.TestCase): @classmethod def setUpClass(cls): cls.client = APIClient() @ddt.data(*TestData.test_data) def test_api(self, data): response = self.client.send_request(data['url'], data['method'], data['payload']) self.assertEqual(response.status_code, data['expected_status']) self.assertEqual(response.json(), data['expected_response']) ``` 4. 创建测试数据:在 `test_data.xlsx` 文件中创建测试数据,可以使用 `openpyxl` 库来读取 Excel 数据,示例: ```python import openpyxl class TestData: workbook = openpyxl.load_workbook('data/test_data.xlsx') sheet = workbook['Sheet1'] test_data = [] for row in sheet.iter_rows(min_row=2, values_only=True): test_data.append({ 'url': row[0], 'method': row[1], 'payload': row[2], 'expected_status': row[3], 'expected_response': row[4] }) ``` 5. 创建 API 辅助类:在 `api_helper.py` 文件中创建一个 APIClient 类,用于发送 API 请求,示例: ```python import requests class APIClient: def send_request(self, url, method, payload): if method == 'GET': response = requests.get(url, params=payload) elif method == 'POST': response = requests.post(url, json=payload) elif method == 'PUT': response = requests.put(url, json=payload) elif method == 'DELETE': response = requests.delete(url) else: raise ValueError('Invalid HTTP method') return response ``` 6. 创建 pytest 配置:在 `conftest.py` 文件中配置 pytest,示例: ```python import pytest def pytest_addoption(parser): parser.addoption("--base-url", action="store", default="http://localhost:8000", help="Base URL for API tests") @pytest.fixture(scope="session") def base_url(request): return request.config.getoption("--base-url") ``` 7. 运行测试:在命令行中执行以下命令来运行测试用例: ``` pytest -s tests/ ``` `-s` 参数用于显示打印信息。 这样,你就搭建了一个基于 Python + requests + pytest + ddt + unittest 的自动化测试框架,可以进行接口测试。你可以根据实际需求进一步扩展和优化这个框架

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值