Smocker 开源项目教程
1. 项目介绍
Smocker(Server Mock)是一个简单且高效的 HTTP 模拟服务器和代理。它旨在帮助开发者轻松创建和管理 HTTP 请求的模拟响应,从而简化测试和开发流程。Smocker 提供了直观的用户界面和强大的配置功能,使得编写和管理模拟变得非常容易。
2. 项目快速启动
2.1 安装
使用 Docker 安装
docker run -d \
--restart=always \
-p 8080:8080 \
-p 8081:8081 \
--name smocker \
ghcr.io/smocker-dev/smocker
手动部署
# 创建部署目录
mkdir -p /opt/smocker && cd /opt/smocker
# 下载并解压最新版本的 Smocker
wget -P /tmp https://github.com/smocker-dev/smocker/releases/latest/download/smocker.tar.gz
tar xf /tmp/smocker.tar.gz
# 启动 Smocker
nohup ./smocker -mock-server-listen-port=8080 -config-listen-port=8081 &
2.2 健康检查
curl localhost:8081/version
2.3 用户界面
Smocker 提供了一个配置用户界面,可以通过浏览器访问 http://localhost:8081/
进行配置和管理。
2.4 使用示例
注册一个模拟
创建一个 helloworld.yml
文件,内容如下:
# helloworld.yml
- request:
path: /hello/world
response:
headers:
Content-Type: application/json
body: >
{
"hello": "Hello, World"
}
使用以下命令注册模拟:
curl -XPOST \
--header "Content-Type: application/x-yaml" \
--data-binary "@helloworld.yml" \
localhost:8081/mocks
查询模拟
curl -i localhost:8080/hello/world
3. 应用案例和最佳实践
3.1 单元测试
在单元测试中,Smocker 可以用来模拟外部 API 的响应,确保测试环境的稳定性和可重复性。
3.2 集成测试
在集成测试中,Smocker 可以模拟复杂的 API 交互,帮助开发者验证系统的整体功能。
3.3 开发环境
在开发环境中,Smocker 可以用来模拟尚未开发完成的后端服务,使得前端开发可以并行进行。
4. 典型生态项目
4.1 Docker
Smocker 可以与 Docker 结合使用,通过 Docker 容器快速部署和管理模拟服务器。
4.2 Caddy
Caddy 是一个强大的 Web 服务器,可以与 Smocker 结合使用,提供更复杂的代理和路由功能。
4.3 HTTPS
Smocker 支持 HTTPS,可以通过 mkcert
生成本地证书,并在开发环境中启用 HTTPS。
# 安装本地证书颁发机构
mkcert -install
# 生成 localhost 证书
mkcert -cert-file /tmp/cert.pem -key-file /tmp/key.pem localhost
# 启动 Smocker 并启用 TLS
./smocker -mock-server-listen-port=44300 -config-listen-port=44301 -tls-enable -tls-cert-file=/tmp/cert.pem -tls-private-key-file=/tmp/key.pem
通过以上步骤,您可以快速启动并使用 Smocker 进行 HTTP 模拟和测试。