netcopilot工具
============

netcopilot是一款帮助开发者进行网络模拟的工具，通过hdc命令行直接调用网络领航员接口，执行网络领航员请求，目前已支持预置场景场景调用和自定义场景调用。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/3f/v3/BxSo3BrXTxO9K_rx5u-S7A/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073503Z&HW-CC-Expire=86400&HW-CC-Sign=DFA4055767840E890ADC80883D25A8D345BC76AC41782276844B578F96ABEB20)

netcopilot工具从API version 20开始支持。

在使用本工具前，开发者需要先获取hdc工具。

#### 使用方法

#### \[h2\]命令行说明

hdc shell netcopilot <命令行参数> <子参数>

命令行参数和子参数可参考下述参数列表，用户也可先输入hdc shell命令，再执行网络领航员请求。

#### \[h2\]参数列表

| 命令行参数 | 子参数 | 功能 | 说明 |
| :-- | :-- | :-- | :-- |
| \-h | NA | 输出帮助信息 | NA |
| \-e | 0关闭，1开启 | 开启/关闭领航员 | 关闭时其他接口不可用。 |
| \-p | NA | 打印网络场景列表 | 
默认会打印预置场景列表：

进出电梯

离家断开WLAN

到家连接WLAN

人员拥挤的饭堂

弱信号的地库

乘坐地铁

乘坐高铁（多SIM切换）

高速公路自驾

 |
| \-s | 场景id | 启动场景模拟 | 

允许在不同场景间直接切换；

场景模拟需要满足对应网卡要求，进出电梯、离家断开WLAN、到家连接WLAN场景需要同时连接WLAN和蜂窝网络；其他场景需要连接WLAN或蜂窝网络。

 |
| \-c | 场景id | 取消场景模拟 | NA |
| \-P | 场景id | 打印自定义场景详情 | 仅支持自定义场景。 |
| \-a | 自定义场景详情 | 新增自定义场景 | 

通过json字符串增加自定义场景，格式示例：

{

"scenarioName": "自定义场景",

"uplinkBandwidth": 1000000,

"downlinkBandwidth": 5000000,

"uplinkLatency": 200,

"downlinkLatency": 200,

"uplinkDropRate": 0.05,

"downlinkDropRate": 0.01

}

 |
| \-d | 自定义场景id | 删除自定义场景 | 自定义场景id由网络领航员后端生成，通过-p查询列表获取id后，可以通过-d删除。 |

#### 使用示例

#### \[h2\]使用帮助

\> hdc shell netcopilot -h
netcopilot usage:
  -h : show help message
  -e <enable>: 0 for disable, 1 for enable
  -p : print all scenario info
  -s <scenario id>: simulate specified network scenario
  -c : cancel simulating scenario
  -P <scenario id>: print specified scenario details
  -a <custom scenario details>: add custom network scenario
  -d <scenario id>: delete custom network scenario

#### \[h2\]开启/关闭领航员

\> hdc shell netcopilot -e 0
Disable netcopilot success

> hdc shell netcopilot -e 1
Enable netcopilot success

#### \[h2\]查看网络场景列表

\> hdc shell netcopilot -p
  +------------+------------------------------+
  | ScenarioID | ScenarioName                 |
  +------------+------------------------------+
  1            | 进出电梯
  2            | 离家断开WLAN
  3            | 到家连上WLAN
  4            | 人员拥挤的饭堂
  5            | 信号弱的地库
  6            | 乘坐地铁
  7            | 乘坐高铁（多SIM切换）
  8            | 高速公路自驾
  +------------+------------------------------+

#### \[h2\]启动场景模拟

\> hdc shell netcopilot -s 4
Success to simulate scenario 4

#### \[h2\]停止场景模拟

\> hdc shell netcopilot -c 4
Clear active net scenario success

#### \[h2\]新增自定义场景

\> hdc shell netcopilot -a "{\\"scenarioName\\":\\"自定义场景1\\",\\"uplinkBandwidth\\":100000,\\"downlinkBandwidth\\":500000,\\"uplinkLatency\\":200,\\"downlinkLatency\\":200,\\"uplinkDropRate\\":0.05,\\"downlinkDropRate\\":0.01}"

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/d4/v3/YoMN020ZSfqT4wD_hAjbEQ/caution_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073503Z&HW-CC-Expire=86400&HW-CC-Sign=E9AFD3B33E51CFD21E22F2F30192B77A8F826980E2CFB4EA879F200A3C34F667)

自定义场景子参数需要转成json字符串。

#### \[h2\]查看自定义场景详情

\> hdc shell netcopilot -P 1000
Scenario Name: 自定义场景1
Uplink Bandwidth: 100000Kbps
Downlink Bandwidth: 500000Kbps
Uplink Latency: 200ms
Downlink Latency: 200ms
Uplink Drop Rate: 0.05%
Downlink Drop Rate: 0.01%

#### \[h2\]删除自定义场景

\> hdc shell netcopilot -d 1000
Delete custom scenario success