batch-data-test-tool


Namebatch-data-test-tool JSON
Version 1.1.1 PyPI version JSON
download
home_pagehttps://github.com/zzti-bsj/batch-data-test-tool
Summary一个用于批量处理数据并发送HTTP请求的Python工具包
upload_time2025-10-11 07:54:22
maintainerNone
docs_urlNone
authorzzti-bsj
requires_python>=3.8
licenseMIT
keywords data-processing http-requests batch-testing jupyter pandas
VCS
bugtrack_url
requirements pydantic pandas numpy requests json-repair openpyxl ipywidgets
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 批量数据测试工具 (Batch Data Test Tool)

一个用于批量处理数据并发送HTTP请求的Python工具包。支持CSV和Excel文件读取,提供交互式Jupyter界面,方便进行批量API测试。

## 功能特性

- 📊 **数据文件支持**: 支持CSV和Excel文件读取
- 🔄 **批量处理**: 批量发送HTTP请求并处理响应
- 🎛️ **交互式界面**: 基于Jupyter Widgets的友好用户界面
- 📈 **数据预览**: 实时预览处理结果
- 💾 **智能保存**: 支持自定义文件名,自动保存到output目录
- 🛠️ **灵活配置**: 支持JSON配置文件,动态选择API接口
- 🔧 **参数映射**: 支持数据列与API参数的动态映射
- ⚡ **实时更新**: API配置切换时自动更新参数选择器

## 安装

### 基础安装
```bash
pip install batch-data-test-tool
```

### 推荐安装(包含JupyterLab)
```bash
pip install batch-data-test-tool jupyterlab
```

> 💡 **推荐使用JupyterLab**:该工具专为Jupyter环境设计,提供最佳的用户体验

## 快速开始

### 使用前准备

1. **确保data目录存在**
   ```bash
   mkdir data
   ```
   > ⚠️ 如果data目录不存在,程序会报错

2. **配置config.json**
   在项目根目录创建`config.json`文件,配置您的API接口:
   ```json
   [
       {
           "api_name": "我的API接口",
           "api_url": "http://your-api-endpoint.com/api",
           "headers": {
               "Content-Type": "application/json",
               "User-Agent": "BatchDataTestTool/1.0"
           },
           "params": {
               "conversation_text": "${conversation_text}",
               "sessionId": "default_session",
               "userKey": "app-10000"
           }
       }
   ]
   ```

3. **准备测试数据**
   将您的CSV或Excel文件放入`data/`目录

### 在JupyterLab中使用

```python
from batch_data_test_tool import cola_start

# 启动交互式界面
cola_start()
```

### 作为命令行工具使用

```bash
batch-test-tool
```

## 使用流程

### 完整使用步骤

1. **准备环境**
   ```bash
   # 创建必要目录
   mkdir data
   
   # 安装包
   pip install batch-data-test-tool
   ```

2. **配置API接口**
   创建`config.json`文件,配置您的API:
   ```json
   [
       {
           "api_name": "我的API接口",
           "api_url": "http://your-api-endpoint.com/api",
           "headers": {
               "Content-Type": "application/json",
               "User-Agent": "BatchDataTestTool/1.0"
           },
           "params": {
               "conversation_text": "${conversation_text}",
               "sessionId": "default_session",
               "userKey": "app-10000"
           }
       }
   ]
   ```

3. **准备测试数据**
   将CSV或Excel文件放入`data/`目录

4. **启动JupyterLab**
   ```bash
   jupyter lab
   ```

5. **使用工具**
   ```python
   from batch_data_test_tool import cola_start
   cola_start()
   ```

### 界面操作步骤

启动`cola_start()`后,按以下步骤操作:

1. **Step001: 选择数据文件** - 从`data/`目录选择CSV或Excel文件
2. **API配置** - 从`config.json`中选择预配置的API接口
3. **Step002: 读取数据** - 点击"读取数据"按钮加载文件
4. **Step003: 数据预览** - 查看数据前5行
5. **Step004: 选择数据列** - 将数据列映射到API参数(自动根据config.json生成)
6. **Step005: 批量处理** - 发送HTTP请求并处理响应
7. **Step006: 选择保存列** - 选择要保存的结果列
8. **Step007: 保存数据** - 自定义文件名保存到`output/`目录


