diff --git a/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn b/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn
index a0acdb0aedb3aae2d1384a657b3cac8132bf319b..047f8c6ddb9a3df6ce9f6903d7efb086315ac69d 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn
+++ b/multimedia/audio/audio_js_standard/audioVoip/BUILD.gn
@@ -25,7 +25,9 @@ ohos_js_hap_suite("audio_voip_js_hap") {
   part_name = "multimedia_audio_framework"
 }
 ohos_js_assets("audio_voip_js_assets") {
-  source_dir = "./src/main/js/default"
+  js2abc = true
+  hap_profile = "./src/main/config.json"
+  source_dir = "./src/main/js"
 }
 ohos_resources("audio_voip_resources") {
   sources = [ "./src/main/resources" ]
diff --git a/multimedia/audio/audio_js_standard/audioVoip/Test.json b/multimedia/audio/audio_js_standard/audioVoip/Test.json
index bd8427778fa8ccb340c0098ee495ac4f48a94062..821a1120de6218e99ad8a3ee104d52a1f50de2fa 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/Test.json
+++ b/multimedia/audio/audio_js_standard/audioVoip/Test.json
@@ -1,10 +1,12 @@
 {
     "description": "Configuration for audio manager Tests",
     "driver": {
-        "type": "JSUnitTest",
+        "type": "OHJSUnitTest",
         "test-timeout": "550000",
-        "package": "ohos.acts.multimedia.audio.audiovoip",
-        "shell-timeout": "60000"
+        "shell-timeout": "60000",
+        "testcase-timeout": 60000,
+        "bundle-name": "ohos.acts.multimedia.audio.audiovoip",
+        "package-name": "ohos.acts.multimedia.audio.audiovoip"
     },
     "kits": [
         {
diff --git a/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b b/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b
index 0e9c4376f4c0ea2f256882a2170cd4e81ac135d7..e90f3c6428bf0d30a826cfde42bfb931f5cf3aa2 100644
Binary files a/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b and b/multimedia/audio/audio_js_standard/audioVoip/signature/openharmony_sx.p7b differ
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json
index 83859ace83967f36fed893cb4ef518ad67da273d..57089207a486e4bb7221f0bb476ab2e25f8807b4 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/config.json
@@ -19,29 +19,42 @@
   },
   "module": {
       "abilities": [
-          {
-              "iconId": 16777218,
-              "skills": [
-                  {
-                      "entities": [
-                          "entity.system.home"
-                      ],
-                      "actions": [
-                          "action.system.home"
-                      ]
-                  }
-              ],
-              "descriptionId": 16777217,
-              "visible": true,
-              "labelId": 16777216,
-              "icon": "$media:icon",
-              "name": "ohos.acts.multimedia.audio.audiovoip.MainAbility",
-              "description": "$string:mainability_description",
-              "label": "$string:entry_MainAbility",
-              "type": "page",
-              "homeAbility": true,
-              "launchType": "standard"
-          }
+        {
+            "skills": [
+                {
+                    "entities": [
+                        "entity.system.home"
+                    ],
+                    "actions": [
+                        "action.system.home"
+                    ]
+                }
+            ],
+            "orientation": "unspecified",
+            "formsEnabled": false,
+            "name": ".MainAbility",
+            "srcLanguage": "js",
+            "srcPath": "MainAbility",
+            "icon": "$media:icon",
+            "description": "$string:MainAbility_desc",
+            "label": "$string:MainAbility_label",
+            "type": "page",
+            "visible": true,
+            "launchType": "standard"
+        },
+        {
+            "orientation": "unspecified",
+            "formsEnabled": false,
+            "name": ".TestAbility",
+            "srcLanguage": "js",
+            "srcPath": "TestAbility",
+            "icon": "$media:icon",
+            "description": "$string:TestAbility_desc",
+            "label": "$string:TestAbility_label",
+            "type": "page",
+            "visible": true,
+            "launchType": "standard"
+        }
       ],
       "deviceType": [
       "tablet",
@@ -51,7 +64,7 @@
           "tv",
           "wearable"
       ],
-      "mainAbility": "ohos.acts.multimedia.audio.audiovoip.MainAbility",
+      "mainAbility": ".MainAbility",
       "distro": {
           "moduleType": "entry",
           "installationFree": false,
@@ -59,7 +72,8 @@
           "moduleName": "entry"
       },
       "package": "ohos.acts.multimedia.audio.audiovoip",
-      "name": ".MyApplication",
+      "name": ".entry",
+      "srcPath":"",
       "js": [
           {
               "pages": [
@@ -70,6 +84,16 @@
                   "designWidth": 720,
                   "autoDesignWidth": true
               }
+          },
+          {
+            "pages": [
+              "pages/index/index"
+            ],
+            "name": ".TestAbility",
+            "window": {
+              "designWidth": 720,
+              "autoDesignWidth": false
+            }
           }
       ],
       "reqPermissions": [
@@ -85,6 +109,10 @@
           "name": "ohos.permission.MANAGE_AUDIO_CONFIG",
           "reason": "use ohos.permission.MANAGE_AUDIO_CONFIG"
         }
-      ]
+      ],
+      "testRunner": {
+          "name": "OpenHarmonyTestRunner",
+          "srcPath": "TestRunner"
+      }
   }
 }
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/app.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..c688632f489560e3b226f2bb08cd2b0df73ade75
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/app.js
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+import { Hypium } from '@ohos/hypium'
+import testsuite from '../test/List.test'
+
+export default {
+    onCreate() {
+        console.info('TestApplication onCreate');
+        var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
+        var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
+        console.info('start run testcase!!!')
+        Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
+    },
+    onDestroy() {
+        console.info('TestApplication onDestroy');
+    }
+};
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/en-US.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/en-US.json
similarity index 100%
rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/en-US.json
rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/en-US.json
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/zh-CN.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/zh-CN.json
similarity index 100%
rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/i18n/zh-CN.json
rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/i18n/zh-CN.json
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.css b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.css
similarity index 100%
rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.css
rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.css
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.hml b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.hml
similarity index 100%
rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.hml
rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.hml
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..33c5ba530f722bda3d02ab9766fa5bf847a55b74
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/MainAbility/pages/index/index.js
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+export default {
+    data: {
+        title: ""
+    },
+    onInit() {
+        this.title = this.$t('strings.world');
+    },
+    onShow() {
+        console.info('onShow finish');
+    },
+    onHide() {
+        console.info('onHide finish');
+    },
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/app.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/app.js
similarity index 100%
rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/app.js
rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/app.js
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.css b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..5bd7567028568bd522193b2519d545ca6dcf397d
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    width: 100%;
+    height: 100%;
+}
+
+.title {
+    font-size: 40px;
+    color: #000000;
+    opacity: 0.9;
+}
+
+@media screen and (device-type: tablet) and (orientation: landscape) {
+    .title {
+        font-size: 100px;
+    }
+}
+
+@media screen and (device-type: wearable) {
+    .title {
+        font-size: 28px;
+        color: #FFFFFF;
+    }
+}
+
+@media screen and (device-type: tv) {
+    .container {
+        background-image: url("/common/images/Wallpaper.png");
+        background-size: cover;
+        background-repeat: no-repeat;
+        background-position: center;
+    }
+
+    .title {
+        font-size: 100px;
+        color: #FFFFFF;
+    }
+}
+
+@media screen and (device-type: phone) and (orientation: landscape) {
+    .title {
+        font-size: 60px;
+    }
+}
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.hml b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.hml
@@ -0,0 +1,5 @@
+<div class="container">
+    <text class="title">
+        {{ $t('strings.hello') }} {{ title }}
+    </text>
+</div>
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.js
similarity index 61%
rename from multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.js
rename to multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.js
index a0719cee588ac4b0f56efbf784b19647bc6645de..60e2ec1142024ada39fcd78d26fa03cfdbb60b9c 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/default/pages/index/index.js
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestAbility/pages/index/index.js
@@ -21,21 +21,5 @@ export default {
     },
     onInit() {
         this.title = this.$t('strings.world');
-    },
-    onShow() {
-        console.info('onShow finish')
-        const core = Core.getInstance()
-        const expectExtend = new ExpectExtend({
-            'id': 'extend'
-        })
-        core.addService('expect', expectExtend)
-        core.init()
-        const configService = core.getDefaultService('config')
-        this.timeout = 60000
-        configService.setConfig(this)
-        require('../../../test/List.test')
-        core.execute()
-    },
-    onReady() {
-    },
+    }
 }
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestRunner/OpenHarmonyTestRunner.js
new file mode 100644
index 0000000000000000000000000000000000000000..527be90a1240e77ba994eb71d2868331533bb464
--- /dev/null
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/TestRunner/OpenHarmonyTestRunner.js
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+
+function translateParamsToString(parameters) {
+    const keySet = new Set([
+        '-s class', '-s notClass', '-s suite', '-s itName',
+        '-s level', '-s testType', '-s size', '-s timeout',
+        '-s package', '-s dryRun'
+    ])
+    let targetParams = '';
+    for (const key in parameters) {
+        if (keySet.has(key)) {
+            targetParams += ' ' + key + ' ' + parameters[key]
+        }
+    }
+    return targetParams.trim()
+}
+
+ export default {
+    onPrepare() {
+        console.info('OpenHarmonyTestRunner OnPrepare')
+    },
+    onRun() {
+        console.log('OpenHarmonyTestRunner onRun run')
+        var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
+        var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
+
+        var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.MainAbility'
+
+        var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName
+        cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters)
+        var debug = abilityDelegatorArguments.parameters["-D"]
+        console.info('debug value : '+debug)
+        if (debug == 'true')
+        {
+            cmd += ' -D'
+        }
+        console.info('cmd : '+cmd)
+        abilityDelegator.executeShellCommand(cmd, (err, data) => {
+            console.info('executeShellCommand : err : ' + JSON.stringify(err));
+            console.info('executeShellCommand : data : ' + data.stdResult);
+            console.info('executeShellCommand : data : ' + data.exitCode);
+        })
+    }
+};
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js
index 0dbebbe402eccd469a488c0b4e3630464c9fa4a1..d3ee06f9b1f8236243ef69d751d8bde323a4b72a 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/AudioVOIP.test.js
@@ -18,8 +18,10 @@ import fileio from '@ohos.fileio';
 import featureAbility from '@ohos.ability.featureAbility'
 import resourceManager from '@ohos.resourceManager';
 import * as audioTestBase from '../../../../../AudioTestBase'
