locust 執行一段時間,使用者數沒減少,但是 RPS 逐漸減少,最後沒有請求
用的locust 1.3.2,也有下載最新的1.4.1都是相同的結果,檢視到使用者數一直都200,但是執行大約一個小時後,就基本沒有請求
也沒有報錯,檢視都沒有報錯,看起來就像是LOCUST使用者突然就不工作了。
看程式碼沒看出什麼問題,有大佬可以幫忙看看嗎?
# -*- coding=utf-8 -*-
import queue
from locust import HttpUser, between, TaskSet, task
from common.api_base import locust_http_client, get_now_time, create_order_id_62, current_issue, decrypt_aes_ecb, \
get_info
class ChannelTask(TaskSet):
# tasks = {GameTasks: 1, TradeTasks: 2, TerminalTasks: 1} # 其他任務,已註釋
@task(1)
def update_heartbeat_time(self):
"""對終端心跳時間進行修改"""
url = "/self/terminal/info/updateHeartbeatTime"
params = {}
locust_http_client(self, url, params, self._header, self.key)
@task(20)
def bet(self):
"""投注"""
url = "/trade/bet"
game_id = "3"
bet_info = {"betNum": "1|2|2|", "betSN": 1, "multiTimes": 1, "playTypeID": 2010, "wagerMode": 1}
t = get_now_time()
issue = self.new_issue[game_id]
order_id = create_order_id_62(self.terminal_info[1])
if not self.order_list.full():
self.order_list.put_nowait(order_id)
params = {
"betInfoList": [bet_info],
"betMoney": 200, # 投注金額,單位為分
"betTime": t, # 投注時間
"channelType": "1",
"gameId": game_id, # 遊戲編號
"issueNum": issue, # 遊戲期數,預設從資料庫獲取最新的期數
"lastIssueNum": issue, # 連續銷售多期時最後一期期號
"multiIssue": 1, # 多期期數
"operatorId": "",
"orderId": order_id, # 訂單編號
"payType": "1", # 支付方式
"userId": '',
"vip": "" # 積分卡號
}
locust_http_client(self, url, params, self._header, self.key)
@task(8)
def reverse(self):
order_id = self.order_list.get()
url = '/trade/reverse'
params = {
"operatorId": "", # 操作員
"orderId": order_id, # 訂單編號
"rollbackType": 0, # 衝正型別(0:地方衝正 1:中心衝正)
}
locust_http_client(self, url, params, self._header, self.key)
def on_start(self):
self.terminal_info = self.user.terminal_list.get()
# self.terminal_info = next(self.query_sql)
self._header = {"Content-Type": "application/json;charset=UTF-8",
'stationCode': self.terminal_info[0],
'terminalCode': self.terminal_info[1],
'uniqueId': self.terminal_info[2],
'certCode': self.terminal_info[3]}
self.order_list = queue.Queue(maxsize=5)
self.new_issue = current_issue()
header = {"Content-Type": "application/json;charset=UTF-8"}
url = "/terminal/info/getPriKey" # 獲取私鑰
params = {"stationCode": self.terminal_info[0], "terminalCode": self.terminal_info[1]}
with self.client.post(url, json=params, headers=header, verify=False, catch_response=True) as response:
re_result = response.json()
if response.status_code == 200 and re_result['code'] == 0:
response.success()
else:
response.failure("%s,%s" % (self.terminal_info[1], re_result))
self.key = decrypt_aes_ecb(re_result) # 只返回key
url = "/self/terminal/info/terminalLogin" # 登陸
params = {"terminalCertId": self.terminal_info[3], "uniqueId": self.terminal_info[2]}
locust_http_client(self, url, params, self._header, self.key)
url = "/self/terminal/info/syncTime" # 同步時間
params = {}
locust_http_client(self, url, params, self._header, self.key)
class ChannelUser(HttpUser):
wait_time = between(0.5, 1)
host = "https://10.13.1.80:9999"
tasks = [ChannelTask]
terminal_list = queue.Queue()
query_sql = get_info('terminal_cert_40130900.yaml')
for i in query_sql['info']:
terminal_list.put_nowait(i)
相關文章
- face 31減少http請求HTTP
- 網站加速最佳實踐 – 減少HTTP請求數網站HTTP
- 前端巧用localStorage做“快取”,減少HTTP請求次數前端快取HTTP
- tcp減少2msl的時間TCP
- 優雅地減少redux請求樣板程式碼Redux
- 如何減少 Hyperf 框架的掃描時間框架
- 【漫畫】活見鬼,明明刪除了資料,空間卻沒減少!
- IIS減少工作執行緒阻塞的方法執行緒
- 大型網站最佳化技術:減少HTTP請求網站HTTP
- 減少HTTP請求(大型網站最佳化技術)HTTP網站
- js儘量減少程式碼重複執行的次數JS
- 高效能web建站規則(儘量減少http請求)WebHTTP
- 使用MVVM減少控制器程式碼實戰(減少56%)MVVM
- 減少C++程式碼編譯時間的方法C++編譯
- 從 1 秒到 10 毫秒!在 APISIX 中減少 Prometheus 請求阻塞APIPrometheus
- laravel欄位減少增加Laravel
- 設法減少表掃描次數(luise)UI
- MySQL 減少InnoDB系統表空間的大小MySql
- 減少對錶的查詢
- 如何減少同事工作變動
- 使用rownum減少函式呼叫函式
- 減少熱備方法遷移資料庫的停機時間資料庫
- 使用Egret外掛壓縮程式碼包體積,減少請求數量的實戰教程
- CDN的combo技術能把多個資原始檔合併引用,減少請求次數
- 使用BatchNorm替代LayerNorm可以減少Vision Transformer訓練時間和推理時間BATORM
- 瀏覽器的小改進讓 Facebook 網站減少 60% 的網路請求瀏覽器網站
- 相親原始碼開發,從程式碼級別減少資料請求次數的實現原始碼
- 縮短IIS應用池回收時間來實現減少IIS假死
- JDK11垃圾回收暫停時間比Java8減少60%JDKJava
- Android低版本上APP首次啟動時間減少80%(二)AndroidAPP
- 移動spa商城優化記(二)--- 減少70%的打包等待時間優化
- 減少該死的 if else 巢狀巢狀
- 13_共享SQL減少硬解析SQL
- 減少oracle日誌的產生Oracle
- 減少SQL Server死鎖的方法SQLServer
- 探究 | App Startup真的能減少啟動耗時嗎APP
- 減少HTTP請求之合併圖片詳解(大型網站優化技術)HTTP網站優化
- 保持開源專案健康執行並減少壓力的 10 件事