1. 程式人生 > 其它 >Python3實現簡單的介面效能測試

Python3實現簡單的介面效能測試

# -*- coding:utf-8 -*-


import requests
import datetime
import time
import threading

'''
allow_redirects = False禁止重定向,新增在request引數後
get請求用params傳參
post請求,資料型別form,用data傳參
post請求,資料型別form,用data傳參
post請求,資料型別json,json傳參
timeout:請求超時時間,新增在request引數後
nub = 10#設定併發執行緒數
ResponseTime=float(result.elapsed.microseconds)/1000 #獲取響應時間,單位ms
ThinkTime = 0.5#設定思考時間
AverageTime = "{:.3f}".format(float(sum(myrequest.times))/float(len(myrequest.times)))#計算陣列的平均值,保留3位小數
totaltime = float(hour)*60*60 + float(minute)*60 + float(second) #計算總的思考時間+請求時間
''' class url_request: times = [] error = [] def weather_DC(self): myrequest=url_request() weatherinfo_search = 'https://restapi.amap.com/v3/weather/weatherInfo?parameters' params = {'key': 'cd1b11e80ffac05253196aa2a1233f25', 'city': 110101,
'extensions': 'base', 'output': 'JSON'} result = requests.get(url=weatherinfo_search, params=params) print("狀態碼:",result.status_code) print("返回報文:",result.text) ResponseTime=float(result.elapsed.microseconds)/1000 myrequest.times.append(ResponseTime)
if result.status_code !=200 : myrequest.error.append("0") if __name__=='__main__': myrequest=url_request() threads = [] starttime = datetime.datetime.now() print("請求開始時間:request start time %s" %starttime) nub = 10 ThinkTime = 0.5 for i in range(1, nub+1): t = threading.Thread(target=myrequest.weather_DC()) threads.append(t) for t in threads: time.sleep(ThinkTime) print("執行緒數:thread %s" %t) t.setDaemon(True) t.start() t.join() endtime = datetime.datetime.now() print("請求結束時間:request end time %s" %endtime) time.sleep(3) AverageTime = "{:.3f}".format(float(sum(myrequest.times))/float(len(myrequest.times))) print("平均響應時間:Average Response Time %s ms" %AverageTime) usetime = str(endtime - starttime) hour = usetime.split(':').pop(0) minute = usetime.split(':').pop(1) second = usetime.split(':').pop(2) totaltime = float(hour)*60*60 + float(minute)*60 + float(second) print("併發數:Concurrent processing %s" %nub) print("#總共消耗的時間:use total time %s s" %(totaltime-float(nub*ThinkTime))) print("錯誤請求數:fail request %s s" %myrequest.error.count("0"))

參考文章:https://www.cnblogs.com/clarke/p/5965778.html