在測試過程中有些情況通過手工測試是無法測試出來的或是非常難復現,比如網絡異常、網絡延遲,又比如在接口測試過程中如果後臺開發還沒有把接口開發出來時有什麼辦法能夠提前進行接口測試呢?這些情況下純手工測試也是很難做到的,再就是在測試過程中希望合作方返回的數據可以隨意設置,這種情況我們又該如何做呢?這時候mock接口就是一件能夠極大的提高工作效率而且又能夠實現手工測試不能做到的事情,在這裏,我就把最近一段時間做mock平臺的工作記錄下來。
在部門裏面不同的產品線都有自己的mock平臺,但是不同的平臺使用的技術不一樣,有些是通過開源的wiremock,有些是用mina,在我這個做的mock平臺主要是通過freemarker模板來模擬數據,通過接口把數據返回給調用方,下面是大體的系統架構;
這個平臺主要分爲兩個大的部分,一個是web平臺的數據錄入,因爲mock報文接口返回的內容不是固定死的,需要裏面的一些值按照使用人的需要來進行設置,這個設置的內容就是用前面的web平臺來做,另外一部分是mock接口的調用,按照合作方給出的接口報文內容,模擬接口返回的內容,在頁面上是看不出來的,只是在調接口的時候才能感受到;
下面列舉一下在這個mock平臺中涉及到的技術點相應也會詳細的介紹如何用這些技術來實現mock平臺中的一些功能;
1.nginx ip轉發;
2.前臺web頁面中涉及到的spring知識
這部分內容主要是在做前端web頁面的過程中需要掌握的內容;
2.1.如何處理表單數據;
前端頁面頁面中有多條類似的數據需要設置,這裏我們就需要通過表單的形式來對這些數據進行存儲;
在合作方的接口文檔中約定了,post請求必須使用json格式來傳遞參數,所以專門來講下如何來做這個;
2.3.前端設置頁面的數據實現自動刷新;
4.如何模擬合作方的報文(mock過程)
4.1.複雜的返回數據是如何利用freemarker來生成的;
4.1.1.返回固定報文;
4.1.2.返回可設置報文;
4.2..簡單返回數據是如何模擬mock接口的;
5.災備測試
災備測試主要是模擬接口的成功、延時、失敗的情況;
6.模擬支付失敗;
7.實現的細節處理
7.1.數據類型轉換;
8..未來mock平臺發展方向思考;
(待補充。。。。。。)