鸿蒙开发进阶(HarmonyOS)wukong稳定性工具使用指南

打印 上一主题 下一主题

主题 1034|帖子 1034|积分 3106

 鸿蒙NEXT开发实战往期必看文章:
一分钟相识”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常具体的” 鸿蒙HarmonyOS Next应用开发学习门路!(从零基础入门到精通)
HarmonyOS NEXT应用开发案例实践总结合(持续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)

功能介绍

wukong是系统自带的一种下令行工具,支持Ability的随机变乱注入、控件注入、异常捕捉、报告生成和对Ability数据遍历截图等特性。通过模拟用户行为,对系统或应用进行稳定性压力测试。
wukong分为随机测试和专项测试。随机测试是指随机测试界面内容,支持的本领包括:shell启动、拉起整机应用、多种注入方式、设置随机种子、打印运行日记和生成报告。专项测试主要提供对指定应用控件进行测试,支持的本领包括:shell启动、顺序遍历及截图、测试休眠睡醒、录制回放、打印运行日记和生成报告。
实现原理

wukong部件架构图以及部件内子模块职责如下所述。



  • 下令行解析:支持下令行获取参数并解析下令行参数。
  • 运行环境管理:根据下令行初始化wukong团体运行环境。
  • 系统接口管理:检查并获取指定的mgr,注册controller和dfx的faultlog的回调函数。
  • 随机变乱生成:通过random函数生成指定种子数的随机序列,生成变乱。
  • 变乱注入:根据支持的变乱类型向系统注入变乱,依靠窗口、多模、安全等子系统。
  • 异常捕捉处理/报告生成:通过DFX子系统获取运行中的异常信息并记载log,生成报告。
约束与限制


  • wukong测试工具在API 9版本开始预置使用。
  • 在低于API 9版本,不能随版本编译,使用时需自行编译后推送至被检测设备,具体步骤如下。
    1. // 构建方式
    2. ./build.sh --product-name rk3568 --build-target wukong
    3. // 推送方式
    4. hdc shell mount -o rw,remount /
    5. hdc file send wukong /
    6. hdc shell chmod a+x /wukong
    7. hdc shell mv /wukong /bin/
    8. <strong>bash</strong>
    复制代码
  • PC被检测设备连接后,才可执行下令行,支持单个和多个设备。
功能特性及下令说明

下令说明备注version获取wukong版本信息。-v, --version。help获取wukong帮助信息。appinfo查询支持拉起应用bundleName和对应的mainAbility名。specialwukong专项测试。execwukong随机测试。focuswukong专注测试。 随机测试

wukong随机测试下令参数

下令功能必选备注-h,–help获取当前测试的帮助信息。否-c,–count设置执行次数,与设置执行时间-T冲突。二者取其一。否单元次数,默认10次。-i,–interval设置执行隔断。否单元ms,默认1500ms。-s,–seed设置随机种子。否配置雷同随机种子,会生成雷同随机变乱序列。-b,–bundle[bundlename,……,bundlename]设置本次测试的答应应用名单,与-p冲突。否默认测试当前设备全部应用(应用名称用英文逗号隔开)。-p,–prohibit[bundlename,……,bundlename]设置本次测试的禁止应用名单,与-b冲突。否默认不禁止任何应用(应用名称用英文逗号隔开)。-d,–page[page,……,page]设置本次测试的禁止页面名单。否系统默认禁止pages/system页面(页面名称用逗号隔开)。-a,–appswitch设置应用随机拉起测试比例。否默认10%。-t,–touch设置屏幕随机touch测试比例。否默认10%。-S,–swap设置屏幕随机swap测试比例。否默认3%。-m,–mouse设置屏幕随机mouse测试比例。否默认1%。-k,–keyboard设置屏幕随机keyboard测试比例。否默认2%。-H,–hardkey设置随机hardkey测试比例。否默认2%。-r,–rotate设置随机rotate测试比例。否默认2%。-C, --component设置随机控件测试比例。否默认70%。-I, --screenshot控件测试截图。否--T,–time设置测试总时间,与设置执行次数-c冲突。二者取其一。否单元分钟,默认10分钟。-e, --allow ability设置压测ability白名单否--E, --block ability设置压测ability白名单否--Y, --blockCompId设置不进行注入的CompId否--y, --blockCompType设置不进行注入的CompType否--B, --checkBWScreen设置启用黑白屏检测否- 专项测试

wukong专项测试下令参数

下令功能必选备注-h, --help获取当前专项测试的帮助信息。否-k, --spec_insomnia休眠叫醒专项测试。否--c, --count设置执行次数。否单元次数,默认10次。-i, --interval设置执行隔断。否单元ms,默认1500ms。-S, --swap滑动测试。否--s, --start[x,y]设置滑动测试起点坐标。否坐标均为正值。-e, --end[x,y]设置滑动测试终点坐标。否坐标均为正值。-b, --bilateral设置往返滑动。否默认不往返滑动。-t, --touch[x,y]点击测试。否--T, --time设置测试总时间。否单元分钟,默认10分钟。-C, --component控件顺序遍历测试。否需要设置测试应用名称。-r, --record录制。否需要指定录制文件。-R, --replay回放。否需要指定回放文件。-p, --screenshot控件测试截图。否- 专注测试

wukong专注测试下令参数

