addproject
This commit is contained in:
55
base_framework/platform_tools/wyg_bingfa.py
Normal file
55
base_framework/platform_tools/wyg_bingfa.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import concurrent.futures
|
||||
import requests
|
||||
import time
|
||||
import json
|
||||
|
||||
cost_time = []
|
||||
ALL_TIMES = 10000
|
||||
|
||||
def make_request(url, method='GET', data=None):
|
||||
try:
|
||||
start_time = int(time.time() * 1000)
|
||||
if method.upper() == 'POST':
|
||||
response = requests.post(url, json=data, headers={"content-type": "application/json;charset=UTF-8"})
|
||||
else: # 默认使用GET方法
|
||||
response = requests.get(url, params=data)
|
||||
end_time = int(time.time() * 1000)
|
||||
elapsed_time = end_time - start_time
|
||||
cost_time.append(elapsed_time)
|
||||
return response.text, elapsed_time
|
||||
except requests.RequestException as e:
|
||||
return f"Request failed: {e}", None
|
||||
|
||||
def main():
|
||||
r_url = {'url': 'https://swagger.qa.huohua.cn/peppa-teach-timetable-server/timetableStudentServiceApi/queryListByIds',
|
||||
'method': 'POST', 'data': [225838679]}
|
||||
requests_list = [r_url] * ALL_TIMES
|
||||
|
||||
m_start_time = int(time.time() * 1000)
|
||||
success_times = 0
|
||||
with concurrent.futures.ThreadPoolExecutor(max_workers=50) as executor:
|
||||
future_to_req = {executor.submit(make_request, req['url'], req['method'], req['data']): req for req in requests_list}
|
||||
for future in concurrent.futures.as_completed(future_to_req):
|
||||
req = future_to_req[future]
|
||||
try:
|
||||
data, elapsed_time = future.result()
|
||||
if data and json.loads(data).get('code') == 200:
|
||||
success_times += 1
|
||||
# print(f"URL: {req['url']}\nMethod: {req['method']}\nData: {req['data']}\nResponse:\n{data}\nElapsed time: {elapsed_time:.2f} seconds\n")
|
||||
print("-----:本次耗时{}ms".format(elapsed_time))
|
||||
except Exception as e:
|
||||
print(f"Error fetching {req['url']}: {e}")
|
||||
m_end_time = int(time.time() * 1000)
|
||||
|
||||
all_times = (m_end_time - m_start_time)/1000
|
||||
tps = ALL_TIMES / all_times
|
||||
print("共计访问接口:{}次,成功访问接口:{}次,持续时长:{}秒,tps: {}"
|
||||
.format(len(cost_time), success_times, all_times, tps))
|
||||
print("成功访问接口:{}次".format(success_times))
|
||||
print("单次最大耗时:{}ms".format(max(cost_time)))
|
||||
print("单次最小耗时:{}ms".format(min(cost_time)))
|
||||
print("单次平均耗时:{}ms".format(sum(cost_time) / len(cost_time)))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user