测试工程领域Action插件
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 9 天前 | ||
| 3 天前 | ||
| 12 天前 | ||
| 17 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 11 天前 | ||
| 11 天前 | ||
| 1 个月前 | ||
| 1 个月前 |
test-action
测试工程领域 GitCode Actions 插件集合。
本仓库聚焦于 GitCode Actions 测试工程领域的插件开发与维护,提供从用例调度执行、元数据收集、报告上传到结果汇总展示的端到端能力,适用于持续集成场景下对 pytest 用例的自动化执行和可视化运营。
目录
1、简介
本仓库收录一组运行于 GitCode Actions 的测试工程领域插件,覆盖 pytest 用例环境调度与编排执行、用例元数据收集、结果上传和结果汇总展示。各插件独立可用,也可串联成完整的测试流水线。流水线测试整体流程如下:
graph TB
U1[编写用例] --> U3[编辑测试任务配置文件]
U3 --> U4[触发测试Job启动]
U4 --> P1
P1([执行机是被测环境]) -->|是| P2[筛选用例]
P1 --否--> P6
%% 执行机即被测环境:本地执行 + 元数据收集 + 日志归档
P2 --> P3[执行机本地执行用例]
P3 --> RC1[生成测试报告]
RC1 --> RC2
subgraph metadata-collect ["metadata-collect插件"]
RC2[生成用例全集元数据]
end
RC2 --> P4[日志收集]
subgraph upload-reports ["upload-reports插件"]
P5[日志归档]
end
P4 --> P5
%% 执行机非被测环境:pytest-orch 编排远程 / 本地执行
subgraph orch ["pytest-orch插件"]
P6[筛选用例] --> P7[用例环境分类申请]
P7 --> P9
subgraph run-testcase [执行用例]
P9([远程执行])
P9 -->|否| E1[同步用例仓至被测机]
P9 -->|是| P10[执行机远程被测机执行用例]
E1 --> E2[被测机本地执行用例]
E2 --> E3[CMD命令执行]
end
style run-testcase stroke-dasharray: 5 5,fill:none
P10 -->|ssh跨节点执行命令| E3
run-testcase --> RD1[生成测试报告]
RD1 --> RD2[生成用例全集元数据]
RD2 --> E4[日志收集]
E4 --> E5[日志归档]
end
U5[结果和日志查看]
I3[数字化运营看板]
subgraph test-result-display ["test-result-display插件"]
E5 --> U5
end
P5 --> U5
U5 --> I3
插件
uses使用格式为openlibing/test-action/<插件目录>@<tag>,下文示例统一使用 tagv1.0.2作为示例,请按最新的标签替换。
2、插件一览
| 插件名称 | 作用 | 使用示例 | 参考连接 |
|---|---|---|---|
| pytest-orch | 实现用例筛选,按用例环境标签调度环境,编排用例至对应类型环境执行,输出测试报告并收集测试日志归档保存完整流程 | openlibing/test-action/pytest-orch@v1.0.2 | README |
| metadata-collect | 用于指定测试用例路径,获取全量pytest测试用例元数据,生成 XML 格式的用例全集的报告 | openlibing/test-action/metadata-collect@v1.0.2 | README |
| upload-reports | 将用例元数据报告/测试结果报告等文件上传至 openLiBing | openlibing/test-action/upload-reports@v1.0.2 | README |
| test-result-display | 将测试结果和日志归档链接等信息写入Markdown文件并对接至GitCode平台,在Actions流水线的概览下展示 | openlibing/test-action/test-result-display@v1.0.2 | README |
| precision-test | 基于代码覆盖率变更的精准测试用例选择器,按行/函数/文件粒度筛选受影响用例 | openlibing/test-action/precision-test@v1.0.2 | README |
各插件的输入/输出参数、使用约束与完整示例详见插件目录下的 README。
3、典型使用场景示例
3.1、示例1:使用pytest-orch插件实现用例执行与结果展示
使用 pytest-orch 插件调度执行用例,按用例环境标签分类环境,编排用例至对应类型环境执行,输出测试报告并收集测试日志归档保存完整流程。
使用 test-result-display 插件对接GitCode平台,在Actions流水线的概览下展示测试结果。
steps:
# 调度执行用例
- name: Run tests
id: orch
uses: openlibing/test-action/pytest-orch@v1.0.2
with:
testcase-config-file: "tests/xxx/xxx_pytest.ini"
scheduler-secret: ${{ secrets.SCHEDULER_SECRET }}
obs-bucket-name: ${{ vars.OBS_BUCKET_NAME }}
obs-server: ${{ vars.OBS_SERVER }}
obs-base-url: ${{ vars.OBS_BASE_URL }}
# 汇总展示结果
- name: Display results
uses: openlibing/test-action/test-result-display@v1.0.2
with:
json-file: ${{ steps.orch.outputs.testcase-file }}
3.2、示例2:不使用pytest-orch插件实现元数据收集、上传与结果展示
在不使用pytest-orch 插件,用户使用自建测试工程时,可以独立使用 metadata-collect, upload-reports, test-result-display 等插件实现用例元数据收集,上传报告至openLiBing数字化运营平台,以及对接GitCode平台呈现测试结果。
permissions:
repository: read
id-token: write # upload-reports 需通过 OIDC 联邦认证免密上传
steps:
# 收集用例元数据
- name: Collect metadata
id: collect
uses: openlibing/test-action/metadata-collect@v1.0.2
with:
testcase-path: tests
# 其他测试流程
# 上传元数据
- name: Upload metadata
uses: openlibing/test-action/upload-reports@v1.0.2
with:
files: ${{ steps.collect.outputs.metadata-output-path }}
label: smoke
# 汇总展示结果
- name: Display results
uses: openlibing/test-action/test-result-display@v1.0.2
with:
json-file: ${{ steps.xxx.outputs.xxx-json-file }}
4、开发说明
- Node 版本要求:当前gitcode仅支持node16版本。