tianyun 2 年 前
コミット
d8b461aa23
2 ファイル変更28 行追加5 行削除
  1. 11 0
      tmp1.py
  2. 17 5
      tps_util.py

+ 11 - 0
tmp1.py

@@ -0,0 +1,11 @@
+from tps_util import test_api_tps
+
+test_api_tps('http://172.18.196.182:8000/categoryscope/', 'post', json={
+    "spmc": ["*通用设备*水机配件"],
+    "scope": "制造、研发、设计、销售、安装、维修、租赁:太空能热水设备、太阳能热水器系统、空气能热泵热水设备、太阳能光伏系统、净水设备、饮水设备、保温水箱、给排水系统设备、水平衡测试、空调设备、空气净化设备、通风系统、电子产品,承接:市政工程、太阳能与热泵联合节能热水系统改造工程及维护保养、制冷空调系统安装及维护保养、机电设备节能改造工程及维护保养、节水改造工程、消防工程、地基与基础工程。(依法须经批准的项目,经相关部门批准后方可开展经营活动)",
+    "je": [1123.710],
+    "se": [179.790],
+    "taxpayerId": "91440606784867381F",
+    "kprq": ["2019-03-14 00:00:00"],
+    "fpdm": ["4400181130"]
+}, concurrency=1, duration=5, print_res=True)

+ 17 - 5
tps_util.py

@@ -4,15 +4,16 @@ import time
 import statistics
 import statistics
 
 
 
 
-def call_api(url, method, params, json):
+def call_api(url, method, params, json, print_res):
     start = time.time()
     start = time.time()
     response = requests.request(method, url, params=params, json=json)
     response = requests.request(method, url, params=params, json=json)
-    # print(response.json())
+    if print_res:
+        print(response.json())
     end = time.time()
     end = time.time()
     return (end - start) * 1000, response.status_code, len(response.content)
     return (end - start) * 1000, response.status_code, len(response.content)
 
 
 
 
-def test_api_tps(url, method, params=None, json=None, concurrency=1, duration=1):
+def test_api_tps(url, method, params=None, json=None, concurrency=1, duration=1, print_res=False):
     successes = 0
     successes = 0
     failures = 0
     failures = 0
     times = []
     times = []
@@ -20,7 +21,7 @@ def test_api_tps(url, method, params=None, json=None, concurrency=1, duration=1)
 
 
     with concurrent.futures.ThreadPoolExecutor(max_workers=concurrency) as executor:
     with concurrent.futures.ThreadPoolExecutor(max_workers=concurrency) as executor:
         start = time.time()
         start = time.time()
-        futures = [executor.submit(call_api, url, method, params, json) for i in range(concurrency)]
+        futures = [executor.submit(call_api, url, method, params, json, print_res) for i in range(concurrency)]
 
 
         while time.time() - start < duration:
         while time.time() - start < duration:
             completed, futures = concurrent.futures.wait(futures, timeout=0)
             completed, futures = concurrent.futures.wait(futures, timeout=0)
@@ -32,7 +33,18 @@ def test_api_tps(url, method, params=None, json=None, concurrency=1, duration=1)
                     successes += 1
                     successes += 1
                 else:
                 else:
                     failures += 1
                     failures += 1
-                futures.add(executor.submit(call_api, url, method, params, json))
+                futures.add(executor.submit(call_api, url, method, params, json, print_res))
+        # Wait for the remaining futures to complete
+        if futures:
+            completed, _ = concurrent.futures.wait(futures)
+            for future in completed:
+                elapsed, status, length = future.result()
+                times.append(elapsed)
+                data_lengths.append(length)
+                if status == 200:
+                    successes += 1
+                else:
+                    failures += 1
 
 
     total = successes + failures
     total = successes + failures
     tps = total / duration
     tps = total / duration