Skip to content

kai648846760/Lark-operation

Repository files navigation

Lark多维表格接口自动化测试框架

基于飞书(Lark)多维表格的现代化接口自动化测试解决方案

Python License Lark

🎯 项目简介

这是一个创新的接口自动化测试框架,将测试用例管理与飞书多维表格深度集成,实现了可视化测试管理实时结果回写。通过表格化的测试用例管理,让非技术人员也能轻松参与接口测试,同时为技术团队提供强大的自动化执行能力。

✨ 核心特性

  • 🔥 零学习成本: 在熟悉的多维表格中管理测试用例
  • 🚀 现代化架构: 基于原始baseopensdk重构,支持最新Python版本
  • 🔐 简化认证: 只需personal_token,无需复杂应用配置
  • 📊 实时回写: 测试结果自动回写到表格,形成完整数据闭环
  • 🎨 可视化报告: 利用Lark图表功能展示测试趋势
  • 🔧 字段管理: 完整的字段CRUD操作,支持动态表格改造
  • 📝 精简设计: 13个核心字段,简洁高效易维护

🎉 精简表格设计

经过深度优化,框架采用精简优先的设计理念,将字段从31个精简至13个核心字段:

🎯 核心测试字段 (11个)

字段名 类型 说明 示例
接口编号 自动编号 【系统生成】唯一标识符 1, 2, 3...
接口名称 文本 【必填】功能描述 用户登录接口
接口路径 文本 【必填】API路径 /api/auth/login
请求方法 单选 【必填】HTTP方法 POST
请求头 多行文本 【可选】JSON格式 {"Content-Type": "application/json"}
请求体 多行文本 【可选】JSON格式 {"username": "test", "password": "123456"}
预期状态码 数字 【必填】期望状态码 200
响应状态码 文本 【系统填写】实际状态码 200
响应体 多行文本 【系统填写】响应数据 {"code": "00000", "data": {...}}
断言规则 多行文本 【可选】验证规则 {"status_code": "== 200"}
是否通过 单选 【系统填写】测试结果 通过/失败

📝 辅助管理字段 (2个)

字段名 类型 说明
是否启用 复选框 【用户控制】测试用例开关
备注 多行文本 【可选】补充说明信息

🚀 快速开始

📋 环境要求

⚡ 快速安装

# 1. 克隆项目
git clone https://github.com/kai648846760/Lark-operation.git
cd Lark-operation

# 2. 安装依赖
pip install -r requirements.txt

# 3. 验证安装
python -m lark_tester.cli --version

🔐 认证配置

步骤1: 获取授权码

  1. 打开你的飞书多维表格
  2. 点击右上角 「插件」「自定义插件」
  3. 选择 「获取授权码」
  4. 复制生成的 personal_token(以pt-开头)

步骤2: 配置文件

编辑 config/production.yaml

# Lark API 自动化测试框架 - 生产环境配置

# ================== Lark 配置 ==================
# 生产环境的飞书多维表格认证信息
personal_token: "pt-your-personal-token-here"
app_token: "your-app-token"
table_id: "your-table-id"
config_table_id: "your-config-table-id"  # 配置表ID,可根据实际情况修改
domain: "https://base-api.larksuite.com"

# ================== API 测试配置 ==================
# 生产环境的API配置(从配置表读取)
api_base_url: ""    # 从配置表动态读取,配置表字段: Host|是否开启|备注
request_timeout: 60 # 生产环境超时时间更长
max_retries: 5      # 生产环境重试次数更多
retry_delay: 2.0    # 重试延迟更长
request_delay: 0.5  # 生产环境请求间隔,避免对服务器压力过大

# ================== 日志配置 ==================
log_level: "INFO"   # 生产环境使用INFO级别
enable_rich_logging: true

# ================== 其他配置 ==================
max_response_length: 5000  # 生产环境响应体长度限制更大
enable_assertions: true
fail_fast: false

# ================== 生产环境特殊配置 ==================
# 生产环境安全配置
validate_ssl: true
user_agent: "lark-api-tester/1.0.0 (production)"

# 性能配置
batch_size: 10      # 批量处理大小
concurrent_limit: 3 # 并发限制

步骤3: 从URL提取配置信息

多维表格URL格式:

https://domain.larksuite.com/base/APP_TOKEN?table=TABLE_ID&view=VIEW_ID
  • APP_TOKEN: 位于 /base/?table= 之间
  • TABLE_ID: 位于 ?table=&view= 之间

🎯 运行测试

# 执行所有启用的测试用例
python -m lark_tester.cli

# 执行特定编号的测试用例
python -m lark_tester.cli --test-id 1

# 启用详细日志
python -m lark_tester.cli --verbose

# 验证表格结构
python -m lark_tester.cli --validate

📊 使用指南

🔥 基础用例示例

在多维表格中创建测试用例:

接口名称: 用户登录接口
接口路径: /api/auth/login
请求方法: POST
请求头: 
{
  "Content-Type": "application/json",
  "User-Agent": "ApiTest/1.0"
}

请求体:
{
  "username": "test_user",
  "password": "123456"
}

预期状态码: 200
断言规则:
{
  "status_code": "== 200",
  "response_json": {
    "$.code": "== '00000'",
    "$.data.token": "!= null"
  }
}

是否启用: ☑️
备注: 基础登录功能测试

🎭 断言规则详解

框架支持多种断言方式:

