> 文档中心 > [HUKS]DtFuzz用例编写测试流程

[HUKS]DtFuzz用例编写测试流程


[HUKS]DtFuzz用例编写测试流程

参考:https://gitee.com/openharmony/test_developertest/blob/master/libs/fuzzlib/README_zh.md

环境:https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-testguide-envbuild.md

1,用例编写

1)启动框架

打开项目路径下的test/developertest/start.bat (linux系统下打开start.sh),选择ipcamera_hispark_aries,回车。

在这里插入图片描述

2)单个用例初始化

Fuzz测试用例生成,执行gen命令,命令格式参考如下

在这里插入图片描述

注意格式,在huks模块生成HksGenerateKey测试用例的命令如:

gen -t FUZZ -fn hksgeneratekey_fuzzer -dp base/security/huks/test/fuzz_test/
命令执行成功后会在相应位置生成目录,目录格式如下

在这里插入图片描述

3)用例编写

先将生成的fuzztest链接入当前模块
  • 打开huks模块目录下的bundle.json文件,加入 在这里插入图片描述

  • 在相应目录下新建一个BUILD.gn文件,写入。group名必须和bundle.json中的名字相对应。

    在这里插入图片描述

  • 在初始化目录中添加代码,其中group是必要的,deps名称必须是 xxxFuzzTest格式,xxx为驼峰命名法。ohos_fuzztest()填写对应的FuzzTest,其它地方填写本模块相应的链入即可。

在这里插入图片描述

可参考:

在这里插入图片描述

Fuzz配置编写参考如下,一般设置为默认

在这里插入图片描述

源文件编写

参考

在这里插入图片描述

具体操作在DoSomethingInterestingWithMyAPI函数中,例如

在这里插入图片描述

2,编译

使用相应模块的编译命令即可,如

# 64位huks测试用例编写./build.sh --product-name rk3568 --build-target out/rk3568/build_configs/security/huks:huks_test --target-cpu arm64

编译产物,需要用到的目录是fuzztest和res

在这里插入图片描述

3,运行

1,打开test/developertest/config/user_config.xml,添加编译产物目录,如下图所示,对应目录应该存放编译产物,”fuzztest",“res”。

在这里插入图片描述

运行developertest/start,选择ipcamera_hispark_aries并且回车

在这里插入图片描述

在控制台输入

run -t FUZZ -ts HksImportKeyFuzzTest

命令格式参考

在这里插入图片描述

运行成功后,结果日志如下

在这里插入图片描述

注意环境必须是python3.7以上,建议python版本3.8.10。用例和系统位数要相对应。

指令

#生成gen -t FUZZ -fn hksimportkey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksexportpublickey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksdeletekey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgetkeyparamset_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hkskeyexist_fuzzer  -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hkshash_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksattestkey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgetcertificatechain_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksbnexpmod_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksinit_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksupdate_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksfinish_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksabort_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgeneratekey_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksgetsdkversion_fuzzer -dp base/security/huks/test/fuzz_test/gen -t FUZZ -fn hksimportwrappedkey_fuzzer -dp base/security/huks/test/fuzz_test/#运行run -t FUZZ -ts HksImportKeyFuzzTestrun -t FUZZ -ts HksExportPublicKeyFuzzTestrun -t FUZZ -ts HksDeleteKeyFuzzTest  run -t FUZZ -ts HksGetKeyParamSetFuzzTestrun -t FUZZ -ts HksKeyExistFuzzTest  run -t FUZZ -ts HksHashFuzzTestrun -t FUZZ -ts HksAttestKeyFuzzTestrun -t FUZZ -ts HksGetCertificateChainFuzzTestrun -t FUZZ -ts HksBnExpModFuzzTestrun -t FUZZ -ts HksInitFuzzTestrun -t FUZZ -ts HksUpdateFuzzTestrun -t FUZZ -ts HksFinishFuzzTestrun -t FUZZ -ts HksAbortFuzzTestrun -t FUZZ -ts HksGenerateKeyFuzzTestrun -t FUZZ -ts HksGetSdkVersionFuzzTestrun -t FUZZ -ts HksImportWrappedKeyFuzzTest