# Basjoofan

> Runs API, performance, load, stress, and HTTP tests using the basjoofan CLI with configurable concurrency, duration, and statistics output.

- Skill: `luokai0/basjoofan` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add luokai0/basjoofan`
- Raw SKILL.md: https://api.skillmd.com/api/skills/luokai0/basjoofan/raw
- Safety review: CAUTION (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra, AI & ML, Coding & Dev Tools, Monitoring & Observability, Testing & QA
- Tags: Api Testing, Basjoofan, Cli, Http Testing, Load Testing, Performance Testing, Stress Testing
- License: MIT, Apache-2.0
- Author: luokai0 (https://skillmd.com/u/luokai0)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/luokai0/basjoofan

---


# API test

通过 `basjoofan test [OPTIONS] [NAME]` 来运行测试脚本。

## Quick Reference

| 参数 | 说明 | 必需 | 默认值 |
|------|------|------|--------|
| `--tasks, -t` | 并发数量 | 否 | 1 |
| `--duration, -d` | 测试时长（秒）或分钟（例如：60s, 1m） | 否 | - |
| `--number, -n` | 测试次数 | 否 | 1 |
| `--path, -p` | 测试脚本路径 | 否 | 当前路径 |
| `--record, -r` | 是否记录测试结果 | 否 | - |
| `--stat, -s` | 是否输出统计信息 | 否 | false |

## 命令选择决策树

```
用户想运行测试脚本
├─ 接口测试 → basjoofan test name 测试方法名为name的接口测试
├─ 性能测试 → basjoofan test name -t 100 -d 1m 测试方法名为name的接口测试，并发数量为100，测试时长为1分钟
```

## 使用示例
让我们开始一个简单的接口测试，测试方法名为get，这是一个GET请求。
```bash
let host = "httpbin.org";

rq get`
  GET https://{host}/get
`[status == 200]

test get {
  let response = get->;
  response.status
}
```
这个脚本保存为.fan为后缀名的文件，例如get.fan。
如果用户想运行测试脚本
├─ 接口测试 → basjoofan test get 测试方法名为get的接口测试
├─ 性能测试 → basjoofan test get -t 100 -d 1m -s 测试方法名为get的接口测试，并发数量为100，测试时长为1分钟，输出统计信息

这是一个POST请求
```bash
let host = "httpbin.org";

rq post`
  POST https://{host}/post
`[status == 200]

test post {
  let response = post->;
  response.status
}
```
这是一个POST请求，请求体为application/x-www-form-urlencoded格式。
```bash
let host = "httpbin.org";

rq post`
  POST https://{host}/post
Content-Type: application/x-www-form-urlencoded

key: value
`[status == 200]

test post {
  let response = post->;
  response.status
}
```
这是一个POST请求，请求体为multipart/form-data格式。
```bash
let host = "httpbin.org";

rq post`
  POST https://{host}/post
  Content-Type: multipart/form-data

  key: value
  file: @path/to/file
`[status == 200]

test post {
  let response = post->;
  response.status
}
```

这是一个POST请求，请求体为application/json格式。
```bash
let host = "httpbin.org";

rq post`
  POST https://{host}/post
  Content-Type: application/json

  {
    "name": "Gauss",
    "age": 6,
    "address": {
      "street": "19 Hear Sea Street",
      "city": "DaLian"
    },
    "phones": [
      "+86 13098767890",
      "+86 15876567890"
    ]
  }
`[status == 200]

test post {
  let response = post->;
  response.status
}
```
