---
title: "Locust load test qua proxy tĩnh dân cư Việt Nam"
url: https://memory.wiki/H3sjDGmv
updated: 2026-09-29T04:24:21.033Z
source: "api"
---
# Locust load test qua proxy tĩnh dân cư Việt Nam

Locust (Python) phù hợp khi bạn mô phỏng user HTTP và cần script linh hoạt. Nhiều API / storefront Việt Nam trả kết quả khác theo geo; nếu worker Locust chạy từ IP nước ngoài, bạn đo nhầm latency và tỉ lệ lỗi. Gắn **proxy tĩnh** dân cư VN giúp toàn bộ request của swarm đi ra cùng exit IP — dễ whitelist và so sánh run-to-run.

> Chỉ load test hệ thống bạn sở hữu hoặc được phép. Tôn trọng rate limit và cửa sổ bảo trì.

## Khi nào Locust cần IP tĩnh VN?

- Đo API nội địa chỉ mở cho IP Việt Nam đã khai báo.
- So sánh p95 trước/sau deploy với cùng điều kiện geo.
- Staging bắt buộc whitelist một IP nguồn — IP xoay phá rule firewall giữa các wave.
- Thu thập evidence: mọi request trong report cùng exit IP.

## Thông số đã xác nhận

Proxy tĩnh dân cư Việt Nam: **1.000đ/ngày** hoặc gói 30 ngày **30.000đ**; Viettel / VNPT / FPT; HTTP hoặc SOCKS5; mạng dân cư thật, IP sạch. Xem: [proxy tĩnh Việt Nam](https://proxyviet.org/proxy-tinh). Checker: [check-proxy](https://proxyviet.org/check-proxy).

## Chuẩn bị env

```bash
export HTTP_PROXY='http://USER:PASS@HOST:PORT'
export HTTPS_PROXY="$HTTP_PROXY"
export EXPECTED_EXIT_IP='x.x.x.x'
curl -x "$HTTP_PROXY" --max-time 25 https://api.ipify.org
echo
```

Cài Locust:

```bash
python -m venv .venv && source .venv/bin/activate
pip install locust
```

## Cách 1: env `HTTP_PROXY` / `HTTPS_PROXY` (đơn giản)

Nhiều phiên bản Locust / urllib3 tôn trọng biến môi trường proxy. Export trước khi chạy:

```bash
export HTTP_PROXY='http://USER:PASS@HOST:PORT'
export HTTPS_PROXY="$HTTP_PROXY"
locust -f locustfile.py --host https://api.example.vn
```

Verify bằng task đầu tiên gọi ipify (xem dưới) — đừng tin proxy đã gắn cho đến khi thấy đúng exit IP.

## Cách 2: gắn proxy trên HttpSession trong Locust

```python
import os
from locust import HttpUser, task, between

PROXY = os.environ["HTTP_PROXY"]  # http://USER:PASS@HOST:PORT
EXPECTED = os.environ["EXPECTED_EXIT_IP"]

class VnApiUser(HttpUser):
    wait_time = between(1, 3)

    def on_start(self):
        self.client.proxies.update({
            "http": PROXY,
            "https": PROXY,
        })
        # verify một lần mỗi user
        r = self.client.get("https://api.ipify.org", name="ip_check")
        if r.text.strip() != EXPECTED:
            r.failure(f"exit IP lệch: {r.text.strip()}")

    @task(5)
    def list_products(self):
        self.client.get("/api/products", headers={"Accept-Language": "vi"})

    @task(1)
    def health(self):
        self.client.get("/healthz")
```

Chạy headless:

```bash
locust -f locustfile.py --headless -u 20 -r 5 -t 3m --host https://api.example.vn
```

Giữ số user vừa phải trên một IP dân cư — residential không phải pipe datacenter. Tăng dần `-u` sau khi đo latency ổn.

## Distributed workers

Mỗi worker process cần cùng `HTTP_PROXY` / secrets. Trên master:

```bash
locust -f locustfile.py --master --expect-workers 2
```

Trên worker:

```bash
export HTTP_PROXY='http://USER:PASS@HOST:PORT'
export HTTPS_PROXY="$HTTP_PROXY"
export EXPECTED_EXIT_IP='x.x.x.x'
locust -f locustfile.py --worker --master-host=MASTER_IP
```

Đừng để một nửa worker quên proxy — report sẽ trộn IP local và IP VN.

## HTTP vs SOCKS5

- Locust dựa requests/urllib3: HTTP proxy phổ biến nhất.
- SOCKS5: cần `requests[socks]` / PySocks và URL `socks5://...` — thử kỹ trước buổi test chính thức.
- Nếu SOCKS lỗi, dùng HTTP từ panel hoặc tunnel local.

## Đọc kết quả có ý thức geo

- So p50/p95 với baseline cùng IP tĩnh (không so với run từ cafe Wi-Fi nước ngoài).
- Tách failure do proxy (407, connect timeout) khỏi failure app (5xx).
- Ghi exit IP + thời điểm ICT vào note của report.

## Lỗi thường gặp

- **407**: thiếu USER:PASS trong URL proxy.
- **Max retries exceeded**: hết hạn gói hoặc HOST sai — curl lại.
- **IP local trong ip_check**: `proxies` chưa gắn hoặc task dùng client khác.
- **Latency cao bất thường**: giảm `-u`; residential có jitter — chạy đủ dài để p95 ổn định.

## Gợi ý vận hành

- Một proxy tĩnh cho một suite load test staging VN.
- Không commit credential; dùng CI secrets.
- Proxy xoay (5.000đ/ngày, 26.000đ/tuần, 69.000đ/tháng) khi cần nhiều IP; test whitelist một IP thì giữ tĩnh.
- Trước run dài: [check-proxy](https://proxyviet.org/check-proxy).

Locust + proxy tĩnh dân cư VN giúp load test phản ánh đúng đường đi từ IP Việt Nam và giữ exit IP cố định giữa các lần đo.
