360 Secure SkillHub
360 安全技能中心

Easy run test

该 Skill 说明如何使用 basjoofan 命令行工具:在 .fan 脚本中定义 HTTP 请求与状态断言,通过 basjoofan test 运行接口测试,并用并发数、时长、次数和统计参数执行性能或负载测试;文档给出 GET、表单、multipart 和 JSON 请求示例。

lamb
lamb
热度 41.90
最近更新 2026-05-11 17:37:23
分类:开发依赖:代码执行 / 读写文件 / 第三方 API应用场景:API 集成 / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add basjoofan
Metadata
name
basjoofan
description
Use when user needs to run api test, performance test, load test, stress test, http test etc. 当用户需要运行接口测试、性能测试、负载测试、压力测试、HTTP测试等时使用。 触发词: 接口测试、API测试、性能测试、负载测试、压力测试、HTTP测试
license
MIT, Apache-2.0
metadata
{"openclaw":{"emoji":"🍀","requires":{"bins":["basjoofan"]},"install":[{"id":"get-latest-version","kind":"script","script":"node -e \"const https = require('https'); https.get('https://api.github.com/repos/basjoofan/core/releases/latest', {headers: {'User-Agent': 'node.js'}}, (res) => {let data = ''; res.on('data', chunk => data += chunk); res.on('end', () => {const release = JSON.parse(data); const version = release.tag_name.replace(/^v/, ''); console.log(version);})}).on('error', (err) => {console.error('Error:', err.message); process.exit(1);});\"","env":{"VERSION":"${VERSION}","ARCH":"${process.arch === 'arm64' ? 'aarch64' : 'x86_64'}","OS":"${process.platform === 'darwin' ? 'apple-darwin' : process.platform === 'win32' ? 'pc-windows-msvc.exe' : 'unknown-linux-gnu'}"}},{"id":"download","kind":"download","url":"https://github.com/basjoofan/core/releases/download/v${VERSION}/basjoofan-${VERSION}-${ARCH}-${OS}","bins":["basjoofan"],"label":"Install basjoofan v${VERSION}"}]}}

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请求。

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请求

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格式。

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格式。

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格式。

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
}