上一篇對mock-server已經做了初步的介紹,今天這里繼續接着之前的介紹進行,我們先看之前的mock-server部分,之前編寫了一個登錄的mock,具體json文件見如下的內容:
小王子1110 python接口測試之mock(一) 在現在的軟件開發過程中,特別是app的部分,需要的很多數據以及內容,都是來自server端的API,但是不能保證在客戶端開發的時候,api在 server端已經開發完成,專門等着前端來調用,理想的情況是前端在開發的時候,已經有人寫好了接口,直接調用就可以了,但是這僅僅是理想的情況,很多 時候,現實總是比理想多一層思考和磨難,如果在前端開發的時候,提供api的同學沒有提供,那么怎么辦?等待還是自己先開發,等待肯定是愚蠢的做法,那么 自己開發怎么來解決api提供數據的這個問題,那么使用mock就可以很好的解決,什么是mock?mock簡單的理解就是開發在開發的過程中,需要依賴 一部分的接口,但是對方沒有提供或者環境等等情況,總之是沒有,那么開發使用mock server自己來mock數據,方便自己正常的進行開發和對編寫的功能進行自測。在http://central.maven.org/maven2/com/github/dreamhead/moco-runner/0.12.0/moco-runner-0.12.0-standalone.jar 地址中可以下載到moco-runner-0.12.0-standalone.jar,下載下來就是一個jar,在該地址中,作者對這部分有詳細的說明和啟動mock server方法,這里不在重復的再次說明。 下面我們簡單的編寫一個登錄的,見編寫的login.json字符串: 復制代碼 [ { "request": { "method":"post", "uri":"/login", "json": { "username":"admin", "password":"admin", "roleID":22 } }, "response": { "json": { "username":"xiaowangzi", "stuNo":001, "token":"asdgfhh32456asfgrsfss" } } } ]
查看上面的內容,我們可以看出,在UI或者接口的自動化測 試中,我們知道在TDD的模式中,對數據進行分離,這樣也是為了維護的方便,這樣的目的是為了后期自動化測試用例的擴展性,和它的易維護性,那么下來我們來對上面的json文件進行修改下,對response部分的數據進行分離下,把它放在一個文件中,這樣就可以分離了出來,我們把response的內容 從login.json分離到login_response.json切記login.json與login_response.json務必保持在同一 個目錄下,見login.json的內容:
[ { "request": { "method":"post", "uri":"/login", "json": { "username":"admin", "password":"admin", "roleID":22 } }, "response": { "file":"login_response.json" } } ]
見login_response.json文件的內容:
{ "username":"xiaowangzi", "stuNo":001, "token":"asdgfhh32456asfgrsfss" }
執行login.json文件后,訪問該接口,看是否OK,見執行login.json文件的命令:
使用Fiddler查看該接口,看是否OK,見如下的截圖:
Fiddler查看響應:
下面我們再添加一個業務,就是輸入學生的學號,查詢該學生的詳細信息,直接在login.json文件中完善,見完善后的內容:
[ { "request": { "method":"post", "uri":"/login", "json": { "username":"admin", "password":"admin", "roleID":22 } }, "response": { "file":"login_response.json" } } , { "request": { "method":"post", "uri":"/info", "json": { "token":"asdgfhh32456asfgrsfss", "stuNo":"001" } }, "response": { "file":"info.json" } } ]
info.json的內容如下:
{ "stuInfo": { "username":"xiaowangzi", "stuNo":"001", "age":"17", "gender":"female" }, "grade":"junior", "Math":"89", "English":"59" }
見查詢學生詳細信息接口請求的結果,見如下的Fiddler截圖:
這樣就可以構造兩個接口 進行參數的傳遞了.