“測試1小時,改Bug一整天”, 傳統手動測試不僅耗時費力,還容易遺漏關鍵場景,導致線上事故頻發。目前,全球Top 10的科技公司中,90%的團隊早已拋棄手動測試,轉向更智能的解決方案——自動化測試!
不過,許多人對自動化測試的認知仍停留在“高門檻”“複雜代碼”的誤區中。
自從上手Apipost,發現並非如此: 無需寫一行代碼,三步操作即可實現全流程自動化測試,小白也能10分鐘上手。
快速上手
1. 新建測試用例
打開Apipost,點擊“新建測試用例”,給你的測試任務起個名字,比如“用户登錄接口測試”。
2. 編排測試用例
在測試用例中,你可以像搭積木一樣,把接口拖拽進來。比如,先添加“用户登錄接口”,再添加“獲取用户信息接口”。
3. 設置測試條件
- 測試環境:從下拉菜單中選擇你的測試環境(比如開發環境、預發佈環境)。
- 執行輪次:設置跑多少次測試,比如跑5次驗證穩定性。
- 間隔時長:每次測試之間隔多久,比如設置為3秒。
- 生成測試報告
點擊“保存並執行”,Apipost會自動生成一份詳細的測試報告,包括接口響應時間、斷言結果、失敗原因等。
使用測試數據
1. 測試數據的創建:從零到一的蜕變
1.1 上傳測試數據文件
- 打開 Apipost,進入測試用例編輯頁面,點擊左側的“測試數據”。
- 點擊“新建測試數據”,選擇“上傳文件”,支持 CSV 和 TXT 格式。
-
示例:準備一個 CSV 文件,包含用户登錄所需的
username和password字段。username,password test01@apipost.cn,123456 test02@apipost.cn,789012 - 上傳後,Apipost 會自動解析文件內容,你可以在右側預覽數據。
1.2 環境隔離:不同環境不同數據
-
在 Apipost 中,支持為每個環境單獨配置測試數據。例如:
- 開發環境使用
local_users.csv。 - 生產環境使用
prod_users.csv。
- 開發環境使用
- 切換環境時,系統會自動識別對應環境的測試數據。
2. 測試數據的使用:讓數據“活”起來
2.1 參數化接口請求
- 編輯接口時,將請求參數設置為變量,例如
{{username}}和{{password}}。
- 在測試條件中選擇剛創建的測試數據,Apipost 會自動將數據填充到接口中。
2.2 循環控制器與測試數據的結合
- 添加“循環控制器”,選擇“完成所有測試數據的迭代”模式。
- 設置循環間隔為 1 秒,確保每次請求之間有足夠的時間。
- 在循環體內調用接口,使用
{{username}}和{{password}}引用數據。
2.3 動態數據提取與再利用
-
如果接口返回的數據是數組格式(如用户列表),可以通過 JSONPath 表達式提取數據。
{ "code": 200, "success": true, "msg": "Data generated successfully", "timestamp": "2023-09-20T14:30:00Z", "data": [ { "id": "e3f5a7b1-9c2d-4f8a-b6c0-1d8e9f2a7b3c", "username": "alice_m2023", "password": "Tp9@xQvL!", "created_at": "2023-09-20T14:00:00Z" }, { "id": "a2b4c6d8-e0f1-4a3b-9c5d-7e9f1a2b3c4d", "username": "maxwell_7", "password": "8nG#r2sKd", "created_at": "2023-09-20T14:05:00Z" }, { "id": "5d7f9a1b-3c8e-4a2d-9b0f-6e1a3b5c7d9e", "username": "zara.frost", "password": "qW6$bY9pA", "created_at": "2023-09-20T14:10:00Z" }, { "id": "8e1a3b5c-7d9e-4f2a-b6c0-9d8e7f1a2b3c", "username": "t_robot92", "password": "Lm3^cF8zN", "created_at": "2023-09-20T14:15:00Z" }, { "id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d", "username": "kira_nexus", "password": "R@4vP7hXy", "created_at": "2023-09-20T14:20:00Z" } ] } - 使用
$.data提取數組。
- 然後在後續接口中通過使用
{{username}}和{{password}}引用數據。
性能測試實戰
性能問題是接口測試的“隱形殺手”。Apipost的性能測試功能,能幫你快速定位瓶頸!
1. 固定模式壓測
- 設置併發數為100,模擬100個用户同時登錄。
- 查看壓測報告中的“平均響應時間”和“失敗率”,判斷接口是否能扛住高併發。
2. 爬坡模式壓測
- 從10個併發開始,逐步增加到100個併發,觀察接口性能的變化趨勢。
- 如果響應時間突然飆升,説明接口在某個併發點出現了性能問題。
CICD實戰指南,從安裝到集成
1. Apipost CLI工具:自動化測試的“發動機”
1.1 安裝 CLI 工具
-
打開終端,運行以下命令安裝 Apipost CLI:
npm install -g apipost-cli-pro -
如果你之前安裝過舊版本的
apipost-cli,請先卸載:npm uninstall -g apipost-cli
1.2 生成 CICD 命令
- 進入你的測試用例頁面。
- 點擊“持續集成”,新建--Apipost Cli,系統會自動生成一個唯一的運行鏈接和 Token。
-
複製生成的命令,例如:
apipost run "https://open.apipost.net/open/ci/automated_testing?ci_id=xxx&token=xxx" -r html
2. 集成到 CI/CD 流程:讓測試成為流水線的一部分
2.1 Jenkins 集成
- 在 Jenkins 項目配置中,添加一個新的“執行 shell”步驟。
- 粘貼剛才生成的 CICD 命令,確保在代碼提交後自動觸發測試。
-
示例配置:
pipeline { agent any tools {nodejs "node16.14"} //替換替換服務器支持的node版本。node版本>16 stages { stage('Install Apipost CLI') { steps { sh 'npm install -g apipost-cli' } } stage('Running Test Scenario') { steps { sh 'apipost run "https://open.apipost.net/open/ci/automated_testing?ci_id=xxx&token=xxx" -r html' } } } }
2.2 GitHub Actions 集成
- 在項目根目錄下創建
.github/workflows/test.yml文件。 -
添加以下內容:
name: Automated API Tests on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node.js environment uses: actions/setup-node@v2 with: node-version: '14' - name: Install Apipost CLI run: npm install -g apipost-cli - name: Running Test Scenario run: apipost run "https://open.apipost.net/open/ci/automated_testing?ci_id=xxx&token=xxx" -r html
實戰場景:用户充值查詢系統
場景描述
假設我們有一個用户管理系統,包含以下四個接口:
- 用户註冊接口:允許新用户註冊。
- 用户登錄接口:驗證用户憑據並返回認證token。
- 用户充值接口:允許用户為賬户充值。
- 查詢賬户信息接口:查詢用户的賬户餘額和充值歷史。
我們將使用Apipost對這些接口進行自動化測試,確保系統的穩定性和可靠性。
自動化測試流程設計
1. 創建測試用例
打開Apipost,點擊“新建測試用例”,給測試任務起個名字,比如“用户完整流程測試”。
2. 添加接口並編排順序
按照以下順序將接口拖拽到測試用例中:
- 用户註冊接口
- 用户登錄接口
- 用户充值接口
- 查詢賬户信息接口
3. 設置請求參數和動態數據提取
-
用户註冊接口:
-
請求參數:
{ "username": "test_user", "email": "test_user_@example.com", "password": "Test@123" } -
斷言:
- 響應狀態碼為200。
- 響應體中包含
"status": "success"。 - 提取
userId並存儲為全局變量。
-
-
用户登錄接口:
-
請求參數:
{ "username": "test_user", "password": "Test@123" } -
斷言:
- 響應狀態碼為200。
- 響應體中包含
"token"字段。 - 提取
token並存儲為全局變量。
-
-
用户充值接口:
-
請求頭:
Authorization: Bearer {{token}} -
請求參數:
{ "userId": "{{userId}}", "amount": 100.00, "currency": "CNY" } -
斷言:
- 響應狀態碼為200。
- 響應體中包含
"transactionId"字段。
-
-
查詢賬户信息接口:
-
請求頭:
Authorization: Bearer {{token}} -
查詢參數:
userId={{userId}} -
斷言:
- 響應狀態碼為200。
- 充值金額是否為100。
-
4. 設置測試條件
- 測試環境:選擇你的測試環境(如開發環境)。
- 執行輪次:設置為1次(完整流程測試)。
- 間隔時長:設置為2秒(確保接口響應穩定)。
5. 生成測試報告
點擊“保存並執行”,Apipost會自動生成一份詳細的測試報告,包括接口響應時間、斷言結果、失敗原因等。
動態數據提取與再利用
在測試過程中,我們使用了動態數據提取功能,將註冊接口返回的userId和登錄接口返回的token存儲為全局變量,並在後續接口中引用這些變量。這種方式不僅減少了重複輸入數據的工作量,還確保了測試數據的一致性和準確性。
性能測試
為了驗證接口在高併發場景下的性能,我們可以在登錄接口上進行性能測試:
- 固定模式壓測:設置併發數為100,模擬100個用户同時登錄。
- 爬坡模式壓測:從10個併發開始,逐步增加到100個併發,觀察接口性能的變化趨勢。
CI/CD集成
將測試用例集成到CI/CD流程中,確保每次代碼提交後自動觸發測試:
- Jenkins集成:在Jenkins項目配置中,添加執行shell步驟,粘貼Apipost生成的CICD命令。
- GitHub Actions集成:在項目根目錄下創建
.github/workflows/test.yml文件,添加安裝Apipost CLI和運行測試命令的步驟。
Apipost自動化測試的核心優勢
- 零代碼:拖拽式編排,小白友好;
- 全場景覆蓋:接口測試、性能壓測、數據驅動一網打盡;
- CI/CD集成:一鍵生成CLI命令,無縫對接Jenkins、GitLab!