關注我的公衆號【軟件測試小助手】,一起學習探討測試知識,一起進步~
公衆號會添加一些趣聞、開發相關等文章 會更加有意思哦~
今天來講解如何手動編寫一個自動化測試腳本
一、首先了解項目各模塊之間構成。
主要講以下三者之間的關係
1、api:用來對接口定義進行描述(相當於單接口測試)
2、testcases:編寫的測試用例場景可以通過引用api的接口描述 (相當於單元測試)
3、testsuites:測試用例集,當測試用例較多的時候,就可以使用testsuits來進行組織管理(相當於集成測試)
二、項目實戰
我這裏找到了一個可以用做接口測試的網址,如下:
http://doc.nnzhp.cn/index.php?s=/6&page_id=12
這裏就是一個簡單的demo,後期慢慢寫複雜的。
說下我的思路:編寫user_create.yaml和user_login.yaml接口文檔,然後通過testcases創建user_create_login.yaml 實現用戶先註冊後登錄的一個流程
ps:注意這裏的文件格式是yaml,和自動生成的格式不一樣哦!
1)第一步,編寫接口api描述
name: user_create #api 功能描述 -註冊
request:
url: user/user_reg #請求路徑 註冊用戶
method: POST #請求方式 建議大寫哦!
data: #這裏標註下 我嘗試了params沒有作用 注意咯
username: $username #接口參數 通過testcase中的variables進行傳值
pwd: $pwd #接口參數
cpwd: $pwd #接口參數
verify: False #用於忽略認證校驗
validate: #斷言結果 用於判斷執行成功失敗
- eq: ['status_code',200] #正常的狀態碼,常見200,500,400等
- eq: ['content.msg','註冊成功!']
name: user_login #api 功能描述
request:
url: user/login #請求路徑 登錄系統
method: POST #請求方式
data:
username: $username #接口參數 通過testcase中的variables進行傳值
passwd: $pwd #接口參數 通過testcase中的variables進行傳值
validate:
- eq: ['status_code',200] #斷言結果 用於判斷執行成功失敗
- eq: ['content.error_code',0] #斷言結果 用於判斷執行成功失敗 斷言返回消息中的內容
2)編寫testcases中腳本,進行用戶創建和登錄操作
- config:
name: register and login
base_url: http://api.nnzhp.cn/api/ #設置基本url地址 會自動拼接api中的路徑
variables: # 定義變量 可以作爲api中的參數
username: 'xiaowenziaa' #註冊接口只能輸入英文名稱,中文暫不支持
pwd: 'aA123456'
- test:
name: create user
api: api/user_create.yaml #api路徑 #最終的路徑會和base_url進行拼接
- test:
name: user_login
api: api/user_login.yaml #api路徑
3)執行代碼,查看測試報告
這裏提醒一下,在testcases中也可以添加斷言,若testcase中存在斷言時,會先對api中的進行校驗,再對testcase中進行校驗。如下圖: