最近小編在打雜,實現了http傳參做接口測試,來分享下http接口測試的流程,小編不是專業測試人員,只是把自己的學習經歷分享下,歡迎各位小伙伴來提出建議,大家互相交流共同成長。
領導給出的需求是,通過http請求傳參到遠程服務器上的腳本,運行腳本后返回結果值到本地
百度了一波,這不就是接口測試嗎?
於是小編看了幾篇接口測試的博文,也嘗試用了幾個接口測試的模塊,最后終於成功了。撒花✿✿ヽ(°▽°)ノ✿
第一步:傳參。通過requests庫
准備一個發送請求且傳參腳本,或者你可以用postman,瀏覽器來發送請求。
假如你想寫一個腳本發送請求,requests庫可以幫助你發送get或者post請求,並且可以帶上參數
requests.get("http://127.0.0.1:5000/login",params=) or requests.post("http://127.0.0.1:5000/login",params=)
params變量后面所帶的就是你要傳給遠程服務器的參數,以字典格式存儲,如:params= {'username': self.username,'password': self.password},這樣,我們就把要傳入的參數打包到http請求中了,
postman的操作也是很簡單,不贅述;而瀏覽器訪問url發送請求,那么最好是用get形式,這樣參數可以攜帶在url后面。
第一步,完成!
第二步:接受參數。
既然是要接受http請求的參數,那么肯定就要有一個web服務器了,我們用flask輕量級web框架構造一個web服務端,用於接收請求以及獲取所攜帶的參數。
不熟悉flask的可以參考官方文檔:http://docs.jinkan.org/docs/flask/quickstart.html
我截取官方文檔中的例子來示例,最小的flask應用
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
主函數app.run是啟動web服務,run的參數有host,port,可以指定ip和端口號,web服務端會自動打開端口,debug = True 時,服務器會在代碼修改后自動重新載入,非常方便。同時也很方便你找到代碼中的錯誤。
@app.route('/') 注釋,你可以在這條注釋中加上接受請求方法的限制和請求路徑,
比如@app.route('/login', methods=['GET', 'POST']) ,就說明該服務端只接受get和post請求,且url地址為ip+端口號+‘/login’,
假如在本地搭建web服務器時,請求的地址為 “http://127.0.0.1:5000/login”
獲取參數是在帶有@app.route('/') 函數中進行的,request.args.get(key)就可以獲取參數字典中,鍵值為key的值了。
第三步:獲取返回值
當我們請求成功的時候,會獲取一個200的狀態碼,如果web服務器還想返回一些其他信息,就可以在函數中直接return,這樣我們在請求成功的時候,也會返回這些信息。