Files
lotteryLaravel/scripts/perf/seal-after-close.js
kang e27a00f260 feat: 更新玩法配置管理,简化字段并增强功能
- 将玩法相关的显示名称字段统一为 `display_name`,移除多语言字段。
- 在 `PlayTypePatchController` 中新增即时切换玩法开关的功能,并推送大厅更新。
- 优化多个控制器和服务中的权限检查与数据处理逻辑,提升代码可读性与维护性。
2026-05-25 14:34:24 +08:00

58 lines
1.2 KiB
JavaScript

import http from 'k6/http';
import { check } from 'k6';
import { Counter } from 'k6/metrics';
const baseUrl = __ENV.BASE_URL;
const playerId = __ENV.PLAYER_ID;
const drawNo = __ENV.DRAW_NO;
if (!baseUrl || !playerId || !drawNo) {
throw new Error('Set BASE_URL, PLAYER_ID, DRAW_NO (must already be sealed / past close_time)');
}
const sealedReject = new Counter('sealed_reject_2001');
export const options = {
vus: 50,
duration: '20s',
thresholds: {
sealed_reject_2001: ['count>400'],
http_req_failed: ['rate<0.01'],
},
};
export default function () {
const res = http.post(
`${baseUrl}/api/v1/ticket/place`,
JSON.stringify({
draw_id: drawNo,
currency_code: 'NPR',
client_trace_id: `seal-${__VU}-${__ITER}-${Date.now()}`,
lines: [{ number: '1234', play_code: 'big', amount: 10 }],
}),
{
headers: {
Authorization: `Bearer dev:${playerId}`,
'Content-Type': 'application/json',
Accept: 'application/json',
},
},
);
let code = null;
try {
code = res.json('code');
} catch {
// ignore
}
const rejected = check(res, {
'http 400': (r) => r.status === 400,
'code 2001': () => code === 2001,
});
if (rejected) {
sealedReject.add(1);
}
}