整體項目關(guān)注點

- 項目思想:BDD
行為驅(qū)動開發(fā)的思想褒貶不一,這里不多說。遵循的宗旨能解決業(yè)務(wù)痛點的思想就是好思想。 - 前置條件
1、需要一個IDEA編輯器,這里這里已準(zhǔn)備好下載激活地址,點擊下載
2、會使用cucumber框架的feature文件書寫和jsonPath取值方式 - 測試過程
1、單接口可在同一feature文件內(nèi)定義,包含正向逆向測試。
2、多接口上下游的參數(shù)值傳遞通過jsonPath提取定義變量,下一接口取出變量值傳遞。 - 期望結(jié)果
項目拉下來,只寫業(yè)務(wù)的feature文件接口即可完成接口測試 -
項目目錄結(jié)構(gòu)
接口測試實戰(zhàn)(整個框架不僅僅局限于接口測試)
只關(guān)注cucumber的feature約束文件書寫,即可完成接口測試。
廢話不多說直接進(jìn)入實戰(zhàn)
- 實戰(zhàn)示例:以企業(yè)微信員工查詢、新增、修改、刪除操作接口為例
cucumber框架+rest-assured框架+jsonPath框架各自的使用請自行百度查詢
- 第一步配置IDEA編譯器全局接口服務(wù)器地址
企業(yè)微信服務(wù)端接口地址:https://qyapi.weixin.qq.com
備注:如果需要單個執(zhí)行feature文件,需要對應(yīng)的文件配置下服務(wù)器地址
image.png -
feature文件說明
1、feature文件關(guān)鍵字說明
2、feature文件執(zhí)行順序說明
以feature命名的名字(字母或者數(shù)字盡行排序)如:A-Z或者1-N - 第二步編寫接口用例
1、企業(yè)微信獲取access_token接口(后續(xù)員工查詢、新增、修改、刪除均會使用到)
測試專業(yè)企業(yè)微信信息不保密
企業(yè)微信API文檔:點擊查看
Feature: ["獲取access_token"]
Scenario Outline: 獲取access_token
Given API "/cgi-bin/gettoken"
And Param
"""
corpid : ww27d6f876d80ceec6
corpsecret: yiXycY2QFDwD9HysYNk6hF7NFnt1CxBybuei1YKVaVw
"""
When GET
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Then JSONPATH_GET_MONGO
|access_token|getToken|
Examples:
| jsonPath | value |
| errmsg | ok |
2、讀取人員接口
Feature: ["讀取人員接口"]
Scenario Outline: 讀取人員接口_正向測試
Given API "/cgi-bin/user/get"
And Param
"""
access_token: ${getToken}
userid: CuiZhongYuan
"""
When GET
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Examples:
| jsonPath | value |
| errmsg | ok |
Scenario Outline: 讀取人員接口_逆向測試(缺少token鑒權(quán),期望的錯誤)
Given API "/cgi-bin/user/get"
And Param
"""
access_token:
userid: CuiZhongYuan
"""
When GET
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Examples:
| jsonPath | value |
| errcode | 41001 |
- 新增人員接口
Feature: ["新增成員接口"]
Scenario Outline: 新增人員接口_正向測試
Given API "/cgi-bin/user/create?access_token=${getToken}"
And Body
"""
{
"userid": "TESTER",
"name": "張三",
"alias": "jackzhang",
"mobile": "13800000004",
"department": [2],
}
"""
When POST
Then STATUS "200"
Then JSONPATH_ASSERT "<jsonPath>" equals "<value>"
Examples:
| jsonPath | value |
| errcode | 0 |
請求參數(shù)類型說明
Param:支持url路徑跟的參數(shù)和form-data格式參數(shù)
Body: 支持raw原生的json格式參數(shù)

變量定義和取值

測試運行結(jié)果

Jenkins插件cucumber美化報告直觀



