Linux下flask服務介面測試
阿新 • • 發佈:2020-12-16
技術標籤:python
目錄
curl介面測試
參考:https://blog.csdn.net/russ44/article/details/53308838
Windows/mac環境上有很多介面測試的工具,如soapui、postman等,但這些工具在linux平臺上使用起來相對不那麼便捷。有時候當我們要測試一些外部介面時,當本地無權呼叫測試路徑時,需要將測試建立在linux平臺,除了封裝簡單的請求程式碼進行實現外,可通過curl實現
1、測試get請求
$ curl http://www.linuxidc.com/login.cgi?user=test001&password=123456
$ curl -d "user=nickwolfe&password=12345" http://www.linuxidc.com/login.cgi
3、在命令列直接傳送JSON結構資料
root [ ~ ]$ curl -H 'content-type: application/json' -X POST -d '{"accountType":"4","channel":"1","channelId":"YW_MMY","uid":"13154897541","phoneNumber":"13154897541","loginSource":"3","loginType":"1","userIp":"192.168.2.3","postTime":"14633fffffffffff81286","userAgent":"Windows NT","imei":"352600051025733","macAddress":"40:92:d4:cb:46:43","serialNumber":"123"}' http://192.168.129.xx/AntiRushServer/api/ActivityAntiRush
響應訊息:
{"code":"4000","message":"引數錯誤:time的值不是UInt"}
Python指令碼完成post介面測試指令碼
import requests new_url="http://10.31.143.2:8989/system/systemOrgan/list" params = {"access_token": "807ad226-cbcc-4620-9544-8f53e1d51405"} payload = { "organId":1, "pageNumber":1, "pageSize":10, "sortBy":"lastUpdateTime", "sort":"DESC"} results = requests.post(new_url, params=params, json=payload).status_code print(results)
執行後訪問網頁,內容中的中文顯示亂碼
解決方式:
給app配置app.config[‘JSON_AS_ASCII'] = False,即:
if __name__ == "__main__":
app.run(host='127.0.0.1', port='8080')
變為:
if __name__ == "__main__":
app.config['JSON_AS_ASCII'] = False
app.run(host='127.0.0.1', port='8080')
解決python介面測試返回json亂碼問題,解決如下:
req = requests.post(url="http://192.168.229.128:8080/cms/manage/loginJump.do",
data={"userAccount": "admin", "loginPwd": "123456"})
results = req.json()
print(json.dumps(results, sort_keys=True, indent=2, separators=(',', ': '), ensure_ascii=False))
# indent 是間隔長度,ensure_asccii解決編碼問題