webvalidate 7.0.0

dotnet tool install --global webvalidate --version 7.0.0                
此包包含一个可以从外壳/命令行调用的 .NET 工具
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local webvalidate --version 7.0.0                
此包包含一个可以从外壳/命令行调用的 .NET 工具
#tool dotnet:?package=webvalidate&version=7.0.0                
nuke :add-package webvalidate --version 7.0.0                

Web Validate - Web请求验证工具

License CodeQL Build Docker Build

Web Validate (WebV) 是一个用于执行端到端测试和长期运行性能和可用性测试的 web 请求验证工具。

有许多现成的 web 测试工具。WebV 与其它工具的两个主要区别是:

  • 整合到一个单个控制台

    • WebV 将 json 日志发布到 stdout 和 stderr
    • WebV 发布 /metrics 端点供 Prometheus 爬取
      • 这允许你构建一个可以比较服务器错误客户端错误的单个控制台
      • 这还允许你通过集中式日志监控边缘应用程序,从而显著减少边缘网络流量
  • 对任意结果图进行深度验证

    • 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 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于目标框架.NET Standard的信息。

此包没有任何依赖项。

版本 下载 最后更新
7.0.0 306 6/3/2023
2.6.0 567 10/4/2022
2.5.0 446 6/17/2022
2.4.0 514 3/22/2022
2.3.1 323 1/4/2022
2.3.0 293 12/8/2021
2.2.0 461 9/20/2021
1.7.0 563 4/27/2021