news 2026/5/12 11:57:56

学习笔记【Day 13】Open Harmony PC应用在SD WAN的软总线场景移植测试中碰到的拦路虎

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习笔记【Day 13】Open Harmony PC应用在SD WAN的软总线场景移植测试中碰到的拦路虎

Open Harmony PC应用在SD WAN的软总线场景移植测试中碰到的拦路虎

一、测试碰到的关键问题及解决方法

  1. 权限配置与网络通信初始化

确保应用具备网络访问权限。我们严格遵循OpenHarmony的安全规范,在应用的配置文件module.json5中声明了必要的权限,包括互联网访问和网络信息获取,缺少声明将直接导致API调用失败。

  1. 绕过软总线限制,采用标准HTTP协议上报

测试中发现,面向轻量设备的softbus_lite主要设计用于局域网,只能被动创建会话服务,无法主动发起广域网连接或发现服务。这限制了设备主动向云端SD-WAN控制器上报数据的能力。因此,我们放弃了依赖分布式软总线进行直接通信的方案,转而采用更通用的HTTP/HTTPS协议。

在代码中,我们使用OpenHarmony提供的网络API来构造和发送HTTP请求,将采集到的终端网络状态数据(如延迟、丢包率、应用标签)上报至模拟的SD-WAN控制器接口。

二、使用DevEco Testing工具测试的关键过程

主要围绕环境准备、脚本本地调试两个核心环节展开。

  1. 环境准备与设备连接是调试的基础。

PC上配置Python环境,并依次安装Hypium框架及hypium-perf等性能测试依赖包,为确保工具能识别设备,一个关键的验证步骤是在命令行中执行 hdc list targets 指令,确认设备已正常连接。

  1. 脚本的编写与本地调试是核心。

从DevEco Testing客户端下载工程模板,该模板包含了预置的目录结构和用例示例。打开此工程,直接运行main.py或修改其中的命令参数,对编写的场景用例脚本进行本地调试验证。

以下是脱敏的部分代码。

场景用例脚本关键代码示例

// testcases/OH_SmartRouterInitTest.py

import os from hypium.perf.base.perf_base_case

import PerfBaseCase

//导入自定义的原子用例(Model)from models.RouterInitModel

import RouterInitModel from models.RouteTableCheckModel

import RouteTableCheckModel

class OH_SmartRouterInitTest(PerfBaseCase):

//必须继承PerfBaseCase类[6](@ref)

/*场景描述:测试设备上智能路由协议模块的初始化流程性能。

场景步骤:

1. 模拟系统启动,触发路由协议栈初始化。

2. 等待初始化完成,验证核心路由表是否就绪。

3. 执行一次简单的路由查询,验证功能可用性。

*/

Def __init__(self, controllers):

self.TAG = self.__class__.__name__

// 定义要执行的测试步骤序列[6](@ref)

self.tests = [

“test_router_init_and_check”

]

// 用例ID需与文件名保持一致[6](@ref)

self.case_id = os.path.splitext(os.path.basename(__file__))

//指定被测试的应用包名(假设为路由守护进程)

case_pkg = ‘com.example.routerdaemon’

//调用父类初始化方法[6](@ref)

PerfBaseCase.__init__(self, controllers, case_pkg)

self.log.info(“Case id is %s” % self.case_id)

def setup(self):

//场景前置操作:确保设备网络基础服务已启动。//

self.log.info(“[Setup] 预置条件准备:检查网络接口状态...”)

// 此处可添加具体的设备预置命令或检查

// 例如通过hdc shell命令检查网络服务

self.devices[0].execute_shell_command(‘ifconfig lo up’)

def test_router_init_and_check(self):

//核心测试步骤:组装并执行原子用例。//

self.log.info(“[TestStep] 开始执行智能路由协议初始化测试场景”)

// 步骤1:初始化路由协议栈,此原子用例模拟调用路由初始化函数,如参考EPA安全网桥中的 ` RouterModuleInit()`[5](@ref)

step_init = RouterInitModel(self.driver, self.case_id)

step_init.execute()

// 步骤2:检查路由表状态,此原子用例验证路由表项是否正确生成

step_check = RouteTableCheckModel(self.driver, self.case_id, target_route=“192.168.1.0/24”)

step_check.execute()

//步骤3:(可选) 执行路由查找性能测试 steps.append(RouteLookupPerformanceModel(self.driver, self.case_id))

def teardown(self):

//场景收尾操作:清理测试状态,获取结果。

//获取用例测试结果[6](@ref)

result = self.get_case_result()

self.log.info(“[Teardown] 测试收尾,结果: {}”.format(result))

//执行父类的teardown方法进行通用清理[6](@ref)

PerfBaseCase.teardown(self)

三、测试技术经验总结

首先,用DevEco testing工具测试的过程有一定的逻辑顺序,需要按照顺序一步一步执行,跳过某一步可能会导致执行失败。其次,用DevEco testing工具前要先配置好PC上的python环境,安装模拟器和API库函数,这些库函数是适配某些用例场景必须依赖条件。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 10:50:05

百度网盘智能提取码解决方案:技术驱动的自动化访问新体验

百度网盘智能提取码解决方案:技术驱动的自动化访问新体验 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 在数字化资源获取的日常场景中,百度网盘提取码的查找过程往往成为用户体验的瓶颈环节。传统的手…

作者头像 李华
网站建设 2026/5/7 4:49:54

Windows右键菜单终极清理指南:5步打造高效桌面体验

Windows右键菜单终极清理指南:5步打造高效桌面体验 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager Windows右键菜单是日常操作中使用频率最高的功能之…

作者头像 李华
网站建设 2026/5/12 1:34:31

Spring Boot 权限控制三件套:JWT 登录校验 + 拦截器 + AOP 角色注解实战

文章目录接口校验,权限拦截通过自定义注解,基于面向切面编程来实现1. 自定义异常2. 自定义注解3. AOP面向切面类4. Controller层使用统一异常处理和信息返回1. 创建统一信息返回类2. 创建全局统一异常处理类3. 创建一个枚举类型4. 创建自定义的异常类拦截…

作者头像 李华
网站建设 2026/5/9 15:37:36

Python验证码处理实战:从12306项目看验证码识别的技术演进

一、引言:验证码,网络安全的第一道防线 在网络应用中,验证码是防止自动化攻击的重要手段。12306作为中国铁路售票系统,其验证码设计尤为复杂,从早期的数字字母组合,到后来的图片点击,再到如今的…

作者头像 李华
网站建设 2026/5/5 12:14:35

【Hadoop+Spark+python毕设】哮喘患者症状数据可视化分析系统、计算机毕业设计、包括数据爬取、数据分析、数据可视化、Hadoop、实战教学

🎓 作者:计算机毕设小月哥 | 软件开发专家 🖥️ 简介:8年计算机软件程序开发经验。精通Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等技术栈。 🛠️ 专业服务 🛠️ 需求定制化开发源码提…

作者头像 李华
网站建设 2026/5/7 3:38:55

java计算机毕业设计山西工程技术学院学生党员管理系统的设计和实现 高校学生党务工作数字化平台的设计与实现 面向二级学院的学生党员信息一站式服务平台

计算机毕业设计山西工程技术学院学生党员管理系统的设计和实现m6m3l9(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。 在高校党建业务日益精细化的今天,传统纸质与人工…

作者头像 李华