这是 USA Data Tools 隨機美國地址產生器的 2026 完整開發者指南。它涵盖了你能使用这個工具的所有方式——浏览器内的產生器、批量匯出、REST API、JSON 資料 Schema、州筛選、各州專屬的郵遞區號前綴、與 JavaScript 和 Python 項目的集成,以及我们推荐用于覆蓋邊缘情况的 QA 工作流程。读完本文,你将拥有信心發佈一個面向美國的功能所需的一切。

这個工具究竟產生什么

地址產生器的一條記錄是一個結构化對象,包含開發者最常需要的欄位:

  • name——一個真實的名 + 姓組合
  • street——門牌号 + 街道名 + 后缀,例如 4218 Lakeview Dr
  • city——所選州的主要城市
  • state——两位 USPS 州缩写(例如 CA
  • stateFull——完整州名(例如 California
  • zip——从該州正确前綴範圍抽取的 5 位郵遞區號
  • phone——使用對該州有效区号的美國電話
  • formatted——可直接粘贴的多行字符串

值得记住的要點:郵遞區號、電話区号和城市全部與所在州在地理上保持一致。一條加州記錄会產生 90xxx–96xxx 的郵遞區號和 213/408/415/510/… 区号的電話。这正是你在測試中要依赖的特性——当你的表单校驗郵遞區號與州匹配、购物车應用按州计算銷售稅时。

三种產生方式

1. 浏览器 UI

打開地址產生器頁面,从下拉框選擇一個州(或保持“任意州”進行全国隨機抽取),點擊產生。結果卡片会显示多行格式的地址;複製或下載会得到相同内容的 JSON。

2. 批量匯出(一键)

產生器支援一次產生最多 1,000 條地址。它與填充開發資料函式庫的工作流程完美搭配——產生 JSON、写入 fixtures 目录、导入資料函式庫。

// 在 Node 种子腳本中載入 1000 條地址
import users from "./fixtures/seed.JSON" assert { type: "JSON" };

await Promise.all(users.map(async u => {
  await db.user.insert({
    name: u.name,
    street: u.street,
    city: u.city,
    state: u.state,
    zip: u.zip,
    phone: u.phone,
  });
}));

3. REST API

對于腳本、CI 和集成測試,REST API 是正确的接口。完整接口见 API 文档;核心端點是:

curl "https://vic999.com/us-address/api/v1/address?state=CA&count=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

回應結构:

{
  "data": [
    {
      "name": "Jordan Diaz",
      "street": "7511 Eucalyptus Ave",
      "city": "Sacramento",
      "state": "CA",
      "stateFull": "California",
      "zip": "95820",
      "phone": "+1 916 555 0149",
      "formatted": "Jordan Diaz\n7511 Eucalyptus Ave\nSacramento, CA 95820\n+1 916 555 0149"
    },
    ...
  ],
  "count": 10,
  "state": "CA"
}

套餐、速率限制與密钥

免費档允许每月 1,000 次 API 要求,無需註冊,这對大多数個人和评估类工作流程已经足够。Pro 档每月 $9.99,将限额提升至每月 100,000 次要求,并增加批量 CSV 匯出。Business 档面向需要每月 100 万次要求、命名 API 密钥和速率限制控制的团隊。

認證方式是在 Authorization 要求头中使用 Bearer 令牌。你可以在控制台中签發、轮换和吊销密钥。

API 中的州筛選

傳入 state 查詢参数(两位缩写)来限定結果範圍:

curl "https://vic999.com/us-address/api/v1/address?state=TX&count=5" \
  -H "Authorization: Bearer YOUR_API_KEY"

不傳 state 则返回全国隨機地址。對于屬地相關的工作,工具支援全部 51 個州和屬地——示例见各州專屬的產生器頁面。

郵遞區號前綴一致性

这個工具最有用的特性是郵遞區號前綴具備州感知能力。完整的美國郵遞區號對照表见我们的郵遞區號格式详解;这里是概要:

使用的前綴
加利福尼亚州900–961
得克萨斯州75–79
纽约州10–14
佛罗里達州32–34
波多黎各006–009
德拉瓦州197–199(免稅)

如果你的表单用 state 校驗 zip,產生的地址能通過校驗——这正是你在把郵遞區號-州校驗發佈到生產环境之前想要的測試。

免稅州產生器

對于電商測試,免稅州產生器是地址產生器的收窄版本,只輸出德拉瓦、蒙大拿、新罕布什爾和奧勒岡的地址。用它来測試你結账流程中的零銷售稅分支:

curl "https://vic999.com/us-address/api/v1/address?taxFree=1&count=5" \
  -H "Authorization: Bearer YOUR_API_KEY"

把它與你支付沙盒中的測試卡組合起来,你就能用两個稳定的夹具輸入覆蓋整條免稅結账路径。

同时產生 EIN 和 SSN

對于地址之外還需要税号的 KYB / KYC 場景,把地址 API 與 EIN 產生器SSN 測試格式結合使用。在你的 Schema 中多加两個欄位,就能同时容纳企業和個人 KYC,而不会让組件無休止膨胀。逐欄位的對比见我们的 EIN 與 SSN 對比

const entity = {
  ...addressRecord,
  ein: einRecord.value,          // 仅格式正确的假 EIN
  // 或
  ssn: ssnRecord.value,          // 保留区段的 SSN,永远無效
};

幂等性與种子

對于每次運行都要產生相同資料集的測試,傳入 seed 查詢参数。相同的种子加相同的数量,每次都会產生按相同顺序排列的相同記錄。这把“在 CI 上失败却在本地通過的測試”变成“在任何地方都以同样方式失败的确定性測試”。

curl "https://vic999.com/us-address/api/v1/address?count=20&seed=42" \
  -H "Authorization: Bearer YOUR_API_KEY"

在 JavaScript 中集成

一個處理認證、分頁和錯誤的轻量 fetch 封装:

const USA_API = "https://vic999.com/us-address/api/v1";

async function usAddresses({ count = 10, state, seed, taxFree } = {}) {
  const url = new URL(`${USA_API}/address`);
  url.searchParams.set("count", String(count));
  if (state) url.searchParams.set("state", state);
  if (seed != null) url.searchParams.set("seed", String(seed));
  if (taxFree) url.searchParams.set("taxFree", "1");

  const r = await fetch(url, {
    headers: { Authorization: `Bearer ${process.env.USA_KEY}` },
  });
  if (!r.ok) throw new Error(`USA API ${r.status}: ${await r.text()}`);
  return (await r.JSON()).data;
}

// 用法
const ca = await usAddresses({ state: "CA", count: 50 });
console.log(ca[0]);

在 Python 中集成

import os, requests

USA_API = "https://vic999.com/us-address/api/v1"
TOKEN = os.environ["USA_KEY"]

def us_addresses(count=10, state=None, seed=None, tax_free=False):
    params = {"count": count}
    if state: params["state"] = state
    if seed is not None: params["seed"] = seed
    if tax_free: params["taxFree"] = "1"
    r = requests.get(
        f"{USA_API}/address",
        params=params,
        headers={"Authorization": f"Bearer {TOKEN}"},
        timeout=15,
    )
    r.raise_for_status()
    return r.JSON()["data"]

records = us_addresses(state="NY", count=20, seed=99)

建構可复現的夹具

我们后端在用的一個真實工作流程:把產生的地址快照以 JSON 形式存入版本控制,这样任何依赖特定地址的測試都可以锁定到特定的提交。產生器通過 seed 保證确定性,意味着我们永远不需要手动清洗夹具——当底層資料集更新时,我们重新設定种子并重新產生快照。

{
  "v": 1,
  "generated_at": "2026-07-10T09:00:00Z",
  "seed": 42,
  "records": [
    { "name": "...", "city": "...", "state": "..." }
  ]
}

信箱和密碼补全

地址 API 不返回信箱或密碼(这些通常由你在本地用隨機產生器补充)。把 API 輸出與 Faker.js 結合,產出完整的用户對象:

import { faker } from "@faker-js/faker";

const decorate = (addr) => ({
  ...addr,
  email: faker.internet.email({
    firstName: addr.name.split(" ")[0].toLowerCase(),
    lastName: addr.name.split(" ")[1].toLowerCase(),
  }),
  password: faker.internet.password({ length: 14, prefix: "Abcd1234!" }),
});

围绕这些补全后的夹具搭建完整 Playwright 測試框架的方法,见我们的註冊表单測試教學

移动端與桌面端測試

產生的地址覆蓋了键盘自动填充可能抛给你的每一种美國格式邊缘情况:带連字符的郵遞區號、带撇号的名字、“Street”與“St”后缀的差异。把它们跑一遍 iOS 和 Android WebView(或 BrowserStack 之类的服务)——你在这里發現的任何崩溃都是真實的。

快取策略

三層快取,从最便宜到最贵:

  1. 進程内快取:CI 運行期间對地址記錄設 5 分鐘 TTL。
  2. Redis 層:按查詢字符串(州 + 种子 + 数量)快取,TTL 24 小时。
  3. 物化夹具:把 JSON 快照存入 git,跨測試運行锁定。

免費档的速率限制(每月 1000 次)很容易被直調 API 的測試套件耗尽。Redis 或预產生的夹具可以消除这個上限。

發佈美國功能的 QA 矩阵

用这些產生器輸出手动驗證你的功能能處理每一個类别:

  • 本土 48 州記錄(例如得克萨斯、纽约)
  • 屬地記錄(PR、GU、AS、MP、VI、AA/AE/AP)
  • 免稅州記錄(DE、MT、NH、OR)
  • 9 位郵遞區號(有些用户会粘贴 ZIP+4)
  • 超长街道地址(一些自动补全会產生 50+ 字符的輸出)
  • 国际格式電話(+1 415 ...

当你的 QA 矩阵通過所有这些用例后,美國格式 bug 的长尾基本就關闭了。

閱讀 API 文档

API 文档包含完整的端點参考、要求/回應 Schema、錯誤碼和分頁语義。如果你只读一頁,就读地址端點参考和認證章节。当你需要在表单提交前在前端校驗郵遞區號與州是否匹配时,再結合郵遞區號查詢端點使用。

Pro 與免費档:如何選擇

免費档:每月 1,000 次 API 要求、每天 100 次產生、基础支援、全部 51 個州。適合评估、個人項目,以及快取足够激進、能控制在限额内的 CI 運行。

Pro($9.99/月):不限產生次数、每月 10 万次 API 要求、CSV/JSON 匯出、無廣告。適合每天跑集成測試的小团隊。

Business($49/月):每月 100 万次要求、优先支援、带速率限制控制的命名 API 密钥。適合每個拉取要求都呼叫 API 的 QA 团隊。

先用免費档;真正需要余量时再升级。

常见陷阱與已知問題

  • 混淆 ZIP 與 ZIP+4:API 返回 5 位郵遞區號。如果你專門需要 ZIP+4 的压力測試,请自行拼接 -0000..-9999
  • 信箱唯一性:地址 API 返回姓名但不返回信箱——请在本地產生信箱以确保唯一。
  • 触發速率限制:当測試每次迭代都呼叫 API 时,你会很快耗尽免費档;请快取。
  • 真實世界地理:每個州的城市列表很廣也很真實,但并非详尽——用其他厂商的資料函式庫做居民點查詢时,一些小郵遞區號可能對不上。

总結

隨機美國地址產生器專為測試和填充以美國為核心的功能而生。三种接口——浏览器 UI、批量匯出、REST API——覆蓋你的工作流程,而州感知的郵遞區號/電話一致性恰好是能抓住最大一类真實生產 Bug 的特性。从免費档開始;如果 API 成為你 CI 的承重墙,Pro 方案 $9.99/月固定价格即覆蓋 10 万次要求。再搭配郵遞區號查詢、EIN、SSN 和免稅州產生器,就凑齐了一套完整的美國形態測試資料工具箱。