feat: add docs stie for api-testing (#469)

Signed-off-by: yuluo-yx <yuluo08290126@gmail.com>
This commit is contained in:
YuLuo 2024-06-12 17:43:54 +08:00 committed by GitHub
parent e866727d53
commit 4a7f92c824
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
96 changed files with 1801 additions and 61 deletions

54
.github/markdown_lint_config.json vendored Normal file
View File

@ -0,0 +1,54 @@
{
"MD001": true,
"MD002": false,
"MD003": false,
"MD004": false,
"MD005": false,
"MD006": false,
"MD007": false,
"MD008": false,
"MD009": false,
"MD010": false,
"MD011": false,
"MD012": false,
"MD013": false,
"MD014": false,
"MD015": false,
"MD016": false,
"MD017": false,
"MD018": false,
"MD019": false,
"MD020": false,
"MD021": false,
"MD022": false,
"MD023": false,
"MD024": false,
"MD025": false,
"MD026": false,
"MD027": false,
"MD028": false,
"MD029": false,
"MD030": false,
"MD031": true,
"MD032": false,
"MD033": false,
"MD034": false,
"MD035": false,
"MD036": false,
"MD037": true,
"MD038": true,
"MD039": false,
"MD040": false,
"MD041": false,
"MD042": false,
"MD043": false,
"MD044": false,
"MD045": false,
"MD046": false,
"MD047": false,
"MD048": false,
"MD049": false,
"MD050": false,
"MD051": false
}

99
.github/workflows/docs.yaml vendored Normal file
View File

@ -0,0 +1,99 @@
name: Hugo Docs
on:
push:
branches:
- "master"
paths:
- 'docs/site/**'
- 'tools/make/docs.mk'
pull_request:
branches:
- "main"
paths:
- 'docs/site/**'
- 'tools/make/docs.mk'
permissions:
contents: read
jobs:
docs-lint:
runs-on: ubuntu-22.04
steps:
- name: Check out code
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
ref: ${{ github.event.pull_request.head.sha }}
- uses: ./tools/github-actions/setup-deps
- name: Run markdown linter
uses: nosborn/github-action-markdown-cli@9b5e871c11cc0649c5ac2526af22e23525fa344d # v3.3.0
with:
files: docs/site/content/*
config_file: ".github/markdown_lint_config.json"
- name: Install linkinator
run: npm install -g linkinator@6.0.4
- name: Check links
run: make docs docs-check-links
docs-build:
runs-on: ubuntu-latest
needs: docs-lint
permissions:
contents: write
steps:
- name: Git checkout
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6
with:
submodules: true
ref: ${{ github.event.pull_request.head.sha }}
- uses: ./tools/github-actions/setup-deps
- name: Setup Hugo
uses: peaceiris/actions-hugo@75d2e84710de30f6ff7268e08f310b60ef14033f # v3.0.0
with:
hugo-version: 'latest'
extended: true
- name: Setup Node
uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.1.0
with:
node-version: '18'
- name: Install Site Dependencies and Build Site
run: make docs docs-check-links
# Upload docs for GitHub Pages
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3.0.1
with:
# Path of the directory containing the static assets.
path: docs/site/public
# Duration after which artifact will expire in days.
# retention-days: # optional, default is 1
# This workflow contains a single job called "build"
docs-publish:
if: github.event_name == 'push'
runs-on: ubuntu-latest
needs: docs-build
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
permissions:
pages: write # to deploy to Pages
deployments: write
id-token: write # to verify the deployment originates from an appropriate source
# Deploy to the github-pages environment
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5

View File

@ -1,44 +0,0 @@
# This is a basic workflow to help you get started with Actions
name: Check broken links
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
# Run everyday at 9:00 AM (See https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07)
- cron: "0 5 * * *"
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
check:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "18"
- name: markdown-link-check
uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-quiet-mode: "yes"
config-file: "checklink_config.json"
max-depth: 3
- name: Archive Broken Links List
uses: actions/upload-artifact@v3
if: always()
with:
name: broken-links.json
path: /brokenLinks.json
retention-days: 5

5
docs/site/.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
/public
resources/
node_modules/
package-lock.json
.hugo_build.lock

1
docs/site/.nvmrc Normal file
View File

@ -0,0 +1 @@
lts/*

4
docs/site/Dockerfile Normal file
View File

@ -0,0 +1,4 @@
FROM klakegg/hugo:ext-alpine@sha256:536dd4805d0493ee13bf1f3df3852ed1f26d1625983507c8c56242fc029b44c7
RUN apk add git && \
git config --global --add safe.directory /src

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,210 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="380px" height="310px" viewBox="0 0 380 310" enable-background="new 0 0 380 310" xml:space="preserve"> <image id="image0" width="380" height="310" x="0" y="0"
xlink:href="data:image/png;base64,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" />
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,9 @@
/*
Add styles or override variables from the theme here.
*/
$primary: #1e71ec;
$secondary: #ffffff;
$dark: #4a9ff5;

15
docs/site/config.yaml Normal file
View File

@ -0,0 +1,15 @@
# THIS IS A TEST CONFIG ONLY!
# FOR THE CONFIGURATION OF YOUR SITE USE hugo.yaml.
#
# As of Docsy 0.7.0, Hugo 0.110.0 or later must be used.
#
# The sole purpose of this config file is to detect Hugo-module builds that use
# an older version of Hugo.
#
# DO NOT add any config parameters to this file. You can safely delete this file
# if your project is using the required Hugo version.
module:
hugoVersion:
extended: true
min: 0.110.0

View File

@ -0,0 +1,16 @@
---
title: API Testing
---
{{< blocks/cover title="Welcome to API Testing!" image_anchor="top" height="full" >}}
<a class="btn btn-lg btn-primary me-3 mb-4" href="/v0.0.1">
GET STARTED <i class="fas fa-arrow-alt-circle-right ms-2"></i>
</a>
<a class="btn btn-lg btn-secondary me-3 mb-4" href="/contributions">
CONTRIBUTING <i class="fa fa-heartbeat ms-2 "></i>
</a>
<p class="lead mt-5">YAML based API testing tool. interface debug and test tools.</p>
<!-- 向下翻页图标 -->
{{< blocks/link-down color="white" >}}
<p class="lead mt-5">todo add relative content</p>
{{< /blocks/cover >}}

View File

@ -0,0 +1,21 @@
---
title: About API Testing
linkTitle: About
---
{{% blocks/cover title="About API Testing" height="auto" %}}
API Testing is an open source project for interface debug and test tools.
Read on to find out more, or visit our [documentation](/latest/) to get started!
{{% /blocks/cover %}}
{{% blocks/section color="black" %}}
## Objectives
---
// TBD.
{{% /blocks/section %}}

View File

@ -0,0 +1,35 @@
---
title: "Contributor Code of Conduct"
weight: -1
description: "This section records Contributor Code of Conduct of API Testing."
---
## Contributor Code of Conduct
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery
- Personal attacks
- Trolling or insulting/derogatory comments
- Public or private harassment
- Publishing others private information, such as physical or electronic addresses, without explicit permission
- Other unethical or unprofessional conduct
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident.
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/), version 1.3.0, available at [contributor-covenant.org/version/1/3/0/](http://contributor-covenant.org/version/1/3/0/)

View File

@ -0,0 +1,101 @@
---
title: "Contributing"
weight: -1
description: "This section contributing of API Testing."
---
> English | [中文](CONTRIBUTING-ZH.md)
Please join us to improve this project.
The backend is written by [Golang](https://go.dev/), and the front-end is written by [Vue](https://vuejs.org/).
## For beginner
You might need to know the following tech before get started.
| Name | Domain |
|-----------------------------------------------------------------------------|------------------------------------------------------------------------|
| [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) Protocol | Core |
| [RESTful](https://en.wikipedia.org/wiki/REST) | Core |
| [gRPC](https://grpc.io/) | `gRPC` runner extension |
| [Prometheus](https://prometheus.io/) | Application monitor |
| [Cobra](https://github.com/spf13/cobra) | The Go CLI framework |
| [Element Plus](https://element-plus.org/) | The front-end framework |
| [Docker](https://www.docker.com/get-started/) | The container image build |
| [Helm chart](https://helm.sh/) | The [Kubernetes](https://kubernetes.io/docs/home/) application package |
| [GitHub Actions](https://docs.github.com/en/actions) | The continuous integration |
| [make](https://www.gnu.org/software/make/) | The automated Build Tools |
| [Docs Guide](https://github.com/LinuxSuRen/api-testing.git) | Documentation Guidelines |
## Setup development environment
> This project uses `make` as a build tool and has a very powerful make command system.
> You can see all the available commands by running `make help`.
It's highly recommended you to configure the git pre-commit hook. It will force to run unit tests before commit.
Run the following command:
```shell
make install-precheck
```
## Print the code of lines:
```shell
git ls-files | xargs cloc
```
## pprof
```
go tool pprof -http=:9999 http://localhost:8080/debug/pprof/heap
```
Other usage of this:
* `/debug/pprof/heap?gc=1`
* `/debug/pprof/heap?seconds=10`
* `/debug/pprof/goroutine/?debug=0`
## SkyWalking
```shell
docker run -p 12800:12800 -p 9412:9412 docker.io/apache/skywalking-oap-server:9.0.0
docker run -p 8080:8080 -e SW_OAP_ADDRESS=http://172.11.0.6:12800 -e SW_ZIPKIN_ADDRESS=http://172.11.0.6:9412 docker.io/apache/skywalking-ui:9.0.0
make build
export SW_AGENT_NAME=atest
export SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=172.11.0.6:30689
export SW_AGENT_PLUGIN_CONFIG_HTTP_SERVER_COLLECT_PARAMETERS=true
export SW_AGENT_METER_COLLECT_INTERVAL=3
export SW_AGENT_LOG_TYPE=std
export SW_AGENT_REPORTER_DISCARD=true
./bin/atest server --local-storage 'bin/*.yaml' --http-port 8082 --port 7072 --console-path console/atest-ui/dist/
```
Run SkyWalking with BanYanDB:
```shell
docker run -p 17912:17912 -p 17913:17913 apache/skywalking-banyandb:latest standalone
docker run -p 12800:12800 -p 9412:9412 \
-e SW_STORAGE=banyandb \
-e SW_STORAGE_BANYANDB_HOST=192.168.1.98 \
docker.io/apache/skywalking-oap-server
```
## First contribution
For developers contributing code to this project for the first time, you should run the following command in your local development environment:
```shell
make test
```
This will help you to check for and fix any bugs that you encounter at commit time, as well as reduce the complexity of the review.
## FAQ
* Got sum missing match error of go.
* Run command: `go clean -modcache && go mod tidy`

View File

@ -0,0 +1,24 @@
---
title: "Security"
weight: -1
description: "This section security of API Testing."
---
## Reporting Security Issues
The API Testing commnity takes a rigorous standpoint in annihilating the security issues in its software projects. API Testing is highly sensitive and forthcoming to issues pertaining to its features and functionality.
## REPORTING VULNERABILITY
If you have apprehensions regarding API Testing's security or you discover vulnerability or potential threat, dont hesitate to get in touch with the api-testing Security Team by dropping a mail at [api-testing-security@googlegroups.com](mailto:api-testing-security@googlegroups.com). In the mail, specify the description of the issue or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The API Testing community will get back to you after assessing and analysing the findings.
PLEASE PAY ATTENTION to report the security issue on the security email before disclosing it on public domain.
## VULNERABILITY HANDLING
An overview of the vulnerability handling process is:
The reporter reports the vulnerability privately to API Testing community.
The appropriate project's security team works privately with the reporter to resolve the vulnerability.
A new release of the API Testing product concerned is made that includes the fix.
The vulnerability is publically announced.

View File

@ -0,0 +1,8 @@
+++
title = "Get Involved"
description = "This section includes contents related to Contributions"
linktitle = "Get Involved"
[[cascade]]
type = "docs"
+++

View File

@ -0,0 +1,7 @@
---
title: "Todo Add Design"
weight: -100
description: Todo.
---
// TBD

View File

@ -0,0 +1,5 @@
---
title: "Design"
weight: -100
description: This section includes Designs of API Testing.
---

View File

@ -0,0 +1,7 @@
---
title: "Roadmap"
weight: -1
description: "This section records the roadmap of API Testing."
---
// TBD

View File

@ -0,0 +1,18 @@
+++
title = "Welcome to API Testing"
linktitle = "Documentation"
description = "API Testing Documents"
[[cascade]]
type = "docs"
+++
{{% alert title="Note" color="primary" %}}
This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](/contributions)!
{{% /alert %}}
// TBD.
## Ready to get started?

View File

@ -0,0 +1,5 @@
---
title: "API"
description: This section includes APIs of API Testing.
weight: 80
---

View File

@ -0,0 +1,5 @@
+++
title = "API Reference"
+++
// TBD.

View File

@ -0,0 +1,5 @@
---
title: "Installation"
description: This section includes installation related contents of API Testing.
weight: 70
---

View File

@ -0,0 +1,8 @@
+++
title = "Install with Locally"
weight = -99
+++
// TBD
Install API Testing.

View File

@ -0,0 +1,5 @@
---
title: "Releases"
weight: 90
description: This section includes Releases of API Testing.
---

View File

@ -0,0 +1,8 @@
---
title: "v0.1.0"
publishdate: 2022-05-16
---
Date: 2024 06 01
// TBD

View File

@ -0,0 +1,5 @@
---
title: "Tasks"
weight: 2
description: Learn API Testing hands-on through tasks
---

View File

@ -1,4 +1,7 @@
# gRPC testsuite writing manual
+++
title = "gRPC testsuite writing manual"
weight = -99
+++
This document will introduce how to write testsuite for the gRPC API of `api-testing`.

View File

@ -1,3 +1,8 @@
+++
title = "Mock server get started"
weight = -99
+++
## Get started
You can start a mock server of [container registry](https://distribution.github.io/distribution/) with below command:

View File

@ -1,4 +1,6 @@
## Pushing the test results into Prometheus
+++
title = "Pushing the test results into Prometheus"
+++
You can use the following command to do it:

View File

@ -0,0 +1,7 @@
---
title: "Quickstart"
weight: 1
description: Get started with API Testing in a few simple steps.
---
// TBD

View File

@ -1,4 +1,6 @@
# Secure
+++
title = "Secure"
+++
Usually, when TLS certificate authentication is not used, the gRPC client and server communicate in plain text, and the information is easily eavesdropped or tampered by a third party. Therefore, it is recommended to use SSL/TLS to protect gRPC services in most cases. Currently, `atest` has implemented server-side TLS, and mutual TLS (mTLS) needs to wait for implementation.

View File

@ -0,0 +1,12 @@
+++
title = "News"
linktitle = "News"
description = "API Testing News"
[[cascade]]
type = "docs"
+++
This is the **News** section. It is organized into three categories: blogs, presentations and releases.
The files in these directories will be listed in reverse chronological order.

View File

@ -0,0 +1,8 @@
+++
title = "Blogs"
description = "API Testing Blogs"
linktitle = "Blogs"
[[cascade]]
type = "docs"
+++

View File

@ -0,0 +1,8 @@
+++
title = "Presentations"
description = "API Testing Presentations and activities."
linktitle = "Presentations"
[[cascade]]
type = "docs"
+++

View File

@ -0,0 +1,23 @@
+++
title = "Posting Notice"
description = "API Testing posting notice"
linktitle = "Posting"
[[cascade]]
type = "docs"
+++
This document provides details on API Testing releases.
API Testing follows the Semantic Version Control [v2.0.0 specification][] for release version control.
Since API Testing is a new project, minor versions are the only versions defined.
Additional release details, such as patch versions, will be created by API Testing maintainers at a future date.
## Stable releases {#stable-releases}
## Release management {#release-management}}
## Release schedule} {#release-schedule}

View File

@ -0,0 +1,4 @@
---
title: Search Results
layout: search
---

View File

@ -0,0 +1,18 @@
+++
title = "Welcome to API Testing"
linktitle = "Documentation"
description = "API Testing Documents"
[[cascade]]
type = "docs"
+++
{{% alert title="Note" color="primary" %}}
This project is under **active** development. Many features are not complete. We would love for you to [Get Involved](/contributions)!
{{% /alert %}}
// TBD.
## Ready to get started?

View File

@ -0,0 +1,5 @@
---
title: "API"
description: This section includes APIs of API Testing.
weight: 80
---

View File

@ -0,0 +1,5 @@
+++
title = "API Reference"
+++
// TBD.

View File

@ -0,0 +1,5 @@
---
title: "Installation"
description: This section includes installation related contents of API Testing.
weight: 70
---

View File

@ -0,0 +1,8 @@
+++
title = "Install with Locally"
weight = -99
+++
// TBD
Install API Testing.

View File

@ -0,0 +1,5 @@
---
title: "Releases"
weight: 90
description: This section includes Releases of API Testing.
---

View File

@ -0,0 +1,8 @@
---
title: "v0.1.0"
publishdate: 2022-05-16
---
Date: 2024 06 01
// TBD

View File

@ -0,0 +1,5 @@
---
title: "Tasks"
weight: 2
description: Learn API Testing hands-on through tasks
---

View File

@ -0,0 +1,7 @@
---
title: "Quickstart"
weight: 1
description: Get started with API Testing in a few simple steps.
---
// TBD

View File

@ -0,0 +1,16 @@
---
title: API Testing
---
{{< blocks/cover title="欢迎访问 API Testing" image_anchor="top" height="full" >}}
<a class="btn btn-lg btn-primary me-3 mb-4" href="/v0.0.1">
开始使用 <i class="fas fa-arrow-alt-circle-right ms-2"></i>
</a>
<a class="btn btn-lg btn-secondary me-3 mb-4" href="/contributions">
参与贡献 <i class="fa fa-heartbeat ms-2 "></i>
</a>
<p class="lead mt-5">开源接口调试 & 测试工具</p>
<!-- 向下翻页图标 -->
{{< blocks/link-down color="white" >}}
<p class="lead mt-5">todo 补充一些关联内容</p>
{{< /blocks/cover >}}

View File

@ -0,0 +1,23 @@
---
title: 关于 API Testing.
linkTitle: 关于
---
{{% blocks/cover title="About API Testing" height="auto" %}}
API Testing 是一个接口调试和测试工具的开源项目。
请继续阅读以了解更多信息,或访问我们的 [文档](/latest/) 开始使用!
{{% /blocks/cover %}}
{{% blocks/section color="black" %}}
## Objectives
---
// TBD.
{{% /blocks/section %}}

View File

@ -0,0 +1,101 @@
---
title: "贡献指南"
weight: -1
description: "API Testing 贡献指南."
---
> 中文 | [English](CONTRIBUTING.md)
请加入我们,共同完善这个项目。
后端由 [Golang](https://go.dev/) 编写,前端由 [Vue](https://vuejs.org/) 编写。
### 对于初学者
在开始之前,您可能需要了解以下技术:
| Name | Domain |
|-----------------------------------------------------------------------------|------------------------------------------------------------------------|
| [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) Protocol | Core |
| [RESTful](https://en.wikipedia.org/wiki/REST) | Core |
| [gRPC](https://grpc.io/) | `gRPC` runner extension |
| [Prometheus](https://prometheus.io/) | Application monitor |
| [Cobra](https://github.com/spf13/cobra) | The Go CLI framework |
| [Element Plus](https://element-plus.org/) | The front-end framework |
| [Docker](https://www.docker.com/get-started/) | The container image build |
| [Helm chart](https://helm.sh/) | The [Kubernetes](https://kubernetes.io/docs/home/) application package |
| [GitHub Actions](https://docs.github.com/en/actions) | The continuous integration |
| [make](https://www.gnu.org/software/make/) | The automated Build Tools |
| [Docs Guide](https://github.com/LinuxSuRen/api-testing.git) | 文档编写指南 |
## 设置开发环境
> 本项目使用 `make` 作为构建工具,并设计了非常强大的 make 指令系统。您可以通过运行 `make help` 查看所有可用的命令。
强烈建议您配置 `git pre-commit` 钩子。它会强制在提交前运行单元测试。
运行以下命令:
```shell
make install-precheck
```
## 打印各行代码:
```shell
git ls-files | xargs cloc
```
## pprof
```shell
go tool pprof -http=:9999 http://localhost:8080/debug/pprof/heap
```
其他用法:
* `/debug/pprof/heap?gc=1`
* `/debug/pprof/heap?seconds=10`
* `/debug/pprof/goroutine/?debug=0`
## SkyWalking
```shell
docker run -p 12800:12800 -p 9412:9412 docker.io/apache/skywalking-oap-server:9.0.0
docker run -p 8080:8080 -e SW_OAP_ADDRESS=http://172.11.0.6:12800 -e SW_ZIPKIN_ADDRESS=http://172.11.0.6:9412 docker.io/apache/skywalking-ui:9.0.0
make build
export SW_AGENT_NAME=atest
export SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=172.11.0.6:30689
export SW_AGENT_PLUGIN_CONFIG_HTTP_SERVER_COLLECT_PARAMETERS=true
export SW_AGENT_METER_COLLECT_INTERVAL=3
export SW_AGENT_LOG_TYPE=std
export SW_AGENT_REPORTER_DISCARD=true
./bin/atest server --local-storage 'bin/*.yaml' --http-port 8082 --port 7072 --console-path console/atest-ui/dist/
```
通过 BanYanDB 运行 SkyWalking
```shell
docker run -p 17912:17912 -p 17913:17913 apache/skywalking-banyandb:latest standalone
docker run -p 12800:12800 -p 9412:9412 \
-e SW_STORAGE=banyandb \
-e SW_STORAGE_BANYANDB_HOST=192.168.1.98 \
docker.io/apache/skywalking-oap-server
```
## 第一次贡献
对于第一次对此项目贡献代码的开发者,您应该在本地开发环境运行如下命令:
```shell
make test
```
以确保通过项目测试,这会有助于您检查并解决在提交时遇到的错误,同时减少 review 的复杂度。
## FAQ
* Got sum missing match error of go.
* 运行命令: `go clean -modcache && go mod tidy`.

View File

@ -0,0 +1,8 @@
+++
title = "参与其中"
description = "本节包含与贡献相关的内容"
linktitle = "参与其中"
[[cascade]]
type = "docs"
+++

View File

@ -0,0 +1,7 @@
---
title: "目标"
weight: -1
description: "API Testing goals."
---
// TBD

View File

@ -0,0 +1,5 @@
---
title: "设计"
weight: -100
description: 这部分包含 API Testing 的设计细节.
---

View File

@ -0,0 +1,7 @@
---
title: "安全策略"
weight: -2
description: "API Testing 安全策略。"
---
// TBD

View File

@ -0,0 +1,7 @@
---
title: "发展规划"
weight: -1
description: "API Testing roadmap."
---
// TBD

View File

@ -1,3 +1,18 @@
+++
title = "欢迎访问 API Testing"
linktitle = "文档"
description = "API Testing 文档"
[[cascade]]
type = "docs"
+++
{{% alert title="记录" color="primary" %}}
该项目正在**积极**开发中,很多功能尚待补充,我们希望您[参与其中](contributions/)
{{% /alert %}}
API Testing 一个基于 YAML 文件的开源接口测试工具,同时支持运行在本地、服务端。
在选择工具时,可以从很多方面进行考量、对比,以下几点是该工具的特色或者优点:
@ -122,3 +137,5 @@ items:
* 提供插件机制,增加对数据库等数据源的格式校验
最后期待您的反馈 https://github.com/LinuxSuRen/api-testing/issues
## 准备好开始了吗? {#ready-to-get-started}

View File

@ -0,0 +1,5 @@
---
title: "API"
description: 本节内容包含 API Testing 的 API。
weight: 80
---

View File

@ -0,0 +1,5 @@
+++
title = "API 引用"
+++
// TBD.

View File

@ -0,0 +1,5 @@
---
title: 安装
description: 本节包含关于安装 API Testing 的内容。
weight: 70
---

View File

@ -1,3 +1,8 @@
+++
title = "通过 Helm 安装的方式使用 API Testing"
weight = -98
+++
You could install `api-testing` via Helm chart:
```shell

View File

@ -0,0 +1,6 @@
+++
title = "通过本地安装的方式使用 API Testing"
weight = -99
+++
// TBD

View File

@ -0,0 +1,5 @@
---
title: "版本"
weight: 90
description: 本节内容包含 API Testing 的版本概述。
---

View File

@ -1,3 +1,7 @@
+++
title = "v0.0.12"
+++
`atest` 版本发布 v0.0.12
`atest` 是一款用 Golang 编写的、基于 YAML 格式的开源接口测试工具,可以方便地在本地、服务端、持续集成等场景中使用。

View File

@ -1,3 +1,7 @@
+++
title = "v0.0.13"
+++
`atest` 版本发布 `v0.0.13`
`atest` 是一款用 Golang 编写的、开源的接口测试工具。

View File

@ -1,3 +1,7 @@
+++
title = "v0.0.14"
+++
`atest` 版本发布 `v0.0.14`
`atest` 是一款用 Golang 编写的、开源的接口测试工具。

View File

@ -1,3 +1,7 @@
+++
title = "v0.0.15"
+++
`atest` 发布 `v0.0.15`
`atest` 是致力于帮助开发者持续保持高质量 API 的开源接口工具。

View File

@ -0,0 +1,8 @@
---
title: "v0.0.1"
publishdate: 2024-04-09
---
日期2024 年 6 月 1 日
// TBD

View File

@ -0,0 +1,5 @@
---
title: "任务"
weight: 2
description: 通过任务学习 API Testing 实践。
---

View File

@ -1,4 +1,6 @@
# gRPC测试用例编写指南
+++
title = "gRPC测试用例编写指南"
+++
本文档将介绍如何编写`api-testing`的 gRPC API 的测试用例。

View File

@ -0,0 +1,17 @@
+++
title = "Mock Server 功能使用"
+++
## Get started
您可以通过执行下面的命令 mock 一个容器仓库服务[container registry](https://distribution.github.io/distribution/):
```shell
atest mock --prefix / mock/image-registry.yaml
```
之后,您可以通过使用如下的命令使用 mock 功能。
```shell
docker pull localhost:6060/repo/name:tag
```

View File

@ -0,0 +1,9 @@
---
title: "快速入门"
weight: 1
description: 只需几个简单的步骤即可开始使用 API Testing。
---
本指南将帮助您通过几个简单的步骤开始使用 API Testing。
// TBD

View File

@ -1,4 +1,6 @@
# 关于安全
+++
title = "关于安全"
+++
通常在不使用 TLS 证书认证时gRPC 客户端与服务端之间进行的是明文通信,信息易被第三方监听或篡改。所以大多数情况下均推荐使用 SSL/TLS 保护 gRPC 服务。目前`atest`已实现服务端 TLS双向 TLS(mTLS) 需等待后续实现。

View File

@ -0,0 +1,12 @@
+++
title = "新闻"
linktitle = "新闻"
description = "有关 API Testing 的新闻"
[[cascade]]
type = "docs"
+++
这是**新闻**部分。它分为三个类别:博客、演讲和发布。
这些目录中的文件将按时间倒序列出。

View File

@ -0,0 +1,8 @@
+++
title = "博客"
description = "关于 API Testing 的博客"
linktitle = "博客"
[[cascade]]
type = "docs"
+++

View File

@ -1,3 +1,8 @@
+++
title = "很荣幸与屈晗煜在 GitLink 编程夏令营GLCC活动中协作"
weight = -99
+++
很荣幸与屈晗煜在 GitLink 编程夏令营GLCC活动中协作
作为一名软件工程师,天然有着追求代码质量的执念。相信很多人对代码的优雅、质量有着自己的认识,业界也有不少的共识,其中有一条我认为是非常重要的——代码可测试。

View File

@ -0,0 +1,8 @@
+++
title = "演讲"
description = "有关 API Testing 的演讲、讲座和活动"
linktitle = "演讲"
[[cascade]]
type = "docs"
+++

View File

@ -0,0 +1,25 @@
+++
title = "发布公告"
description = "API Testing 发布公告"
linktitle = "发布"
[[cascade]]
type = "docs"
+++
本文档提供了 API Testing 版本的详细信息。
API Testing 遵循语义版本控制 [v2.0.0 规范][]进行发布版本控制。
由于 API Testing 是一个新项目,因此次要版本是唯一被定义的版本。
API Testing 维护人员在未来的某个日期将建立额外的发布详细信息,例如补丁版本。
## 稳定版本 {#stable-releases}
## 发布管理 {#release-management}
## 发布时间表 {#release-schedule}

View File

@ -0,0 +1,4 @@
---
title: 搜索结果
layout: search
---

View File

@ -0,0 +1,2 @@
adopters:
# todo

View File

@ -0,0 +1,13 @@
version: "3.3"
services:
site:
image: docsy/docsy-example
build:
context: .
command: server
ports:
- "1313:1313"
volumes:
- .:/src

9
docs/site/go.mod Normal file
View File

@ -0,0 +1,9 @@
module github.com/google/docsy-example
go 1.22.1
require (
github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2 // indirect
github.com/google/docsy v0.7.1 // indirect
github.com/twbs/bootstrap v5.2.3+incompatible // indirect
)

22
docs/site/go.sum Normal file
View File

@ -0,0 +1,22 @@
github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f h1:bvkUptSRPZBr3Kxuk+bnWCEmQ5MtEJX5fjezyV0bC3g=
github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo=
github.com/FortAwesome/Font-Awesome v0.0.0-20221115183454-96cafbd73ec4 h1:xfr9SidRCMEh4A8fdkLhFPcHAVbrdv3Ua0Jp/nSmhhQ=
github.com/FortAwesome/Font-Awesome v0.0.0-20221115183454-96cafbd73ec4/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo=
github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2 h1:Uv1z5EqCfmiK4IHUwT0m3h/u/WCk+kpRfxvAZhpC7Gc=
github.com/FortAwesome/Font-Awesome v0.0.0-20230327165841-0698449d50f2/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo=
github.com/google/docsy v0.5.1 h1:D/ZdFKiE29xM/gwPwQzmkyXhcbQGkReRS6aGrF7lnYk=
github.com/google/docsy v0.5.1/go.mod h1:maoUAQU5H/d+FrZIB4xg1EVWAx7RyFMGSDJyWghm31E=
github.com/google/docsy v0.6.0 h1:43bVF18t2JihAamelQjjGzx1vO2ljCilVrBgetCA8oI=
github.com/google/docsy v0.6.0/go.mod h1:VKKLqD8PQ7AglJc98yBorATfW7GrNVsn0kGXVYF6G+M=
github.com/google/docsy v0.7.0 h1:JaeZ0/KufX/BJ3SyATb/fmZa1DFI7o5d9KU+i6+lLJY=
github.com/google/docsy v0.7.0/go.mod h1:5WhIFchr5BfH6agjcInhpLRz7U7map0bcmKSpcrg6BE=
github.com/google/docsy v0.7.1 h1:DUriA7Nr3lJjNi9Ulev1SfiG1sUYmvyDeU4nTp7uDxY=
github.com/google/docsy v0.7.1/go.mod h1:JCmE+c+izhE0Rvzv3y+AzHhz1KdwlA9Oj5YBMklJcfc=
github.com/google/docsy/dependencies v0.5.1/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE=
github.com/google/docsy/dependencies v0.6.0/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE=
github.com/google/docsy/dependencies v0.7.0/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4=
github.com/google/docsy/dependencies v0.7.1/go.mod h1:gihhs5gmgeO+wuoay4FwOzob+jYJVyQbNaQOh788lD4=
github.com/twbs/bootstrap v4.6.2+incompatible h1:TDa+R51BTiy1wEHSYjmqDb8LxNl/zaEjAOpRE9Hwh/o=
github.com/twbs/bootstrap v4.6.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=
github.com/twbs/bootstrap v5.2.3+incompatible h1:lOmsJx587qfF7/gE7Vv4FxEofegyJlEACeVV+Mt7cgc=
github.com/twbs/bootstrap v5.2.3+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0=

284
docs/site/hugo.toml Normal file
View File

@ -0,0 +1,284 @@
baseURL = "/"
title = "API Testing"
# Language settings
contentDir = "content"
defaultContentLanguage = "zh"
defaultContentLanguageInSubdir = false
# Useful when translating.
enableMissingTranslationPlaceholders = true
enableRobotsTXT = true
# Will give values to .Lastmod etc.
enableGitInfo = true
# Comment out to enable taxonomies in Docsy
# disableKinds = ["taxonomy", "taxonomyTerm"]
# You can add your own taxonomies
[taxonomies]
tag = "tags"
category = "categories"
[params.taxonomy]
# set taxonomyCloud = [] to hide taxonomy clouds
taxonomyCloud = ["tags", "categories"]
# If used, must have same length as taxonomyCloud
taxonomyCloudTitle = ["Tag Cloud", "Categories"]
# set taxonomyPageHeader = [] to hide taxonomies on the page headers
taxonomyPageHeader = ["tags", "categories"]
# Highlighting config
pygmentsCodeFences = true
pygmentsUseClasses = false
# Use the new Chroma Go highlighter in Hugo.
pygmentsUseClassic = false
#pygmentsOptions = "linenos=table"
# See https://help.farbox.com/pygments.html
pygmentsStyle = "tango"
# Configure how URLs look like per section.
[permalinks]
blog = "/:section/:year/:month/:day/:slug/"
# Image processing configuration.
[imaging]
resampleFilter = "CatmullRom"
quality = 75
anchor = "smart"
[services]
[services.googleAnalytics]
# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback].
id = "UA-00000000-0"
# Language configuration
[languages]
[languages.zh]
contentDir = "content/zh"
languageName = "中文"
# Weight used for sorting.
weight = 1
[languages.zh.params]
title = "API Testing"
description = "开源的接口调试 & 测试工具"
[languages.en]
contentDir = "content/en"
languageName ="English"
# Weight used for sorting.
weight = 2
[languages.en.params]
title = "API Testing"
description = "YAML based API testing tool. Open source interface debug and test tools."
[markup]
[markup.goldmark]
[markup.goldmark.parser.attribute]
block = true
[markup.goldmark.renderer]
unsafe = true
[markup.highlight]
# See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html
style = "tango"
# Uncomment if you want your chosen highlight style used for code blocks without a specified language
# guessSyntax = "true"
# Everything below this are Site Params
# Comment out if you don't want the "print entire section" link enabled.
[outputs]
section = ["HTML", "print", "RSS"]
[params]
copyright = "The API Testing Authors"
# First one is picked as the Twitter card image if not set on page.
# images = ["images/project-illustration.png"]
# Menu title if your navbar has a versions selector to access old versions of your site.
# This menu appears only if you have at least one [params.versions] set.
version_menu = "Versions"
# Flag used in the "version-banner" partial to decide whether to display a
# banner on every page indicating that this is an archived version of the docs.
# Set this flag to "true" if you want to display the banner.
archived_version = false
# The version number for the version of the docs represented in this doc set.
# Used in the "version-banner" partial to display a version number for the
# current doc set.
version = "latest"
# A link to latest version of the docs. Used in the "version-banner" partial to
# point people to the main doc site.
url_latest_version = "https://api-testing.io"
# Repository configuration (URLs for in-page links to opening issues and suggesting changes)
github_repo = "https://github.com/LinuxSuRen/api-testing/"
# An optional link to a related project repo. For example, the sibling repository where your product code lives.
github_project_repo = "https://github.com/LinuxSuRen/api-testing/"
# Specify a value here if your content directory is not in your repo's root directory
github_subdir = "/site/"
# Uncomment this if your GitHub repo does not have "main" as the default branch,
# or specify a new value if you want to reference another branch in your GitHub links
github_branch= "main"
# Google Custom Search Engine ID. Remove or comment out to disable search.
# gcs_engine_id = "d72aa9b2712488cc3"
# Enable Algolia DocSearch
algolia_docsearch = false
# Enable Lunr.js offline search
offlineSearch = true
# Enable syntax highlighting and copy buttons on code blocks with Prism
prism_syntax_highlighting = false
# User interface configuration
[params.ui]
# Set to true to disable breadcrumb navigation.
breadcrumb_disable = false
# Set to true to disable the About link in the site footer
footer_about_disable = false
# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar
navbar_logo = true
# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage.
navbar_translucent_over_cover_disable = false
# Enable to show the side bar menu in its compact state.
sidebar_menu_compact = true
# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled)
sidebar_search_disable = false
# Show expand/collapse icon for sidebar sections
sidebar_menu_foldable = true
# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events.
# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set.
# If you want this feature, but occasionally need to remove the "Feedback" section from a single page,
# add "hide_feedback: true" to the page's front matter.
[params.ui.feedback]
enable = true
# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful).
yes = 'Glad to hear it! Please <a href="https://github.com/LinuxSuRen/api-testing/issues/new">tell us how we can improve</a>.'
no = 'Sorry to hear that. Please <a href="https://github.com/LinuxSuRen/api-testing/issues/new">tell us how we can improve</a>.'
# Adds a reading time to the top of each doc.
# If you want this feature, but occasionally need to remove the Reading time from a single page,
# add "hide_readingtime: true" to the page's front matter
[params.ui.readingtime]
enable = true
# hugo module configuration
[module]
# uncomment line below for temporary local development of module
# replacements = "github.com/LinuxSuRen/api-testing -> ../../docsy"
[module.hugoVersion]
extended = true
min = "0.110.0"
[[module.imports]]
path = "github.com/google/docsy"
disable = false
[[module.imports]]
path = "github.com/google/docsy/dependencies"
disable = false
[params.links]
# End user relevant links. These will show up on left side of footer and in the community page if you have one.
[[params.links.user]]
name = "User mailing list"
url = "https://groups.google.com/g/api-testing-tech"
icon = "fa fa-envelope"
desc = "Discussion and help from your fellow users"
[[params.links.user]]
name ="Twitter"
url = "https://twitter.com/apitesting"
icon = "fab fa-twitter"
desc = "Follow us on Twitter to get the latest news!"
# Developer relevant links. These will show up on right side of footer and in the community page if you have one.
[[params.links.developer]]
name = "GitHub"
url = "https://github.com/LinuxSuRen/api-testing"
icon = "fab fa-github"
desc = "Development takes place here!"
[[params.links.developer]]
name = "Slack"
url = "https://apitesting.slack.com/archives/C03E6NHLESV"
icon = "fab fa-slack"
desc = "Chat with other project developers"
# i18n for Chinese
[[languages.zh.params.links.user]]
name = "邮件列表"
url = "https://groups.google.com/g/api-testing-tech"
icon = "fa fa-envelope"
desc = "来自其他用户的讨论和帮助"
[[languages.zh.params.links.user]]
name ="推特"
url = "https://twitter.com/apitesting"
icon = "fab fa-twitter"
desc = "在 Twitter 上关注我们以获取最新消息!"
[[languages.zh.params.links.developer]]
name = "GitHub"
url = "https://github.com/LinuxSuRen/api-testing"
icon = "fab fa-github"
desc = "在这里进行开发!"
[[languages.zh.params.links.developer]]
name = "Slack"
url = "https://apitesting.slack.com/archives/C03E6NHLESV"
icon = "fab fa-slack"
desc = "与其他项目开发人员沟通"
[menu]
[[menu.main]]
name = "Contributions"
weight = -98
url = "/contributions"
[[menu.main]]
name = "About"
weight = -100
url = "/about"
[[menu.main]]
name = "News"
weight = -101
url = "/news"
[[menu.main]]
name = "Documentation"
weight = -102
url = "/v0.0.1"
# i18n for Chinese
[[languages.zh.menu.main]]
name = "贡献"
weight = -98
url = "/contributions"
[[languages.zh.menu.main]]
name = "关于"
weight = -100
url = "/about"
[[languages.zh.menu.main]]
name = "新闻"
weight = -101
url = "/news"
[[languages.zh.menu.main]]
name = "文档"
weight = -102
url = "/latest"
[[params.versions]]
version = "latest"
url = "/latest"
[[params.versions]]
version = "v0.0.1"
url = "/v0.0.1"

View File

@ -0,0 +1,6 @@
{{ define "main" -}}
<div class="td-content">
<h1>Not found</h1>
<p>Oops! This page doesn't exist. Try going back to the <a href="{{ "" | relURL }}">home page</a>.</p>
</div>
{{- end }}

View File

@ -0,0 +1,84 @@
{{ $adopters := .Site.Data.adopters.adopters }}
<section id="adopters">
<h2 class="adopter-head">Our Adopters</h2>
<div class="adopters-list">
{{ range $adopters }}
<a class="adopter" href="{{ .url }}" target="_blank">
<img src="{{ .logo | relURL }}" alt="{{ .name }} logo">
<div class="adopter-info">
<p>{{ .description }}</p>
</div>
</a>
{{ end }}
</div>
</section>
<style>
#adopters {
text-align: center;
padding: 0px;
}
.adopter-head {
padding: 50px;
}
.adopters-list {
display: flex;
flex-wrap: wrap;
justify-content: flex-start; /* Center items horizontally */
gap: 20px;
max-width: 1200px; /* Adjust to fit the container width */
margin: 0 auto; /* Center the container */
}
.adopter {
position: relative;
flex: 0 1 calc(25% - 20px); /* Adjust width to fit 4 items per row */
max-width: calc(25% - 20px);
box-sizing: border-box;
padding: 20px;
background-color: #f9f9f9;
border-radius: 8px;
text-align: center;
transition: transform 0.3s ease;
display: grid;
place-items: center;
width: 100%;
}
.adopter img {
max-width: 100%;
height: auto;
}
.adopter-info {
display: none;
position: absolute;
bottom: 100%; /* Position above the logo */
left: 50%;
transform: translateX(-50%);
background-color: rgba(0, 0, 0, 0.8);
color: white;
padding: 10px 10px 0px 15px;
border-radius: 5px;
width: 500px; /* Adjust the width as needed */
z-index: 10;
text-align: left;
}
.adopter:hover .adopter-info {
display: block;
}
/* Responsive design for mobile devices */
@media (max-width: 768px) {
.adopters-list {
justify-content: center; /* Ensure center alignment on mobile */
}
.adopter {
flex: 0 1 100%; /* Each item takes full width */
max-width: 100%;
}
}
</style>

38
docs/site/package.json Normal file
View File

@ -0,0 +1,38 @@
{
"name": "docsy-example-site",
"version": "0.7.1",
"description": "Example site that uses Docsy theme for technical documentation.",
"repository": "github:google/docsy-example",
"homepage": "https://example.docsy.dev",
"author": "Docsy Authors",
"license": "Apache-2.0",
"bugs": "https://github.com/google/docsy-example/issues",
"spelling": "cSpell:ignore HTMLTEST precheck postbuild -",
"scripts": {
"_build": "npm run _hugo-dev",
"_check:links": "echo IMPLEMENTATION PENDING for check-links; echo",
"_hugo": "hugo --cleanDestinationDir",
"_hugo-dev": "npm run _hugo -- -e dev -DFE --baseURL http://localhost --bind 0.0.0.0",
"_serve": "npm run _hugo-dev -- --minify serve",
"build:preview": "npm run _hugo-dev -- --minify --baseURL \"${DEPLOY_PRIME_URL:-/}\"",
"build:production": "npm run _hugo -- --minify",
"build": "npm run _build",
"check:links:all": "HTMLTEST_ARGS= npm run _check:links",
"check:links": "npm run _check:links",
"clean": "rm -Rf public/* resources",
"make:public": "git init -b main public",
"precheck:links:all": "npm run build",
"precheck:links": "npm run build",
"postbuild:preview": "npm run _check:links",
"postbuild:production": "npm run _check:links",
"serve": "npm run _serve",
"test": "npm run check:links",
"update:pkg:dep": "npm install --save-dev autoprefixer@latest postcss-cli@latest",
"update:pkg:hugo": "npm install --save-dev --save-exact hugo-extended@latest"
},
"devDependencies": {
"autoprefixer": "^10.4.14",
"hugo-extended": "0.123.8",
"postcss-cli": "^10.1.0"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1 @@
{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

29
tools/CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,29 @@
## Contributor Code of Conduct
As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery
- Personal attacks
- Trolling or insulting/derogatory comments
- Public or private harassment
- Publishing others private information, such as physical or electronic addresses, without explicit permission
- Other unethical or unprofessional conduct
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident.
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/), version 1.3.0, available at [contributor-covenant.org/version/1/3/0/](http://contributor-covenant.org/version/1/3/0/)

95
tools/CONTRIBUTING.md Normal file
View File

@ -0,0 +1,95 @@
> English | [中文](CONTRIBUTING-ZH.md)
Please join us to improve this project.
The backend is written by [Golang](https://go.dev/), and the front-end is written by [Vue](https://vuejs.org/).
## For beginner
You might need to know the following tech before get started.
| Name | Domain |
|-----------------------------------------------------------------------------|------------------------------------------------------------------------|
| [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview) Protocol | Core |
| [RESTful](https://en.wikipedia.org/wiki/REST) | Core |
| [gRPC](https://grpc.io/) | `gRPC` runner extension |
| [Prometheus](https://prometheus.io/) | Application monitor |
| [Cobra](https://github.com/spf13/cobra) | The Go CLI framework |
| [Element Plus](https://element-plus.org/) | The front-end framework |
| [Docker](https://www.docker.com/get-started/) | The container image build |
| [Helm chart](https://helm.sh/) | The [Kubernetes](https://kubernetes.io/docs/home/) application package |
| [GitHub Actions](https://docs.github.com/en/actions) | The continuous integration |
| [make](https://www.gnu.org/software/make/) | The automated Build Tools |
| [Docs Guide](https://github.com/LinuxSuRen/api-testing.git) | Documentation Guidelines |
## Setup development environment
> This project uses `make` as a build tool and has a very powerful make command system.
> You can see all the available commands by running `make help`.
It's highly recommended you to configure the git pre-commit hook. It will force to run unit tests before commit.
Run the following command:
```shell
make install-precheck
```
## Print the code of lines:
```shell
git ls-files | xargs cloc
```
## pprof
```
go tool pprof -http=:9999 http://localhost:8080/debug/pprof/heap
```
Other usage of this:
* `/debug/pprof/heap?gc=1`
* `/debug/pprof/heap?seconds=10`
* `/debug/pprof/goroutine/?debug=0`
## SkyWalking
```shell
docker run -p 12800:12800 -p 9412:9412 docker.io/apache/skywalking-oap-server:9.0.0
docker run -p 8080:8080 -e SW_OAP_ADDRESS=http://172.11.0.6:12800 -e SW_ZIPKIN_ADDRESS=http://172.11.0.6:9412 docker.io/apache/skywalking-ui:9.0.0
make build
export SW_AGENT_NAME=atest
export SW_AGENT_REPORTER_GRPC_BACKEND_SERVICE=172.11.0.6:30689
export SW_AGENT_PLUGIN_CONFIG_HTTP_SERVER_COLLECT_PARAMETERS=true
export SW_AGENT_METER_COLLECT_INTERVAL=3
export SW_AGENT_LOG_TYPE=std
export SW_AGENT_REPORTER_DISCARD=true
./bin/atest server --local-storage 'bin/*.yaml' --http-port 8082 --port 7072 --console-path console/atest-ui/dist/
```
Run SkyWalking with BanYanDB:
```shell
docker run -p 17912:17912 -p 17913:17913 apache/skywalking-banyandb:latest standalone
docker run -p 12800:12800 -p 9412:9412 \
-e SW_STORAGE=banyandb \
-e SW_STORAGE_BANYANDB_HOST=192.168.1.98 \
docker.io/apache/skywalking-oap-server
```
## First contribution
For developers contributing code to this project for the first time, you should run the following command in your local development environment:
```shell
make test
```
This will help you to check for and fix any bugs that you encounter at commit time, as well as reduce the complexity of the review.
## FAQ
* Got sum missing match error of go.
* Run command: `go clean -modcache && go mod tidy`

18
tools/SECURITY.md Normal file
View File

@ -0,0 +1,18 @@
## Reporting Security Issues
The API Testing commnity takes a rigorous standpoint in annihilating the security issues in its software projects. API Testing is highly sensitive and forthcoming to issues pertaining to its features and functionality.
## REPORTING VULNERABILITY
If you have apprehensions regarding API Testing's security or you discover vulnerability or potential threat, dont hesitate to get in touch with the api-testing Security Team by dropping a mail at [api-testing-security@googlegroups.com](mailto:api-testing-security@googlegroups.com). In the mail, specify the description of the issue or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The API Testing community will get back to you after assessing and analysing the findings.
PLEASE PAY ATTENTION to report the security issue on the security email before disclosing it on public domain.
## VULNERABILITY HANDLING
An overview of the vulnerability handling process is:
The reporter reports the vulnerability privately to API Testing community.
The appropriate project's security team works privately with the reporter to resolve the vulnerability.
A new release of the API Testing product concerned is made that includes the fix.
The vulnerability is publically announced.

View File

@ -43,7 +43,7 @@ linters-settings:
# Contains all imports that could not be matched to another section type.
- default
# Groups all imports with the specified Prefix.
- prefix(github.com/envoyproxy/gateway)
- prefix(github.com/LinuxSuRen/api-testing)
gofmt:
simplify: true
goheader:
@ -58,7 +58,7 @@ linters-settings:
goimports:
# put imports beginning with prefix after 3rd-party packages;
# it's a comma-separated list of prefixes
local-prefixes: github.com/envoyproxy/gateway/
local-prefixes: github.com/LinuxSuRen/api-testing/
govet:
enable-all: true
disable:

View File

@ -2,21 +2,20 @@
#
# All make targets related to docs are defined in this file.
DOCS_OUTPUT_DIR := site/public
##@ Docs
.PHONY: clean
clean: ## Remove all files that are created during builds.
clean: docs.clean
.PHONY: docs
docs: docs.clean
@$(LOG_TARGET)
cd $(ROOT_DIR)/docs/site && npm install
cd $(ROOT_DIR)/docs/site && npm run build:production
.PHONY: check-links
check-links: ## Check for broken links in the docs.
check-links: docs-check-links
# Clean docs dir.
.PHONY: docs.clean
docs.clean:
@$(LOG_TARGET)
rm -rf $(DOCS_OUTPUT_DIR)
.PHONY: docs-check-links
docs-check-links:
@ -24,3 +23,23 @@ docs-check-links:
# Check for broken links
npm install -g linkinator@6.0.4
linkinator docs -r --concurrency 25 -s "github.com"
# Docs site, make by hexo.
.PHONY: docs-serve
docs-serve: ## Start API Testing Site Locally.
@$(LOG_TARGET)
cd $(ROOT_DIR)/docs/site && npm run serve
.PHONY: docs-clean
docs-clean: ## Remove all files that are created during builds.
docs-clean: docs.clean
.PHONY: docs.clean
docs.clean:
@$(LOG_TARGET)
rm -rf $(DOCS_OUTPUT_DIR)
rm -rf docs/site/node_modules
rm -rf docs/site/resources
rm -f docs/site/package-lock.json
rm -f docs/site/.hugo_build.lock