{
  // HTTP状态码断言
  "status_code": "== 200",
  
  // 响应时间断言(毫秒)
  "response_time": "< 1000",
  
  // JSONPath响应内容断言
  "response_json": {
    "$.code": "== '00000'",           // 精确匹配
    "$.data.token": "!= null",        // 非空验证
    "$.data.user.id": "> 0",          // 数值比较
    "$.message": "contains '成功'",    // 包含文本
    "$.data.list": "length > 0"      // 数组长度
  }
}

🔧 高级功能

变量引用(代码层面实现)

框架支持强大的变量引用功能:

// 环境变量引用
接口路径: ${env.base_url}/api/user/profile

// 运行时变量引用  
请求头: {"Authorization": "Bearer ${runtime.access_token}"}

// 函数调用
请求体: {"request_id": "${func.uuid()}", "timestamp": ${func.timestamp()}}

支持的内置函数:

  • ${func.uuid()} - 生成UUID
  • ${func.timestamp()} - 当前时间戳
  • ${func.random(1,100)} - 随机数
  • ${func.datetime()} - 当前日期时间

🏗️ 项目架构

Lark-operation/
├── lark_tester/                 # 核心框架
│   ├── core/                   # 核心模块
│   │   ├── lark_client.py      # Lark API客户端(基于原始SDK重构)
│   │   ├── test_executor.py    # 测试执行引擎
│   │   ├── config_manager.py   # 配置管理器
│   │   └── result_manager.py   # 结果回写管理器
│   ├── utils/                  # 工具模块
│   │   ├── logger.py          # 日志工具
│   │   └── validator.py       # 数据验证器
│   └── cli.py                 # 命令行接口
├── config/                     # 配置文件
│   ├── production.yaml        # 生产环境配置
│   └── development.yaml       # 开发环境配置
├── examples/                  # 示例代码
└── field_usage_guide.md       # 字段使用指南

🔧 核心技术特性

💪 现代化SDK重构

  • 完全兼容: 保持与原始baseopensdk的认证逻辑一致
  • 现代化实现: 使用requests库替代过时依赖
  • 字段管理: 支持字段的创建、删除、更新、查询操作
  • 类型安全: 严格的字段类型验证和转换

🎯 精简设计理念

基于渐进式功能扩展原则:

  1. 简洁优先: 13个核心字段满足80%的测试需求
  2. 按需扩展: 复杂功能通过代码层面实现
  3. 用户友好: 新手可快速上手,专家有扩展空间
  4. 维护简单: 字段少、逻辑清晰、文档完整

🚀 字段管理API

基于原始baseopensdk的字段管理功能:

from lark_tester.core.lark_client import LarkClient

client = LarkClient(personal_token="pt-xxx", app_token="xxx")

# 创建字段
field = client.create_field(
    table_id="tbl123",
    field_name="新字段",
    field_type=1,  # 多行文本
    description="字段描述"
)

# 列出所有字段
fields = client.list_fields("tbl123")

# 更新字段
client.update_field("tbl123", "fld456", field_name="更新后的字段名")

# 删除字段
client.delete_field("tbl123", "fld456")

📖 详细文档

🛠️ 开发指南

环境设置

# 克隆项目
git clone https://github.com/kai648846760/Lark-operation.git
cd Lark-operation

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/macOS
# 或 venv\Scripts\activate  # Windows

# 安装开发依赖
pip install -r requirements.txt

# 运行测试
python -m lark_tester.cli run-tests

代码规范

  • PEP 8: Python代码风格标准
  • 类型提示: 使用type hints提高代码可读性
  • 文档字符串: 所有公共方法都要有docstring
  • 单元测试: 核心功能必须有测试覆盖

🐛 故障排除

常见问题

1. 认证失败

错误: invalid access token (20005)
解决: 
- 检查personal_token是否正确
- 确认token未过期
- 验证表格访问权限

2. 字段不匹配

错误: FieldNameNotFound
解决:
- 确保表格字段名与框架要求完全一致
- 检查字段是否已创建
- 使用validate命令验证表格结构

3. 网络连接问题

错误: Connection timeout
解决:
- 检查网络连接
- 确认API域名配置正确
- 尝试使用代理

调试模式

# 启用详细日志
LARK_DEBUG=true python -m lark_tester.cli

# 验证配置
python -m lark_tester.cli --validate

# 测试连接
python -c "from lark_tester.core import LarkClient; print('连接正常')"

📈 性能与限制

API限制

  • 请求频率: 建议不超过10次/秒
  • 数据量: 单次最多200条记录
  • 字段数量: 建议不超过50个字段
  • Token有效期: 通常90天,需定期更新

性能优化

  • 批量操作: 使用批量API减少请求次数
  • 缓存机制: 字段信息本地缓存
  • 异步执行: 大量用例可考虑并发执行
  • 分页处理: 大数据集自动分页加载

📄 许可证

MIT License - 详见 LICENSE 文件


🚀 让接口自动化测试变得简单而强大 🚀

基于飞书多维表格的现代化测试解决方案

快速开始使用指南字段使用指南贡献指南


如果这个项目对您有帮助,请给一个 ⭐ Star 以表示支持!您的支持是我们持续改进的动力。

Star History Chart

About

Lark-operation是一个基于飞书多维表格的现代化接口自动化测试框架,通过13个精简字段实现测试用例管理与结果回写,支持动态配置读取和完整的CRUD操作,让API测试变得简单高效。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages