webvalidate 7.0.0
dotnet tool install --global webvalidate --version 7.0.0
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local webvalidate --version 7.0.0
#tool dotnet:?package=webvalidate&version=7.0.0
nuke :add-package webvalidate --version 7.0.0
Web Validate - Web请求验证工具
Web Validate (WebV) 是一个用于执行端到端测试和长期运行性能和可用性测试的 web 请求验证工具。
有许多现成的 web 测试工具。WebV 与其它工具的两个主要区别是:
整合到一个
单个控制台
中- WebV 将 json 日志发布到 stdout 和 stderr
- WebV 发布 /metrics 端点供 Prometheus 爬取
- 这允许你构建一个可以比较
服务器错误
和客户端错误
的单个控制台 - 这还允许你通过集中式日志监控边缘应用程序,从而显著减少边缘网络流量
- 这允许你构建一个可以比较
对任意结果图进行深度验证
- WebV 主要用于 json API 测试,可以对任意的 json 图进行
深度验证
- WebV 主要用于 json API 测试,可以对任意的 json 图进行
WebV 以 nuggget 包的形式发布,可以安装为 dotnet 全局工具
WebV 还可以作为 docker 容器运行
如果你已安装 .NET Core SDK,作为 dotnet 全局工具运行是运行 WebV 简单且最快的方法
WebV 快速入门
尝试 WebV 最简单的方式是分叉此存储库并通过
在 Codespaces 中打开
WebV 已安装在此 GitHub Codespace 中
将 WebV 安装为 dotnet 全局工具
# this allows you to execute WebV from the shell
dotnet tool install -g webvalidate
对 microsoft.com
运行一个示例验证测试
# change to a directory with WebV test files in it
pushd src/app
# run a test
webv --server https://www.microsoft.com --files msft.json --verbose
通过使用对 GitHub API 进行更复杂的测试
# github tests
webv --server https://api.github.com --files github.json --verbose
运行一个验证失败的测试并导致非零退出代码
webv --server https://www.microsoft.com --files failOnValidationError.json --verbose-errors
尝试 WebV
# get help
webv --help
# change back to the root of the repo
popd
WebV 快速入门 (docker)
对 microsoft.com
运行一个示例验证测试
# run the tests from Docker
docker run -it --rm ghcr.io/cse-labs/webvalidate --server https://www.microsoft.com --files msft.json --verbose
通过使用对 GitHub API 进行更复杂的测试
# github tests
docker run -it --rm ghcr.io/cse-labs/webvalidate --server https://api.github.com --files github.json --verbose
运行一个验证失败的测试并导致非零退出代码
docker run -it --rm ghcr.io/cse-labs/webvalidate --server https://www.microsoft.com --files failOnValidationError.json --verbose-errors
尝试 WebV
# get help
docker run -it --rm ghcr.io/cse-labs/webvalidate --help
在上面的示例中,json 文件包含在 docker 镜像中
使用您自己的测试文件
# assuming you want to mount the current directory to the container's /app/TestFiles
# this will start bash so you can verify the mount worked correctly
docker run -it --rm -v $(pwd):/app/TestFiles --entrypoint bash ghcr.io/cse-labs/webvalidate
# run a test against a local web server running on port 8080 using ./myTest.json
docker run -it --rm -v $(pwd):/app/TestFiles --net=host ghcr.io/cse-labs/webvalidate --server localhost:8080 --files myTest.json
配置
请参阅命令行参数以获取更多详细信息
Web Validate Both environment variables and command line options are used for configuration
- 命令标志优先于环境变量
Web Validate 在两种不同的模式下工作
- 默认模式按顺序处理输入文件(一个一个)一次并退出
- 《--run-loop》模式会持续循环运行,直到停止或达到指定时间
只有在指定了《--run-loop》时,某些环境变量和命令标志才有效,WebV将退出并显示使用信息
某些参数的默认值取决于执行模式
验证文件
有关详细信息,请参阅验证测试文件。
- WebV使用验证文件来定义测试中应运行哪些请求
- 文件中的每一行都详细说明了请求以及WebV将验证的预期结果
- 这可以是验证返回的状态码为200,也可以是检查嵌套json对象或数组中每个返回值的复杂度
与应用程序监控的集成
有关详细信息,请参阅应用程序监控。
- 我们使用《WebV》运行针对我们Web API的地理分布测试
- 这些测试从多个地区全天候运行,并提供对网络延迟/健康状态以及服务状态的见解
- 结果通过日志转发(Fluent Bit)和指标(Prometheus)与我们的“一站式”集成
通过这种方式,我们不仅能避免由于大额云费用,还能跟踪使用率和性能随时间如何变化,确保通过“生产中测试”来保证应用程序的功能和性能。
作为CI-CD管道的一部分运行
在以下条件下,WebV将返回非零退出码(失败)
- 解析测试文件时出错
- 如果在测试期间抛出未处理的异常
- 请使用
GitHub Issues
来报告错误
- 请使用
- 超出--max-errors限制
- 要使测试在任何验证错误时失败,请将--max-errors设置为1(默认为10)
- 对于设置了FailOnValidationError为true的测试中的任何验证错误
贡献
本项目欢迎贡献和建议。大多数贡献需要您同意 contributor license agreement (cla),声明您有权且确实同意授予我们使用您的贡献的权利。有关详细信息,请访问Microsoft Contributor License Agreement。
当您提交拉取请求时,cla机器人会自动判断您是否需要提供cla,并相应地装饰pr(例如状态检查、注释)。只需遵循机器人提供的说明即可。您只需在整个仓库中使用我们的cla执行一次。
本项目采用了Microsoft Open Source Code of Conduct。更多信息请参阅Code of Conduct FAQ或通过[email protected]询问任何额外的问题或评论。
商标
本项目可能包含项目、产品或服务的商标或徽标。
Microsoft商标或徽标的授权使用受且必须遵守Microsoft的商标及品牌指南。
在此项目的修改版本中使用Microsoft商标或徽标时,不得引起混淆或暗示Microsoft的赞助。
对第三方商标或徽标的任何使用均受这些第三方政策的约束。
产品 | 版本 兼容和额外的计算目标框架版本。 |
---|---|
.NET | 支持 net7.0。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
此包没有任何依赖项。