GoTestWAF 项目使用教程
1. 项目的目录结构及介绍
GoTestWAF 项目的目录结构如下:
gotestwaf/
├── cmd/
│ └── gotestwaf/
├── docs/
├── internal/
├── misc/
├── pkg/
├── reports/
├── testcases/
├── tests/
│ └── integration/
├── .dockerignore
├── .gitattributes
├── .gitignore
├── .golangci.yaml
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
├── config.yaml
├── go.mod
├── go.sum
目录介绍
- cmd/gotestwaf/: 包含项目的主启动文件。
- docs/: 包含项目的文档文件。
- internal/: 包含项目的内部实现代码。
- misc/: 包含一些杂项文件。
- pkg/: 包含项目的公共库代码。
- reports/: 包含生成的测试报告文件。
- testcases/: 包含测试用例文件。
- tests/integration/: 包含集成测试文件。
- .dockerignore: Docker 构建时忽略的文件列表。
- .gitattributes: Git 属性配置文件。
- .gitignore: Git 忽略文件列表。
- .golangci.yaml: GolangCI-Lint 配置文件。
- Dockerfile: Docker 构建文件。
- LICENSE: 项目许可证。
- Makefile: 项目构建脚本。
- README.md: 项目说明文档。
- config.yaml: 项目配置文件。
- go.mod: Go 模块文件。
- go.sum: Go 模块依赖校验文件。
2. 项目的启动文件介绍
项目的启动文件位于 cmd/gotestwaf/
目录下,主要文件是 main.go
。该文件负责初始化配置、启动 HTTP 客户端、加载测试用例并执行测试。
启动文件主要功能
- 初始化配置: 从
config.yaml
文件中读取配置。 - 启动 HTTP 客户端: 支持标准 Golang HTTP 客户端和 Chrome 浏览器。
- 加载测试用例: 从
testcases/
目录中加载测试用例。 - 执行测试: 根据配置和测试用例执行测试,并生成测试报告。
3. 项目的配置文件介绍
项目的配置文件是 config.yaml
,该文件包含了项目运行所需的各种配置选项。
配置文件主要内容
- URL: 要测试的 WAF 的 URL。
- WAF 名称: 指定 WAF 产品的名称。
- 测试用例路径: 指定测试用例文件夹的路径。
- 工作线程数: 指定用于扫描的工作线程数。
- HTTP 客户端: 选择使用的 HTTP 客户端(标准 Golang HTTP 客户端或 Chrome)。
- TLS 验证: 是否验证接收到的 TLS 证书。
示例配置文件
url: "https://the-waf-you-wanna-test/"
wafName: "generic"
testCasesPath: "testcases"
workers: 5
httpClient: "standard"
tlsVerify: true
以上是 GoTestWAF 项目的目录结构、启动文件和配置文件的介绍。通过这些信息,您可以更好地理解和使用该项目。