## 许可证

本项目采用 MIT 许可证。详见 [LICENSE](LICENSE) 文件。

## 贡献

欢迎提交Issue和Pull Request!

## 更新日志

### v1.1.1
- ✨ **新增功能**:
  - 支持JSON配置文件,可配置多个API接口
  - 动态参数映射,支持数据列与API参数的灵活映射
  - API配置切换时自动更新参数选择器
  - 自定义文件名保存功能
  - 自动创建output目录并保存结果文件
- 🎯 **界面优化**:
  - 新增API配置选择器
  - 动态列选择器,根据API配置自动调整
  - 自定义文件名输入框
- 📁 **文件管理**:
  - 结果文件自动保存到output目录
  - 支持时间序列命名和自定义命名


## 支持

如果您遇到任何问题或有建议,请:

1. 查看 [文档](https://github.com/zzti-bsj/batch-data-test-tool#readme)
2. 搜索 [已知问题](https://github.com/zzti-bsj/batch-data-test-tool/issues)
3. 创建新的 [Issue](https://github.com/zzti-bsj/batch-data-test-tool/issues/new)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/zzti-bsj/batch-data-test-tool",
    "name": "batch-data-test-tool",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "data-processing, http-requests, batch-testing, jupyter, pandas",
    "author": "zzti-bsj",
    "author_email": "zzti-bsj <otnw_bsj@163.com>",
    "download_url": "https://files.pythonhosted.org/packages/9f/83/4ead97bfb14d3195bfec4f88f346680440e3153756cff7a56707a33aa488/batch_data_test_tool-1.1.1.tar.gz",
    "platform": null,
    "description": "# \u6279\u91cf\u6570\u636e\u6d4b\u8bd5\u5de5\u5177 (Batch Data Test Tool)\n\n\u4e00\u4e2a\u7528\u4e8e\u6279\u91cf\u5904\u7406\u6570\u636e\u5e76\u53d1\u9001HTTP\u8bf7\u6c42\u7684Python\u5de5\u5177\u5305\u3002\u652f\u6301CSV\u548cExcel\u6587\u4ef6\u8bfb\u53d6\uff0c\u63d0\u4f9b\u4ea4\u4e92\u5f0fJupyter\u754c\u9762\uff0c\u65b9\u4fbf\u8fdb\u884c\u6279\u91cfAPI\u6d4b\u8bd5\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n- \ud83d\udcca **\u6570\u636e\u6587\u4ef6\u652f\u6301**: \u652f\u6301CSV\u548cExcel\u6587\u4ef6\u8bfb\u53d6\n- \ud83d\udd04 **\u6279\u91cf\u5904\u7406**: \u6279\u91cf\u53d1\u9001HTTP\u8bf7\u6c42\u5e76\u5904\u7406\u54cd\u5e94\n- \ud83c\udf9b\ufe0f **\u4ea4\u4e92\u5f0f\u754c\u9762**: \u57fa\u4e8eJupyter Widgets\u7684\u53cb\u597d\u7528\u6237\u754c\u9762\n- \ud83d\udcc8 **\u6570\u636e\u9884\u89c8**: \u5b9e\u65f6\u9884\u89c8\u5904\u7406\u7ed3\u679c\n- \ud83d\udcbe **\u667a\u80fd\u4fdd\u5b58**: \u652f\u6301\u81ea\u5b9a\u4e49\u6587\u4ef6\u540d\uff0c\u81ea\u52a8\u4fdd\u5b58\u5230output\u76ee\u5f55\n- \ud83d\udee0\ufe0f **\u7075\u6d3b\u914d\u7f6e**: \u652f\u6301JSON\u914d\u7f6e\u6587\u4ef6\uff0c\u52a8\u6001\u9009\u62e9API\u63a5\u53e3\n- \ud83d\udd27 **\u53c2\u6570\u6620\u5c04**: \u652f\u6301\u6570\u636e\u5217\u4e0eAPI\u53c2\u6570\u7684\u52a8\u6001\u6620\u5c04\n- \u26a1 **\u5b9e\u65f6\u66f4\u65b0**: API\u914d\u7f6e\u5207\u6362\u65f6\u81ea\u52a8\u66f4\u65b0\u53c2\u6570\u9009\u62e9\u5668\n\n## \u5b89\u88c5\n\n### \u57fa\u7840\u5b89\u88c5\n```bash\npip install batch-data-test-tool\n```\n\n### \u63a8\u8350\u5b89\u88c5\uff08\u5305\u542bJupyterLab\uff09\n```bash\npip install batch-data-test-tool jupyterlab\n```\n\n> \ud83d\udca1 **\u63a8\u8350\u4f7f\u7528JupyterLab**\uff1a\u8be5\u5de5\u5177\u4e13\u4e3aJupyter\u73af\u5883\u8bbe\u8ba1\uff0c\u63d0\u4f9b\u6700\u4f73\u7684\u7528\u6237\u4f53\u9a8c\n\n## \u5feb\u901f\u5f00\u59cb\n\n### \u4f7f\u7528\u524d\u51c6\u5907\n\n1. **\u786e\u4fdddata\u76ee\u5f55\u5b58\u5728**\n   ```bash\n   mkdir data\n   ```\n   > \u26a0\ufe0f \u5982\u679cdata\u76ee\u5f55\u4e0d\u5b58\u5728\uff0c\u7a0b\u5e8f\u4f1a\u62a5\u9519\n\n2. **\u914d\u7f6econfig.json**\n   \u5728\u9879\u76ee\u6839\u76ee\u5f55\u521b\u5efa`config.json`\u6587\u4ef6\uff0c\u914d\u7f6e\u60a8\u7684API\u63a5\u53e3\uff1a\n   ```json\n   [\n       {\n           \"api_name\": \"\u6211\u7684API\u63a5\u53e3\",\n           \"api_url\": \"http://your-api-endpoint.com/api\",\n           \"headers\": {\n               \"Content-Type\": \"application/json\",\n               \"User-Agent\": \"BatchDataTestTool/1.0\"\n           },\n           \"params\": {\n               \"conversation_text\": \"${conversation_text}\",\n               \"sessionId\": \"default_session\",\n               \"userKey\": \"app-10000\"\n           }\n       }\n   ]\n   ```\n\n3. **\u51c6\u5907\u6d4b\u8bd5\u6570\u636e**\n   \u5c06\u60a8\u7684CSV\u6216Excel\u6587\u4ef6\u653e\u5165`data/`\u76ee\u5f55\n\n### \u5728JupyterLab\u4e2d\u4f7f\u7528\n\n```python\nfrom batch_data_test_tool import cola_start\n\n# \u542f\u52a8\u4ea4\u4e92\u5f0f\u754c\u9762\ncola_start()\n```\n\n### \u4f5c\u4e3a\u547d\u4ee4\u884c\u5de5\u5177\u4f7f\u7528\n\n```bash\nbatch-test-tool\n```\n\n## \u4f7f\u7528\u6d41\u7a0b\n\n### \u5b8c\u6574\u4f7f\u7528\u6b65\u9aa4\n\n1. **\u51c6\u5907\u73af\u5883**\n   ```bash\n   # \u521b\u5efa\u5fc5\u8981\u76ee\u5f55\n   mkdir data\n   \n   # \u5b89\u88c5\u5305\n   pip install batch-data-test-tool\n   ```\n\n2. **\u914d\u7f6eAPI\u63a5\u53e3**\n   \u521b\u5efa`config.json`\u6587\u4ef6\uff0c\u914d\u7f6e\u60a8\u7684API\uff1a\n   ```json\n   [\n       {\n           \"api_name\": \"\u6211\u7684API\u63a5\u53e3\",\n           \"api_url\": \"http://your-api-endpoint.com/api\",\n           \"headers\": {\n               \"Content-Type\": \"application/json\",\n               \"User-Agent\": \"BatchDataTestTool/1.0\"\n           },\n           \"params\": {\n               \"conversation_text\": \"${conversation_text}\",\n               \"sessionId\": \"default_session\",\n               \"userKey\": \"app-10000\"\n           }\n       }\n   ]\n   ```\n\n3. **\u51c6\u5907\u6d4b\u8bd5\u6570\u636e**\n   \u5c06CSV\u6216Excel\u6587\u4ef6\u653e\u5165`data/`\u76ee\u5f55\n\n4. **\u542f\u52a8JupyterLab**\n   ```bash\n   jupyter lab\n   ```\n\n5. **\u4f7f\u7528\u5de5\u5177**\n   ```python\n   from batch_data_test_tool import cola_start\n   cola_start()\n   ```\n\n### \u754c\u9762\u64cd\u4f5c\u6b65\u9aa4\n\n\u542f\u52a8`cola_start()`\u540e\uff0c\u6309\u4ee5\u4e0b\u6b65\u9aa4\u64cd\u4f5c\uff1a\n\n1. **Step001: \u9009\u62e9\u6570\u636e\u6587\u4ef6** - \u4ece`data/`\u76ee\u5f55\u9009\u62e9CSV\u6216Excel\u6587\u4ef6\n2. **API\u914d\u7f6e** - \u4ece`config.json`\u4e2d\u9009\u62e9\u9884\u914d\u7f6e\u7684API\u63a5\u53e3\n3. **Step002: \u8bfb\u53d6\u6570\u636e** - \u70b9\u51fb\"\u8bfb\u53d6\u6570\u636e\"\u6309\u94ae\u52a0\u8f7d\u6587\u4ef6\n4. **Step003: \u6570\u636e\u9884\u89c8** - \u67e5\u770b\u6570\u636e\u524d5\u884c\n5. **Step004: \u9009\u62e9\u6570\u636e\u5217** - \u5c06\u6570\u636e\u5217\u6620\u5c04\u5230API\u53c2\u6570\uff08\u81ea\u52a8\u6839\u636econfig.json\u751f\u6210\uff09\n6. **Step005: \u6279\u91cf\u5904\u7406** - \u53d1\u9001HTTP\u8bf7\u6c42\u5e76\u5904\u7406\u54cd\u5e94\n7. **Step006: \u9009\u62e9\u4fdd\u5b58\u5217** - \u9009\u62e9\u8981\u4fdd\u5b58\u7684\u7ed3\u679c\u5217\n8. **Step007: \u4fdd\u5b58\u6570\u636e** - \u81ea\u5b9a\u4e49\u6587\u4ef6\u540d\u4fdd\u5b58\u5230`output/`\u76ee\u5f55\n\n\n## \u8bb8\u53ef\u8bc1\n\n\u672c\u9879\u76ee\u91c7\u7528 MIT \u8bb8\u53ef\u8bc1\u3002\u8be6\u89c1 [LICENSE](LICENSE) \u6587\u4ef6\u3002\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\uff01\n\n## \u66f4\u65b0\u65e5\u5fd7\n\n### v1.1.1\n- \u2728 **\u65b0\u589e\u529f\u80fd**:\n  - \u652f\u6301JSON\u914d\u7f6e\u6587\u4ef6\uff0c\u53ef\u914d\u7f6e\u591a\u4e2aAPI\u63a5\u53e3\n  - \u52a8\u6001\u53c2\u6570\u6620\u5c04\uff0c\u652f\u6301\u6570\u636e\u5217\u4e0eAPI\u53c2\u6570\u7684\u7075\u6d3b\u6620\u5c04\n  - API\u914d\u7f6e\u5207\u6362\u65f6\u81ea\u52a8\u66f4\u65b0\u53c2\u6570\u9009\u62e9\u5668\n  - \u81ea\u5b9a\u4e49\u6587\u4ef6\u540d\u4fdd\u5b58\u529f\u80fd\n  - \u81ea\u52a8\u521b\u5efaoutput\u76ee\u5f55\u5e76\u4fdd\u5b58\u7ed3\u679c\u6587\u4ef6\n- \ud83c\udfaf **\u754c\u9762\u4f18\u5316**:\n  - \u65b0\u589eAPI\u914d\u7f6e\u9009\u62e9\u5668\n  - \u52a8\u6001\u5217\u9009\u62e9\u5668\uff0c\u6839\u636eAPI\u914d\u7f6e\u81ea\u52a8\u8c03\u6574\n  - \u81ea\u5b9a\u4e49\u6587\u4ef6\u540d\u8f93\u5165\u6846\n- \ud83d\udcc1 **\u6587\u4ef6\u7ba1\u7406**:\n  - \u7ed3\u679c\u6587\u4ef6\u81ea\u52a8\u4fdd\u5b58\u5230output\u76ee\u5f55\n  - \u652f\u6301\u65f6\u95f4\u5e8f\u5217\u547d\u540d\u548c\u81ea\u5b9a\u4e49\u547d\u540d\n\n\n## \u652f\u6301\n\n\u5982\u679c\u60a8\u9047\u5230\u4efb\u4f55\u95ee\u9898\u6216\u6709\u5efa\u8bae\uff0c\u8bf7\uff1a\n\n1. \u67e5\u770b [\u6587\u6863](https://github.com/zzti-bsj/batch-data-test-tool#readme)\n2. \u641c\u7d22 [\u5df2\u77e5\u95ee\u9898](https://github.com/zzti-bsj/batch-data-test-tool/issues)\n3. \u521b\u5efa\u65b0\u7684 [Issue](https://github.com/zzti-bsj/batch-data-test-tool/issues/new)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u4e00\u4e2a\u7528\u4e8e\u6279\u91cf\u5904\u7406\u6570\u636e\u5e76\u53d1\u9001HTTP\u8bf7\u6c42\u7684Python\u5de5\u5177\u5305",
    "version": "1.1.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/zzti-bsj/batch-data-test-tool/issues",
        "Documentation": "https://github.com/zzti-bsj/batch-data-test-tool#readme",
        "Homepage": "https://github.com/zzti-bsj/batch-data-test-tool",
        "Repository": "https://github.com/zzti-bsj/batch-data-test-tool"
    },
    "split_keywords": [
        "data-processing",
        " http-requests",
        " batch-testing",
        " jupyter",
        " pandas"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8f2b3e79ecada9fd120d277d8625d5da9ca53a645e989d0e6c38dcf04ef88e96",
                "md5": "f5707f7d0f9f79ccf3b3b29d43ccb7cf",
                "sha256": "1c612b952a220fe7ca7747653e04b99b8f7e6f4e50446309e6b06598cbb633f7"
            },
            "downloads": -1,
            "filename": "batch_data_test_tool-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f5707f7d0f9f79ccf3b3b29d43ccb7cf",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15312,
            "upload_time": "2025-10-11T07:54:20",
            "upload_time_iso_8601": "2025-10-11T07:54:20.087624Z",
            "url": "https://files.pythonhosted.org/packages/8f/2b/3e79ecada9fd120d277d8625d5da9ca53a645e989d0e6c38dcf04ef88e96/batch_data_test_tool-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9f834ead97bfb14d3195bfec4f88f346680440e3153756cff7a56707a33aa488",
                "md5": "2aed63a5f48903d210bc2889f7dc6a9f",
                "sha256": "471c7e41340691b89096d67d416b4e1fbfe90a3ab724a1f15409903837189a90"
            },
            "downloads": -1,
            "filename": "batch_data_test_tool-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "2aed63a5f48903d210bc2889f7dc6a9f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 20785,
            "upload_time": "2025-10-11T07:54:22",
            "upload_time_iso_8601": "2025-10-11T07:54:22.342587Z",
            "url": "https://files.pythonhosted.org/packages/9f/83/4ead97bfb14d3195bfec4f88f346680440e3153756cff7a56707a33aa488/batch_data_test_tool-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-11 07:54:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "zzti-bsj",
    "github_project": "batch-data-test-tool",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "pydantic",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "requests",
            "specs": []
        },
        {
            "name": "json-repair",
            "specs": []
        },
        {
            "name": "openpyxl",
            "specs": []
        },
        {
            "name": "ipywidgets",
            "specs": []
        }
    ],
    "lcname": "batch-data-test-tool"
}
        
Elapsed time: 1.71871s