-import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index';
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium';
+import { UiDriver, BY} from '@ohos.uitest'
 
+export default function audioVoip() {
 describe('audioVoip', function () {
     let mediaDir;
     let fdRead;
@@ -30,13 +32,34 @@ describe('audioVoip', function () {
     let TagRec = "AudioFrameworkRecLog";
     const AUDIOMANAGER = audio.getAudioManager();
     console.info(`${TagRender}: Create AudioManger Object JS Framework`);
-
+    async function getPermission() {
+        let permissions = ['ohos.permission.MICROPHONE',
+        'ohos.permission.GRANT_SENSITIVE_PERMISSIONS',
+        'ohos.permission.MANAGE_AUDIO_CONFIG'];
+        featureAbility.getContext().requestPermissionsFromUser(permissions, 0, (data) => {
+            console.info("request success" + JSON.stringify(data));
+        })
+    }
+    async function driveFn() {
+        console.info(`come in driveFn`)
+        let driver = await UiDriver.create()
+        console.info(`driver is ${JSON.stringify(driver)}`)
+        await sleep(2000)
+        console.info(`UiDriver start`)
+        let button = await driver.findComponent(BY.text('允许'))
+        while(button){
+            console.info(`button is ${JSON.stringify(button)}`)
+            await button.click()
+            await sleep(5000)
+            button = await driver.findComponent(BY.text('允许'))
+        }
+        
+    }
     beforeAll(async function () {
         console.info(`AudioFrameworkTest: beforeAll: Prerequisites at the test suite level`);
-        let permissionName1 = 'ohos.permission.MICROPHONE';
-        let permissionNameList = [permissionName1];
-        let appName = 'ohos.acts.multimedia.audio.audiovoip';
-        await audioTestBase.applyPermission(appName, permissionNameList);
+        await getPermission();
+        sleep(2000)
+        await driveFn();
         await sleep(100);
         console.info(`AudioFrameworkTest: beforeAll: END`);
     })
@@ -504,4 +527,4 @@ describe('audioVoip', function () {
     })
 
 
-})
\ No newline at end of file
+});}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js
index 4caa2d1a844e004b7fa6d4cc4c9c0090f14b1c8e..0ff319c06cfbb957b100ff108b98948bfc05a7b1 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/js/test/List.test.js
@@ -12,6 +12,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-require('./AudioVOIP.test.js')
+import audioVoip from './AudioVOIP.test.js'
+export default function testsuite() {
+    audioVoip()
+}
 
diff --git a/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json b/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json
index 0bae6bd40f7360d5d818998221b199d3ec0f69c0..f2719f369f8495e241889a951d6e5da310dbb975 100644
--- a/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json
+++ b/multimedia/audio/audio_js_standard/audioVoip/src/main/resources/base/element/string.json
@@ -7,6 +7,22 @@
     {
       "name": "mainability_description",
       "value": "JS_Empty Ability"
+    },
+    {
+        "name": "MainAbility_desc",
+        "value": "description"
+    },
+    {
+        "name": "MainAbility_label",
+        "value": "label"
+    },
+    {
+        "name": "TestAbility_desc",
+        "value": "description"
+    },
+    {
+        "name": "TestAbility_label",
+        "value": "label"
     }
   ]
 }
\ No newline at end of file