# wukong稳定性工具使用指导 ## åŠŸèƒ½ä»‹ç» wukong是系统自带的一ç§å‘½ä»¤è¡Œå·¥å…·ï¼Œæ”¯æŒAbilityçš„éšæœºäº‹ä»¶æ³¨å…¥ã€æŽ§ä»¶æ³¨å…¥ã€å¼‚常æ•èŽ·ã€æŠ¥å‘Šç”Ÿæˆå’Œå¯¹Abilityæ•°æ®é历截图ç‰ç‰¹æ€§ã€‚通过模拟用户行为,对系统或应用进行稳定性压力测试。wukongåˆ†ä¸ºéšæœºæµ‹è¯•ã€ä¸“项测试和专注测试。 éšæœºæµ‹è¯•æ˜¯æŒ‡éšæœºæµ‹è¯•界é¢å†…容,支æŒçš„能力包括:shellå¯åŠ¨ã€æ‹‰èµ·æ•´æœºåº”用ã€å¤šç§æ³¨å…¥æ–¹å¼ã€è®¾ç½®éšæœºç§åã€æ‰“å°è¿è¡Œæ—¥å¿—å’Œç”ŸæˆæŠ¥å‘Šã€‚ ä¸“é¡¹æµ‹è¯•ä¸»è¦æä¾›å¯¹æŒ‡å®šåº”ç”¨æŽ§ä»¶è¿›è¡Œæµ‹è¯•ï¼Œæ”¯æŒçš„能力包括:shellå¯åЍã€é¡ºåºéåŽ†åŠæˆªå›¾ã€æµ‹è¯•ä¼‘çœ ç¡é†’ã€å½•åˆ¶å›žæ”¾ã€æ‰“å°è¿è¡Œæ—¥å¿—å’Œç”ŸæˆæŠ¥å‘Šã€‚ ä¸“æ³¨æµ‹è¯•ä¸»è¦æä¾›å¯¹æŒ‡å®šæŽ§ä»¶çš„æ³¨å…¥æµ‹è¯•ï¼Œæ”¯æŒçš„能力包括:shellå¯åŠ¨ã€æ‹‰èµ·æ•´æœºåº”用ã€å¤šç§æ³¨å…¥æ–¹å¼ã€è®¾ç½®éšæœºç§åã€è®¾ç½®ä¸“注控件类型ã€è®¾ç½®æ³¨å…¥æŽ§ä»¶æ¬¡æ•°ã€æ‰“å°è¿è¡Œæ—¥å¿—å’Œç”ŸæˆæŠ¥å‘Šã€‚ ## å®žçŽ°åŽŸç† wukong部件架构图以åŠéƒ¨ä»¶å†…忍¡å—èŒè´£å¦‚下所述。  - 命令行解æžï¼šæ”¯æŒå‘½ä»¤è¡ŒèŽ·å–傿•°å¹¶è§£æžå‘½ä»¤è¡Œå‚数。 - è¿è¡ŒçŽ¯å¢ƒç®¡ç†ï¼šæ ¹æ®å‘½ä»¤è¡Œåˆå§‹åŒ–wukong整体è¿è¡ŒçŽ¯å¢ƒã€‚ - 系统接å£ç®¡ç†ï¼šæ£€æŸ¥å¹¶èŽ·å–æŒ‡å®šçš„mgr,注册controllerå’Œdfxçš„faultlog的回调函数。 - éšæœºäº‹ä»¶ç”Ÿæˆï¼šé€šè¿‡randomå‡½æ•°ç”ŸæˆæŒ‡å®šç§åæ•°çš„éšæœºåºåˆ—,生æˆäº‹ä»¶ã€‚ - äº‹ä»¶æ³¨å…¥ï¼šæ ¹æ®æ”¯æŒçš„事件类型å‘系统注入事件,ä¾èµ–窗å£ã€å¤šæ¨¡ã€å®‰å…¨ç‰å系统。 - 异常æ•获处ç†/报告生æˆï¼šé€šè¿‡DFXå系统获å–è¿è¡Œä¸çš„异常信æ¯å¹¶è®°å½•logï¼Œç”ŸæˆæŠ¥å‘Šã€‚ ## 约æŸä¸Žé™åˆ¶ 1. wukong测试工具在API 9版本开始预置使用。 2. 在低于API 9版本,ä¸èƒ½éšç‰ˆæœ¬ç¼–è¯‘ï¼Œä½¿ç”¨æ—¶éœ€è‡ªè¡Œç¼–è¯‘åŽæŽ¨é€è‡³è¢«æ£€æµ‹è®¾å¤‡ï¼Œå…·ä½“æ¥éª¤å¦‚下。 ```bash // æž„å»ºæ–¹å¼ ./build.sh --product-name rk3568 --build-target wukong // æŽ¨é€æ–¹å¼ hdc shell mount -o rw,remount / hdc file send wukong / hdc shell chmod a+x /wukong hdc shell mv /wukong /bin/ ``` 3. PC被检测设备连接åŽï¼Œæ‰å¯æ‰§è¡Œå‘½ä»¤è¡Œï¼Œæ”¯æŒå•个和多个设备。 4. 所有命令行执行å‰éœ€è¦å…ˆè¿›å…¥shell模å¼ã€‚ ## 功能特性åŠå‘½ä»¤è¯´æ˜Ž | 命令 | 说明 | | -------------- | ---------------------------------------------- | | version | 获å–wukong版本信æ¯ã€‚ | | help | 获å–wukong帮助信æ¯ã€‚ | | appinfo | æŸ¥è¯¢æ”¯æŒæ‹‰èµ·åº”用bundleName和对应的mainAbilityå。 | | special | wukong专项测试。 | | exec | wukongéšæœºæµ‹è¯•。 | | focus | wukong专注测试。 | ### 执行命令 - 进入shellæ¨¡å¼ ```bash #若为å•设备,则直接输入如下命令进入shellæ¨¡å¼ C:\Users>hdc shell # #若为多设备,则需先获å–snå·ï¼Œå…ˆè¾“å…¥hdc list targets获å–snå·ï¼Œç„¶åŽè¿›å…¥shellæ¨¡å¼ C:\Users>hdc list targets 15xxx424axxxx345209d94xxxx8fxx900 C:\Users>hdc -t 15xxx424axxxx345209d94xxxx8fxx900 shell # ``` - 获å–应用的bundle nameå’Œability name ```bash # wukong appinfo BundleName: com.ohos.adminprovisioning AbilityName: com.ohos.adminprovisioning.MainAbility BundleName: com.ohos.callui AbilityName: com.ohos.callui.MainAbility ``` - 执行查看帮助命令 ```bash C:\Users>hdc shell # wukong --help //wukong帮助èœå• wukong: '--help' is not a valid wukong command. See 'wukong help'. usage: wukong <command> [<arguments>] These are common wukong command list: help wukong help information -v/--version wukong version exec run random test special run special test focus run focus test appinfo show all app information # wukong exec -help //wukongéšæœºæµ‹è¯•帮助èœå• usage: wukong exec [<arguments>] These are wukong exec arguments list: -h, --help random test help -a, --appswitch appswitch event percent -b, --bundle the bundle name of allowlist -p, --prohibit the bundle name of blocklist -d, --page block page list -t, --touch touch event percent -c, --count test count -i, --interval interval -s, --seed random seed -m, --mouse mouse event percent -k, --keyboard keyboard event percent -H, --hardkey hardkey event percent -S, --swap swap event percent -T, --time test time -C, --component component event percent -r, --rotate rotate event percent -e, --allow ability the ability name of allowlist -E, --block ability the ability name of blocklist -Y, --blockCompId the id list of block component -y, --blockCompType the type list of block component -I, --screenshot get screenshot(only in random input) -B, --checkBWScreen black and white screen detection -U, --Uri set Uri pages -x, --Uri-type set Uri-type # wukong special -help //wukong专项测试帮助èœå• usage: wukong special [<arguments>] These are wukong special arguments list: -h, --help special test help -t, --touch[x,y] touch event -c, --count total count of test -i, --interval interval -S, --swap[option] swap event option is -s| -e| -b -s, --start: the start point of swap -e, --end: the end point of swap -b, --bilateral: swap go and back -k, --spec_insomnia power on/off event -T, --time total time of test -C, --component component event -p, --screenshot get screenshot(only in componment input) -r, --record record user operation -R, --replay replay user operation -u, --uitest uitest dumpLayout ``` ## éšæœºæµ‹è¯• ### 命令傿•° | 命令 | 功能 | 必选 | 说明 | | --------------- | ------------------------------------ | ---- | ---------------------------------------- | | -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 | 设置å±å¹•éšæœºè§¦æ‘¸æµ‹è¯•比例。 | å¦ | 默认10%。 | | -S,--swap | 设置å±å¹•éšæœºç§»åŠ¨æµ‹è¯•æ¯”ä¾‹ã€‚ | å¦ | 默认3%。 | | -m,--mouse | 设置å±å¹•éšæœºé¼ æ ‡æµ‹è¯•æ¯”ä¾‹ã€‚ | å¦ | 默认1%。 | | -k,--keyboard | 设置å±å¹•éšæœºé”®ç›˜æ“作测试比例。 | å¦ | 默认2%。 | | -H,--hardkey | è®¾ç½®éšæœºç‰©ç†æŒ‰é”®æµ‹è¯•比例。 | å¦ | 默认2%。 | | -r,--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 | 设置å¯ç”¨é»‘ç™½å±æ£€æµ‹ | å¦ | - | | -U, -uri | 设置应用拉起页é¢uri | å¦ | - | | -x, -uriType | 设置应用拉起页é¢uriType | å¦ | - | ### 使用示例 - 设置100次事件注入 ```bash # wukong exec -s 10 -i 1000 -a 0.28 -t 0.72 -c 100 ``` 命令ä¸å„傿•°å«ä¹‰ï¼š | 命令 | 傿•°å€¼ |说明 | | -------------- | -------------- | -------------- | | wukong exec | - | 主命令。 | | -s | 10 | 傿•°è®¾ç½®éšæœºç§å,10为ç§å值。 | | -i | 1000 | 傿•°è®¾ç½®åº”用拉起间隔为1000ms。 | | -a | 0.28 | 傿•°è®¾ç½®åº”ç”¨éšæœºæ‹‰èµ·æµ‹è¯•比例28%。 | | -t | 0.72 | 傿•°è®¾ç½®å±å¹•éšæœºtouch测试比例为72%。 | | -c | 100 | 傿•°è®¾ç½®æ‰§è¡Œæ¬¡æ•°ä¸º100次。 | - 指定页é¢åŽ‹æµ‹ ```bash > 显示å¯åЍ > hdc_std shell # wukong exec -b bundlename -a abilityname -U uri > éšå¼å¯åЍ > hdc_std shell # wukong exec -b bundlename -U uri -x uriType ``` - 设置å…è®¸æµ‹è¯•å’Œç¦æ¢æµ‹è¯•çš„ability ```bash # wukong exec -b com.ohos.settings -e com.ohos.settings.MainAbility -E com.ohos.settings.AppInfoAbility ``` > **说明** > > è‹¥é…ç½®-eã€-E则须é…ç½®-bæ¥æŒ‡å®šåº”用。 ## 专项测试 ### 命令傿•° | 命令 | 功能 | 必选 | 说明 | | :------------------ | ---------------------- | ---- | :------------------ | | -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 | 控件测试截图。 | å¦ | - | ### 测试命令 ```bash # wukong special -C [bundlename] -p ``` ## 专注测试 ### 命令傿•° | 命令 | 功能 | 必选 | 说明 | | --------------- | ------------------------------------ | ---- | ---------------------------------------- | | -n,--numberfocus | 设置æ¯ä¸ªæŽ§ä»¶æ³¨å…¥çš„æ¬¡æ•°ã€‚ | å¦ | å•使¬¡æ•°ã€‚ | | -f, --focustypes | 设置需è¦ä¸“注的控件类型。 | å¦ | 以英文逗å·éš”开。 | | -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 | 设置å±å¹•éšæœºè§¦æ‘¸æµ‹è¯•比例。 | å¦ | 默认10%。 | | -S,--swap | 设置å±å¹•éšæœºç§»åŠ¨æµ‹è¯•æ¯”ä¾‹ã€‚ | å¦ | 默认3%。 | | -m,--mouse | 设置å±å¹•éšæœºé¼ æ ‡æµ‹è¯•æ¯”ä¾‹ã€‚ | å¦ | 默认1%。 | | -k,--keyboard | 设置å±å¹•éšæœºé”®ç›˜æ“作测试比例。 | å¦ | 默认2%。 | | -H,--hardkey | è®¾ç½®éšæœºç‰©ç†æŒ‰é”®æµ‹è¯•比例。 | å¦ | 默认2%。 | | -r,--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 | 设置å¯ç”¨é»‘ç™½å±æ£€æµ‹ | å¦ | - | ### 使用示例 ```bash # wukong focus -s 10 -i 1000 -a 0.28 -t 0.72 -c 100 ``` 命令ä¸å„傿•°å«ä¹‰ï¼š | 命令 | 傿•°å€¼ |说明 | | -------------- | -------------- | -------------- | | wukong focus | - | 主命令。 | | -s | 10 | 傿•°è®¾ç½®éšæœºç§å,10为ç§å值。 | | -i | 1000 | 傿•°è®¾ç½®åº”用拉起间隔为1000ms。 | | -a | 0.28 | 傿•°è®¾ç½®åº”ç”¨éšæœºæ‹‰èµ·æµ‹è¯•比例28%。 | | -t | 0.72 | 傿•°è®¾ç½®å±å¹•éšæœºtouch测试比例为72%。 | | -c | 100 | 傿•°è®¾ç½®æ‰§è¡Œæ¬¡æ•°ä¸º100次。 | ## 查看测试结果 ### 测试结果输出路径 执行完测试指令åŽï¼Œä¼šè‡ªåŠ¨ç”Ÿæˆæµ‹è¯•ç»“æžœï¼Œæµ‹è¯•ç»“æžœè¾“å‡ºæ ¹è·¯å¾„å¦‚ä¸‹ï¼š - 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命令将日志获å–到本地,查看æ“作历程。 ```bash // wukong.log文件对应路径如下 /data/local/tmp/wukong/report/xxxxxxxx_xxxxxx/wukong.log // 查看wukong测试报告文件目录æ“作如下 # cd /data/local/tmp/wukong/report/20170805_170053 # ls data.js exception wukong.log wukong_report.csv // å¼€å¯shell窗å£ï¼Œç”¨hdc file recv获å–wukong日志 C:\Users\xxx>hdc file recv /data/local/tmp/wukong/report/20170805_170053/wukong.log C:\Users\xxx\Desktop\log [I][2024-01-03 20:08:02] HdcFile::TransferSummary success FileTransfer finish, Size:76492, File count = 1, time:16ms rate:4780.75kB/s ```