效果图在最下方。
C++23 JSON解析库测试框架,内存安全,跨平台,易用。
提供 基础有效性验证、序列化测速度、反序列化测试、增删改查测试、内存占用 等多项测试内容。
提供测试报告和结果数据表格,提供工具生成测试对比图。
- 框架采用C++23,框架本身仅依赖标准库。
- 项目构建使用
CMake,搭配CMakePreset,完全跨平台。 - 第三方库管理,默认使用
vcpkg,可以自行修改CMakePreset调整。
下面提供3种方式:
- 使用vcpkg安装第三方库,推荐清单模式,使用
vcpkg add port 包名添加。然后在CMakeLists.txt中使用find_package和target_link_libraries即可。 - 直接放源码。将头文件放入
include文件夹,将源文件放入src文件夹即可,项目构建/生成时会把这些代码也加入构建/编译生成。 - 使用vcpkg的custom-overlay模式,添加自定义位置的第三方库,推荐看官方示例。
TestBase的子类,也就是各库的测试代码文件,统一放在src/libs/目录下。
根据上述的工作原理,你只需要写一个.cpp文件,编写子类并将其注册到全局单例。
docs 文件夹中提供了一份 model_zh.cpp 模板,将其复制到 src/libs/ 目录下,重命名为 你的库名.cpp,然后根据注释修改代码,即可自动实现功能测试。
如果你有CMake基础,可以看看CMakeLists.txt和CMakePresets.json,项目结构其实非常简单。
根据自己的情况,调整一下CMakePresets.json,然后选择合适的预设选项:
cmake --preset <configure-preset-name>
cmake --build --preset <build-preset-name>请使用 Release 模式以保证测试结果可信,深层递归解析测试可能失败。
完成上述步骤并运行可执行程序。
测试完成后,各种数据将放在result/文件夹下,这里有三大内容:
result.csv文件,存放着各库各测试项目的具体分数。get_chart_**.pyPython程序,用于读取result.csv并生成图表。reports文件夹,生成错误报告。
请进入result/文件夹,然后执行python get_chart_zh.py命令即可。
图片将生成在result/charts_zh/文件夹中。
- 标准库模块实验性支持,需要自行通过CMake预设设置
CMAKE_EXPERIMENTAL_CXX_IMPORT_STD变量 - 项目中有一个
vct-tools-json库,此库将作为测试基准。 - src 中的文件是递归解析的,可以自定义文件夹结构。
- 现有测试文件(
src/libs/中的文件)可以删除,即使全删也能运行程序。 - 如果删除了测试文件,记得修改
CMakeLists.txt和vcpkg.json,删除项目的库依赖。











