一个数据驱动的API测试框架

简介: 一个数据驱动的API测试框架

大家好,我是阿萨。昨天写了很多可用的python类库。今天针对数据驱动框架,写一个带源码的最简单的框架,只是示意代码,自己回去要修改的。


以下是一个简单的Python代码示例,演示如何创建一个数据驱动的API自动化测试框架,满足您的要求。请注意,这只是一个基本框架,您可以根据您的具体需求进行扩展和改进。

```python
import requests
import json
import csv
import unittest
from HTMLTestRunner import HTMLTestRunner
# 1. 从单独文件中读取配置数据
def read_test_data_from_csv(csv_file):
test_data = []
with open(csv_file, 'r', newline='') as file:
reader = csv.DictReader(file)
for row in reader:
test_data.append(row)
return test_data
# 2. 接口输入参数使用json或者csv
def run_api_test(data):
test_results = []
for test_case in data:
url = test_case['url']
method = test_case['method']
headers = json.loads(test_case['headers'])
payload = json.loads(test_case['payload'])
expected_response_code = int(test_case['expected_response_code'])
response = None
try:
if method == 'GET':
response = requests.get(url, headers=headers)
elif method == 'POST':
response = requests.post(url, headers=headers, json=payload)
# 检查响应状态码
if response.status_code == expected_response_code:
test_results.append({'test_case': test_case, 'result': 'Pass'})
else:
test_results.append({'test_case': test_case, 'result': 'Fail', 'reason': f'Expected {expected_response_code}, but got {response.status_code}'})
except Exception as e:
test_results.append({'test_case': test_case, 'result': 'Error', 'reason': str(e)})
return test_results
# 3. 输出结果使用html方式
def generate_html_report(test_results):
with open('test_report.html', 'w', encoding='utf-8') as file:
runner = HTMLTestRunner(stream=file, title='API Test Report', description='Test results for API tests')
runner.run(unittest.TestLoader().loadTestsFromTestCase(ApiTest))
# 4. 测试报告,要有统计测试用例失败以及失败原因
class ApiTest(unittest.TestCase):
def test_api(self):
test_data = read_test_data_from_csv('test_data.csv')
results = run_api_test(test_data)
for result in results:
self.assertEqual(result['result'], 'Pass', result.get('reason', ''))
if __name__ == '__main__':
unittest.main()
generate_html_report()
```


请确保已安装必要的库,如requests、json、csv、unittest以及HTMLTestRunner。您需要将测试数据保存在名为'test_data.csv'的CSV文件中,并根据您的实际API测试需求进行配置。此示例中的测试报告将生成为'test_report.html'文件。l


这只是一个基本的框架,您可以根据您的项目需求进行扩展和优化。

相关文章
|
19天前
|
JSON API 数据格式
Python 请求微店商品详情数据 API 接口
微店开放平台允许开发者通过API获取商品详情数据。使用Python请求微店商品详情API的主要步骤包括:1. 注册并申请API权限,获得app_key和app_secret;2. 确定API接口地址与请求参数,如商品ID;3. 生成签名确保请求安全合法;4. 使用requests库发送HTTP请求获取数据;5. 处理返回的JSON格式响应数据。开发时需严格遵循微店API文档要求。
|
19天前
|
缓存 监控 API
微店商品详情API接口实战指南:从零实现商品数据自动化获取
本文介绍了微店商品详情API接口的应用,涵盖申请与鉴权、签名加密、数据解析等内容。通过Python实战演示了5步获取商品数据的流程,并提供了多平台同步、价格监控等典型应用场景。开发者可利用此接口实现自动化操作,提升电商运营效率,降低人工成本。文中还总结了频率限制、数据缓存等避坑指南,助力开发者高效使用API。
|
7天前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
10天前
|
数据采集 消息中间件 API
微店API开发全攻略:解锁电商数据与业务自动化的核心能力
微店开放平台提供覆盖商品、订单、用户、营销、物流五大核心模块的API接口,支持企业快速构建电商中台系统。其API体系具备模块化设计、双重认证机制、高并发支持和数据隔离等特性。文档详细解析了商品管理、订单处理、营销工具等核心接口功能,并提供实战代码示例。同时,介绍了企业级整合方案设计,如订单全链路自动化和商品数据中台架构,以及性能优化与稳定性保障措施。最后,针对高频问题提供了排查指南,帮助开发者高效利用API实现电商数智化转型。适合中高级开发者阅读。
|
1月前
|
人工智能 自然语言处理 测试技术
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
AxBench 是由斯坦福大学推出,用于评估语言模型可解释性方法的基准测试框架,支持概念检测和模型转向任务,帮助研究者系统地比较不同控制技术的有效性。
50 5
AxBench:斯坦福大学推出评估语言模型控制方法的基准测试框架
|
15天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
16天前
|
机器学习/深度学习 JSON 算法
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析
|
1月前
|
JSON Shell API
如何通过API获取淘宝商品月销售数据
淘宝开放平台提供了丰富的API接口,允许开发者获取商品的详细信息,包括月销售数据。
|
1天前
|
存储 供应链 监控
1688商品数据实战:API搜索接口开发与供应链分析应用
本文详细介绍了如何通过1688开放API实现商品数据的获取与应用,涵盖接入准备、签名流程、数据解析存储及商业化场景。开发者可完成智能选品、价格监控和供应商评级等功能,同时提供代码示例与问题解决方案,确保法律合规与数据安全。适合企业开发者快速构建供应链管理系统。
|
1月前
|
数据采集 JSON Java
Java爬虫获取微店快递费用item_fee API接口数据实现
本文介绍如何使用Java开发爬虫程序,通过微店API接口获取商品快递费用(item_fee)数据。主要内容包括:微店API接口的使用方法、Java爬虫技术背景、需求分析和技术选型。具体实现步骤为:发送HTTP请求获取数据、解析JSON格式的响应并提取快递费用信息,最后将结果存储到本地文件中。文中还提供了完整的代码示例,并提醒开发者注意授权令牌、接口频率限制及数据合法性等问题。

热门文章

最新文章