下令功能必选备注-n,–numberfocus设置每个控件注入的次数。否单元次数。-f, --focustypes设置需要专注的控件类型。否以英文逗号隔开。其余参数继承自随机测试下令参数。 下令利用用示例

   以下操纵需要先进入shell模式
  1. #若为单设备,则直接输入如下命令进入shell模式
  2. C:\Users>hdc shell
  3. #
  4. #若为多设备,则需先获取sn号,先输入hdc list targets获取sn号,然后进入shell模式
  5. C:\Users>hdc list targets
  6. 15xxx424axxxx345209d94xxxx8fxx900
  7. C:\Users>hdc -t 15xxx424axxxx345209d94xxxx8fxx900 shell
  8. #
  9. <strong>bash</strong>
复制代码
1.获取应用的bundle name和ability name

  1. # wukong appinfo
  2. BundleName:  com.ohos.adminprovisioning
  3. AbilityName:  com.ohos.adminprovisioning.MainAbility
  4. BundleName:  com.ohos.callui
  5. AbilityName:  com.ohos.callui.MainAbility
  6. <strong>bash</strong>
复制代码
2.执行随机测试下令

  1. # wukong exec -s 10 -i 1000 -a 0.28 -t 0.72 -c 100
  2. <strong>bash</strong>
复制代码
下令中各参数含义:
下令参数值说明wukong exec-主下令。-s10参数设置随机种子,10为种子值。-i1000参数设置应用拉起隔断为1000ms。-a0.28参数设置应用随机拉起测试比例28%。-t0.72参数设置屏幕随机touch测试比例为72%。-c100参数设置执行次数为100次。 3.执行专项测试下令

  1. # wukong special -C [bundlename] -p
  2. <strong>bash</strong>
复制代码
下令中各参数含义:
下令参数值说明wukong special-主下令。-C [bundlename][bundlename]控件顺序遍历测试参数设置,bundlename为测试应用名称。-pp表示截图。 4.执行检察帮助下令

  1. C:\Users>hdc shell
  2. # wukong --help        //wukong帮助菜单
  3. wukong: '--help' is not a valid wukong command. See 'wukong help'.
  4. usage: wukong <command> [<arguments>]
  5. These are common wukong command list:
  6.    help                       wukong help information
  7.    -v/--version               wukong version
  8.    exec                       run random test
  9.    special                    run special test
  10.    focus                      run focus test
  11.    appinfo                    show all app information
  12. # wukong exec -help   //wukong随机测试帮助菜单
  13. usage: wukong exec [<arguments>]
  14. These are wukong exec arguments list:
  15.    -h, --help                 random test help
  16.    -a, --appswitch            appswitch event percent
  17.    -b, --bundle               the bundle name of allowlist
  18.    -p, --prohibit             the bundle name of blocklist
  19.    -d, --page                 block page list
  20.    -t, --touch                touch event percent
  21.    -c, --count                test count
  22.    -i, --interval             interval
  23.    -s, --seed                 random seed
  24.    -m, --mouse                mouse event percent
  25.    -k, --keyboard             keyboard event percent
  26.    -H, --hardkey              hardkey event percent
  27.    -S, --swap                 swap event percent
  28.    -T, --time                 test time
  29.    -C, --component            component event percent
  30.    -r, --rotate               rotate event percent
  31.    -e, --allow ability        the ability name of allowlist
  32.    -E, --block ability        the ability name of blocklist
  33.    -I, --screenshot           get screenshot(only in random input)
  34. # wukong special -help    //wukong专项测试帮助菜单
  35. usage: wukong special [<arguments>]
  36. These are wukong special arguments list:
  37.    -h, --help                 special test help
  38.    -t, --touch[x,y]           touch event
  39.    -c, --count                total count of test
  40.    -i, --interval             interval
  41.    -S, --swap[option]         swap event
  42.                               option is -s| -e| -b
  43.                               -s, --start: the start point of swap
  44.                               -e, --end: the end point of swap
  45.                               -b, --bilateral: swap go and back
  46.    -k, --spec_insomnia        power on/off event
  47.    -T, --time                 total time of test
  48.    -C, --component            component event
  49.    -p, --screenshot           get screenshot(only in componment input)
  50.    -r, --record               record user operation
  51.    -R, --replay               replay user operation
  52.    -u, --uitest               uitest dumpLayout
  53. <strong>bash</strong>
复制代码
检察测试效果

测试效果输出路径

执行完测试指令后,会自动生成测试效果,测试效果输出根路径如下:


  • 2022/9/22之前的IDE版本,效果存放路径为:/data/local/wukong/report/xxxxxxxx_xxxxxx/
  • 2022/9/22之后的IDE版本,效果存放路径为:/data/local/tmp/wukong/report/xxxxxxxx_xxxxxx/
测试报告文件目录

类型形貌exception/存放本次测试产生的异常文件。screenshot/存放测试遍历的截图。wukong_report.csv测试报告统计汇总。wukong.log测试操纵进程。 检察操纵日记

wukong支持通过hdc下令将日记获取到当地,检察操纵进程。
  1. // wukong.log文件对应路径如下
  2. /data/local/tmp/wukong/report/xxxxxxxx_xxxxxx/wukong.log
  3. // 查看wukong测试报告文件目录操作如下
  4. # cd /data/local/tmp/wukong/report/20170805_170053
  5. # ls
  6. data.js  exception  wukong.log  wukong_report.csv
  7. // 开启shell窗口,用hdc file recv获取wukong日志
  8. C:\Users\xxx>hdc file recv /data/local/tmp/wukong/report/20170805_170053/wukong.log C:\Users\xxx\Desktop\log
  9. [I][2024-01-03 20:08:02] HdcFile::TransferSummary success
  10. FileTransfer finish, Size:76492, File count = 1, time:16ms rate:4780.75kB/s
复制代码
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王國慶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表