如何安装 Hoppscotch CLI 并跑通第一个集合测试

如何安装 Hoppscotch CLI 并跑通第一个集合测试 如何安装 Hoppscotch CLI 并跑通第一个集合测试【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem Cloud • Web, Desktop CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotchHoppscotch CLI命令hopp用于在本地或 CI 环境中运行 Hoppscotch 测试脚本它解析导出的collection.json逐个执行其中的请求运行 pre-request 脚本输出每个请求的响应并执行测试脚本test-script。本文的目标很具体安装hoppscotch/cli然后跑通第一个集合测试文件。需要说明的是CLI 目前处于 ALPHA 阶段且遵循 pre-1.0 语义化版本规则版本 1.0.0。安装前确认 Node 版本与系统构建依赖CLI 的 package.json 声明了运行环境要求engines: { node: 22 }所以第一步是确认本机 Node 版本不低于 22。其次是系统级构建依赖按 README 的说明分平台安装Windows macOS需要node-gyp安装说明见 https://github.com/nodejs/node-gypDebian/Ubuntu 系sudo apt-get install python g build-essentialAlpine Linuxsudo apk add python3 make gAmazon Linux (AMI)sudo yum install gcc72 gcc72-cArch Linuxsudo pacman -S make gcc pythonRHEL/Fedora 系sudo dnf install python3 make gcc gcc-c zlib-devel brotli-devel openssl-devel libuv-devel以上均为sudo系统包安装命令需要管理员权限会修改系统已安装的软件包请按你的系统对号入座只执行对应一条。全局安装 hoppscotch/cli依赖装好后从 npm 全局安装npm i -g hoppscotch/cli验证安装hopp --ver 与 --help安装成功的最直接判断方式是运行两个只读命令hopp --ver # 或 hopp -v输出当前 CLI 版本号说明hopp已可执行。再看帮助hopp --help # 或 hopp -h帮助文本中应能看到hopp test [options] file_path_or_id命令及其选项-e, --env、-d, --delay、--token、--server、--reporter-junit、--iteration-count、--iteration-data、--legacy-sandbox这是跑集合测试要用的入口。准备第一个集合文件hopp test的参数是一个 Hoppscotch 导出的collection.json文件。下面是最小集合示例基于仓库测试 fixture sample-coll.json 改编仅展示结构值来自该 fixture{ v: 1, name: tests, folders: [], requests: [ { v: 2, endpoint: baseURL, name: , params: [], headers: [], method: GET, auth: { authType: none, authActive: true }, preRequestScript: , testScript: // Check status code is 200\npw.test(\Status code is 200\, () {\n pw.expect(pw.response.status).toBe(200);\n});, body: { contentType: null, body: null }, requestVariables: [] } ] }endpoint中的baseURL是 Hoppscotch 的环境变量写法其值由环境文件提供。仓库中的环境 fixture如 env-v0.json请求指向https://echo.hoppscotch.io这类回显端点你可以按同样方式配置自己的baseURL。对应的 env.json 按 README 给出的格式写{ baseURL: https://echo.hoppscotch.io }README 同时说明这类变量也可以在脚本中通过pw.env.get(baseURL)读取仓库 fixture collection-with-variables.json 就是「请求引用环境、由 env 文件取值」的实际用例。运行第一个集合测试在集合文件所在目录执行hopp test collection.json --env env.json执行时 CLI 会按 README 的描述工作解析 collection JSON、执行每个请求、运行 pre-request 脚本、输出各请求响应、执行并输出 test-script 结果。跑通的标准是所有pw.test(...)断言通过、无失败输出、进程正常结束仓库的端到端测试test.spec.ts对成功用例的判定就是进程退出无错误result.error为 null对失败断言用例则期望以退出码 1 结束。出问题时按错误码定位e2e 测试 覆盖了 CLI 的主要报错分支stderr 中会带错误码可对照排查命令后没有给集合文件 →INVALID_ARGUMENT文件不存在 →FILE_NOT_FOUND集合文件不是合法 JSON →UNKNOWN_ERROR内容是 JSON 但结构不符合集合 schema →MALFORMED_COLLECTION文件扩展名不是.json→INVALID_FILE_TYPE也就是说第一条要检查的就是路径对不对、扩展名是不是.json、内容能不能被解析成合法的 Hoppscotch 集合。另外--iteration-data只接受.csv文件路径不存在报FILE_NOT_FOUND扩展名不对报INVALID_DATA_FILE_TYPE。可选参数与进阶用法跑通最小路径后按 README 的说明按需加参数--env file_path_or_id提供环境文件脚本内用pw.env.get(var_name)取值--delay delay_in_ms延迟请求执行--token access_token个人访问令牌用于连接你的 Hoppscotch 账号从云端按 ID 拉取集合时--server server_url自托管实例的 URL集合存放在自托管实例时使用--reporter-junit [path]指定 JUnit 报告输出路径便于 CI 集成--iteration-count no_of_iterations集合迭代执行次数--iteration-data file_pathCSV 迭代数据文件格式如下每次迭代将对应行值写入同名环境键key1,key2,key3 value1,value2,value3 value4,value5,value6--legacy-sandbox退出实验性 scripting sandbox可选分支从源码构建 CLIREADME 提供了从仓库源码构建的路径需要先安装最新版 pnpmpnpm install # 仅当你修改了这两个包时才需要手动重新构建 pnpm --filter hoppscotch/data run build pnpm --filter hoppscotch/js-sandbox run build cd packages/hoppscotch-cli pnpm run build之后两种本地链接方式README 明确推荐第一种因为它不影响你已全局安装的 CLIpnpm link hoppscotch/cli pnpm exec hopp # 测试完成后取消链接 pnpm rm hoppscotch/cli第二种全局链接方式会覆盖已存在的全局 CLI 安装README 原文有 warning测试完用sudo pnpm rm --global hoppscotch/cli移除sudo pnpm link --global hopp sudo pnpm rm --global hoppscotch/cli限制CLI 处于 ALPHA 阶段pre-1.0 版本中 breaking change 通过大版本号跳跃如0.21.0 → 0.30.0表达升级时留意版本说明集合必须是导出的.json文件且内容合法hopp test同时支持传文件路径或集合 ID配合--token/--server使用云端或自托管实例的集合更多命令行为细节以 test.spec.ts 中覆盖的用例为准【免费下载链接】hoppscotchOpen-Source API Development Ecosystem • https://hoppscotch.io • Offline, On-Prem Cloud • Web, Desktop CLI • Open-Source Alternative to Postman, Insomnia项目地址: https://gitcode.com/GitHub_Trending/ho/hoppscotch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考