Jenkins部署后通过Generic Webhook插件向Dify发送通知,Dify用HTTP触发器+签名验证接收并执行回归测试(纯HTTP链式或LLM增强断言),结果经HTTP回调回传Jenkins。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当Jenkins完成一次应用构建并成功部署到测试环境后,需要立即验证核心功能是否正常,避免人工介入延迟反馈、遗漏关键路径。Dify工作流可作为智能测试调度中枢,接收Jenkins触发信号,自动执行预置的接口/业务逻辑回归用例,并将结果实时回传。
在Jenkins中配置Webhook触发器
进入目标项目的“配置”→“构建后操作”→“增加构建后操作”→选择“Trigger builds remotely (for use with scripts)”。
设置身份令牌(Authentication Token),例如填入 【regression-trigger-2026】;该令牌将用于Dify端校验请求合法性,不可泄露或使用默认值。
保存后,Jenkins会生成一个可被外部调用的URL,形如:http://jenkins.example.com/job/my-app/build?token=regression-trigger-2026。注意:此URL仅用于触发构建,不是我们要对接Dify的地址。
真正要配置的是反向通道——让Jenkins在部署成功后,主动向Dify发送通知。因此需安装“Generic Webhook Trigger”插件,添加一个“Generic Webhook Trigger”构建后操作,Payload URL填写你的Dify工作流Webhook地址(如 https://dify.example.com/api/v1/webhook/jenkins-deploy-success),并在“Token”字段再次填入 【regression-trigger-2026】。
在Dify中创建接收Jenkins事件的工作流
登录Dify控制台,新建一个“工作流”应用,命名为“Jenkins部署后回归测试”。
拖入一个“HTTP触发器”节点,点击编辑,在“Webhook URL”处系统自动生成唯一地址(如 /api/v1/webhook/jenkins-deploy-success),复制该路径备用;在“签名密钥(Secret)”栏设置一个强随机字符串(如 sh3a9f8c2d1e5b7),该密钥必须与Jenkins中Generic Webhook Trigger插件的“Secret token”严格一致,否则Dify将拒绝所有请求。
勾选“启用签名验证”,确保只有可信的Jenkins能触发此工作流。Dify会自动校验请求头中的 X-Hub-Signature-256 或 X-Dify-Signature,不匹配则直接返回401。
组装回归测试执行链路
方法一:纯HTTP节点链式调用(适合接口稳定、断言逻辑简单)
从HTTP触发器出发→连接“HTTP请求”节点(调用登录接口)→连接“代码节点”(解析响应、提取token并校验code===200)→再连一个“HTTP请求”节点(携带token调用订单查询接口)→最后接一个“条件判断”节点(检查返回的order_status字段是否为“paid”)。
方法二:LLM增强型动态断言(适合响应结构多变、需语义理解)
在获取到API原始响应后,插入一个“LLM节点”,提示词设为:“你是一名资深测试工程师。请比对以下两个JSON响应体,指出所有字段级差异,并判断是否属于预期变更。若存在未文档化的字段增删或类型变化,请标记为‘高风险’。” 输入变量绑定上一步的 response_old 与 response_new。该节点输出自然语言结论,可直接送入“通知节点”供人工快速定性。
注意:LLM节点不替代自动化断言,它只做辅助决策。关键状态码、必有字段、数值范围等仍须用代码节点硬校验。
将测试结果回传Jenkins
第一步:在Dify工作流末尾添加“HTTP请求”节点,Method选POST,URL填写Jenkins的“Remote API”地址,例如:http://jenkins.example.com/job/my-app/postBuild。
第二步:在请求头中添加 Authorization: Basic [base64-encoded-credentials],凭证为Jenkins中具有Job/Build权限的API Token用户(推荐新建专用账号,避免使用admin主账号)。
第三步:在Body中填入JSON格式结果数据:{"status": "SUCCESS", "test_summary": "共执行12条用例,11条通过,1条失败(订单支付状态异常)", "report_url": "https://dify.example.com/workflows/abc123/runs/def456"}。
第四步:在Jenkins侧,需提前配置好接收该回调的端点。可通过“Script Console”运行Groovy脚本监听POST,或更稳妥地使用“Generic Webhook Plugin”新建一个独立job专门消费Dify回调,避免干扰主构建流水线。


















