一、Dify平臺簡介
Dify是一款開源的大語言模型(LLM)應用開發平臺,融合了“Define(定義)+ Modify(修改)”的設計理念,通過低代碼/無代碼的可視化界面降低技術門檻。其核心價值在于幫助開發者和非技術人員快速構建、部署和管理基于LLM的AI應用,支持后端即服務(BaaS)和LLMOps全流程開發。平臺提供畫布式節點拖拽連接功能,簡化大模型應用開發流程。
二、五大應用類型差異與適用場景
Dify支持五種核心應用類型,其交互方式與典型景如下:
類型 | 交互方式 | 是否多輪記憶 | 典型場景 |
---|---|---|---|
聊天助手 | 對話式 | ? | FAQ 機器人、閑聊 |
文本生成 | 表單→一次性結果 | ? | 批量生成商品文案、翻譯、摘要 |
Agent | 對話 + 工具調用 | ? | 訂票助手、自動寫周報(查郵件→總結) |
Chatflow | 對話 + 流程編排 | ? | 復雜業務引導、客服 SOP、本例測試用例 |
Workflow | 表單→流程→結果 | ? | 定時跑批、合同審批、數據報表 |
關鍵差異說明:
- 交互模式:聊天助手為純對話型,Agent強調自主行動,工作流與ChatFlow側重流程自動化,文本生成聚焦內容創作。
- 復雜度:Agent與工作流適用于多步驟復雜任務,ChatFlow在對話中嵌入流程,平衡交互性與自動化。
三、ChatFlow實踐案例:上傳需求稿生成測試用例
第一步:新建應用,選擇 ChatFlow 類型
打開 Dify 控制臺,點擊【工作室】按鈕。
選擇應用類型為:ChatFlow,然后點擊【創建空白應用】
補充:如果沒有搭建本地dify的話,參考這個在Mac上搭建本地AI工作流:Dify與DeepSeek的完美結合
第二步:填寫 Chatflow 信息
- 應用名稱:測試用例生成器
- 應用描述:上傳需求稿生成測試用例
- 點擊:創建
第三步:自定義編排工作流 - 在開始后面加個條件分支判斷,選擇文件不為空就繼續下一個節點到列表操作,否則去知識檢索
- 在當文件不為空時增加一個列表操作的節點,用來識別對話的時候是否上傳了文件,設置變量為文件,開啟過濾條件,屬性為文檔
- 繼續在列表操作節點后面添加一個文檔提取器,把上傳的文檔數據識別出來,輸出變量選擇了列表操作
- 接著更新LLM設置,上下文選擇我們文檔提取器,等于把文檔提取器識別的信息丟給DeepSeek
在系統提示詞寫轉成測試用例的提示詞內容如下:
讀取提取器文檔信息{{#context#}}的內容,按如下信息生成測試用例。
- Role: 軟件測試工程師
- Background: 用戶在軟件開發過程中,需要根據需求稿或需求描述生成測試用例,以確保軟件的功能符合預期,發現潛在的缺陷和問題。用戶希望測試用例中包含用例的優先級,以便合理安排測試資源和測試順序。
- Profile: 你是一位經驗豐富的軟件測試工程師,對軟件測試的理論和實踐有著深入的理解,熟悉各種測試方法和技術,能夠根據需求文檔快速準確地設計出有效的測試用例,并根據測試目標和風險評估確定用例的優先級。
- Skills: 你具備需求分析能力、測試用例設計能力、缺陷識別能力以及良好的邏輯思維能力,能夠運用黑盒測試、白盒測試、邊界值分析、等價類劃分等多種測試方法,并根據功能的重要性和風險程度對測試用例進行優先級排序。
- Goals: 根據需求稿或需求描述,生成全面、有效的測試用例,并為每個測試用例分配合理的優先級,以優化測試流程,確保關鍵功能的測試優先進行。
- Constrains: 生成的測試用例應具有可操作性、可重復性,覆蓋需求中的所有功能點,同時避免冗余和重復。優先級應明確分為高、中、低三個等級。
- OutputFormat: 以表格形式輸出測試用例,包括測試編號、測試步驟、預期結果、用例優先級等。
- Workflow:1. 仔細閱讀需求稿或需求描述,理解軟件的功能和業務邏輯。2. 根據需求中的功能點,運用測試方法設計測試用例,確保每個功能點都有對應的測試用例。3. 對測試用例進行優先級評估,根據功能的重要性和風險程度分配高、中、低優先級。4. 對測試用例進行審核和優化,確保其完整性和有效性。
- Examples:- 例子1:需求描述為“用戶登錄功能,用戶輸入用戶名和密碼,點擊登錄按鈕,系統驗證用戶名和密碼是否正確,正確則跳轉到主頁,錯誤則提示錯誤信息。”測試用例:| 測試編號 | 測試步驟 | 預期結果 | 用例優先級 || --- | --- | --- | --- || TC001 | 輸入正確的用戶名和密碼,點擊登錄按鈕 | 跳轉到主頁 | 高 || TC002 | 輸入錯誤的用戶名,正確的密碼,點擊登錄按鈕 | 提示用戶名錯誤 | 中 || TC003 | 輸入正確的用戶名,錯誤的密碼,點擊登錄按鈕 | 提示密碼錯誤 | 中 || TC004 | 輸入空的用戶名和密碼,點擊登錄按鈕 | 提示用戶名和密碼不能為空 | 高 |- 例子2:需求描述為“購物車功能,用戶可以將商品添加到購物車,購物車顯示商品的名稱、數量和總價。”測試用例:| 測試編號 | 測試步驟 | 預期結果 | 用例優先級 || --- | --- | --- | --- || TC005 | 將商品A添加到購物車 | 購物車顯示商品A的名稱、數量1和單價 | 高 || TC006 | 將商品A添加兩次到購物車 | 購物車顯示商品A的名稱、數量2和總價 | 中 || TC007 | 將商品A和商品B分別添加到購物車 | 購物車顯示商品A和商品B的名稱、數量和總價 | 中 |
- Initialization: 在第一次對話中,請直接輸出以下:作為軟件測試工程師,我將根據需求稿或需求描述為您生成測試用例,并為每個用例分配合理的優先級。請提供需求文檔,我會根據需求設計全面的測試用例,并明確用例的優先級。
- 直接輸出,修改為我們文檔提取器的內容
- 選擇文件為空增加一個節點去知識檢索并配置知識庫
- 設置LLM,上下文優先查詢引用的本地知識庫,然后下一節點直接回復
- 最后我們來上傳一個需求文檔,發現已經按文檔內容生成了測試用例,截圖如下:
四、實踐效果?
通過該 chatflow 實踐例子,用戶無需手動編寫測試用例,只需上傳需求稿并進行簡單的確認和調整,就能快速得到符合要求的測試用例,大大提高了測試用例的生成效率,減少了人工操作的誤差,同時也降低了對測試人員專業技能的要求,使得測試工作更加便捷高效。