鸿蒙南向开发:测试框架xdevice核心组件

简介

xdevice是OpenHarmony中为测试框架的核心组件,提供用例执行所依赖的相关服务。

xdevice主要包括以下几个主要模块:

  • command,用户与测试平台命令行交互模块,提供用户输入命令解析,命令处理。
  • config,测试框架配置模块,提供测试平台串口连接方式和USB连接方式的不同配置选项。
  • driver,测试用例执行器,提供测试用例分发,执行,结果收集等主要测试步骤定义。
  • report,测试报告模块,提供测试结果解析和测试报告生成。
  • scheduler,测试框架调度模块,提供不同类型的测试执行器调度的调度功能。
  • environment,测试框架的环境配置模块,提供设备发现,设备管理的功能。
  • testkit,测试框架工具模块,提供json解析,网络文件挂载等操作。
  • resource,测试框架资源模块,提供设备连接配置文件和报告模板定义。

目录

xdevice
├── config                    # xdevice组件配置
│     ├── user_config.xml    # xdevice环境配置
├── resource                  # xdevice组件资源
│     ├── tools              # 版本烧录工具
├── src                       # 组件源码目录
│     ├── xdevice
├── extension                 # xdevice扩展模块
│     ├── src                # 扩展模块源码
│     └── setup.py           # xdevice扩展模块安装脚本

约束

运行环境要求:

  • python版本>=3.7.5
  • pyserial>=3.3
  • paramiko>=2.7.1
  • rsa>=4.0

使用

  • 安装xdevice

    1. 打开xdevice安装目录。

    2. 打开控制台,执行如下命令:

      python setup.py install

  • 安装extension

    1. 打开extension安装目录。

    2. 打开控制台,执行如下命令:

      python setup.py install
  • 修改user_config.xml

    user_config.xml是框架提供的用户配置文件,用户可以根据自身环境信息配置相关内容,具体介绍如下:

    1、environment环境相关配置:

    • 设备类型一

       说明: ip/port: 表示远程设备地址,默认情况为空,表示使用本地设备,ip地址为127.0.0.1,port为本机hdc启动端口号;​sn: 过滤执行测试设备,若设置为SN1,则表示只有设备SN1能够支持后续run命令执行,其他设备分配状态设置为Ignored,不参与命令执行,可通过list devices命令中Allocation字段来查看sn设置,可配置多个sn,中间以;隔开;

    • 设备类型二

       说明: type: 设备连接方式,com表示连接方式是串口 label: 表示设备种类,如wifiiot serial: 表示一个串口定义 serial/com 表示本地连接的串口,如COM20 serial/type 表示串口类型,cmd是命令串口,deploy是刷机串口,社区版本cmd和deploy使用同一个串口,com值相同 serial/baud_rate、data_bits、stop_bits、timeout: 为串口波特率等串口参数 ,一般采用默认值即可。

    2、测试用例目录设置

    dir: 指定测试用例目录。

    3、nfs挂载

     说明: server: nfs挂载配置,label取值为NfsServer。 server/ip: 挂载环境IP地址。 server/port: 挂载环境端口。 server/username: 登录用户名。 server/password: 登录用户密码。 server/dir: 对应挂载的外部路径。 server/remote: nfs服务器与xDevice执行机不在同一台机器时,remote配置为true,否则为false。

  • 选定任务类型

  • 启动框架

  • 执行指令

    框架指令可以分为三组:help、list、run。在指令序列中,以run为最常用的执行指令。

    1、help

    输入help指令可以查询框架指令帮助信息。

    help:use help to get information.  
    usage:run:  Display a list of supported run command.list: Display a list of supported device and task record.  
    Examples:help runhelp list

     说明: help run:展示run指令相关说明 help list:展示 list指令相关说明

    2、list

    list指令用来展示设备和相关的任务信息

    list:This command is used to display device list and task record.  
    usage:listlist historylist <id>  
    Introduction:list:         display device listlist history: display history record of a serial of taskslist <id>:    display history record about task what contains specific id  
    Examples:listlist historylist 6e****90

     说明: list: 展示设备信息 list history: 展示任务历史信息 list <id>: 展示特定id的任务其历史信息

    3、run

    run指令主要用于执行测试任务

    run:This command is used to execute the selected testcases.It includes a series of processes such as use case compilation, execution, and result collection.  
    usage: run [-l TESTLIST [TESTLIST ...] | -tf TESTFILE[TESTFILE ...]] [-tc TESTCASE] [-c CONFIG] [-sn DEVICE_SN][-rp REPORT_PATH [REPORT_PATH ...]][-respath RESOURCE_PATH [RESOURCE_PATH ...]][-tcpath TESTCASES_PATH [TESTCASES_PATH ...]][-ta TESTARGS [TESTARGS ...]] [-pt][-env TEST_ENVIRONMENT [TEST_ENVIRONMENT ...]][-e EXECTYPE] [-t [TESTTYPE [TESTTYPE ...]]][-td TESTDRIVER] [-tl TESTLEVEL] [-bv BUILD_VARIANT][-cov COVERAGE] [--retry RETRY] [--session SESSION][--dryrun] [--reboot-per-module] [--check-device][--repeat REPEAT]action task  
    Specify tests to run.positional arguments:action                Specify actiontask                  Specify task name,such as "ssts", "acts", "hits"

     说明: 一个基本的run指令结构如下:

    run [task name] -l module1;moudle2

    task name:任务类型。一般为ssts、acts、hits。非必选项 -l :指定执行测试用例,多个测试用例,中间用;隔开 module:被测试的模块。一般在testcases目录下存在对应的\.json文件 此外,其他参数可以作为约束条件,附加到这个基本指令之上使用。常用的如: -sn: 过滤执行测试设备,若设置为SN1,则表示只有设备SN1执行用例 -c: 重新指定user_config.xml。 -rp: 报告生成路径。默认为xxx/xdevice/reports目录。指定目录后,优先级:指定目录>xxx/xdevice/reports目录。 -tcpath:环境目录,默认为xxx/xdevice/testcases目录。指定目录后,优先级:指定目录>xxx/xdevice/testcases目录 -respath:测试套目录,默认为xxx/xdevice/resource目录。指定目录后,优先级:指定目录>xxx/xdevice/resource目录 --reboot-per-module: 执行前先重启设备

  • 查看执行结果

    框架执行run指令,控制台会输出对应的log打印,还会生成对应的执行结果报告。如果使用了-rp参数指定报告路径,那么报告就会生成在指定的路径下。否则报告会存放在默认目录。

    当前报告目录(默认目录/指定目录)├── result(模块执行结果存放目录)│     ├── <模块名>.xml│     ├──  ... ... │      ├── log (设备和任务运行log存放目录)│     ├── <设备1>.log│     ├── ... ...│     ├── <任务>.log├── summary_report.html(测试任务可视化报告)├── summary_report.html(测试任务数据化报告)└── ... ...

最后

小编在之前的鸿蒙系统扫盲中,有很多朋友给我留言,不同的角度的问了一些问题,我明显感觉到一点,那就是许多人参与鸿蒙开发,但是又不知道从哪里下手,因为资料太多,太杂,教授的人也多,无从选择。有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

为了确保高效学习,建议规划清晰的学习路线,涵盖以下关键阶段:

希望这一份鸿蒙学习资料能够给大家带来帮助~


 鸿蒙(HarmonyOS NEXT)最新学习路线

该路线图包含基础技能、就业必备技能、多媒体技术、六大电商APP、进阶高级技能、实战就业级设备开发,不仅补充了华为官网未涉及的解决方案

路线图适合人群:

IT开发人员:想要拓展职业边界
零基础小白:鸿蒙爱好者,希望从0到1学习,增加一项技能。
技术提升/进阶跳槽:发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术

2.视频学习资料+学习PDF文档

(鸿蒙语法ArkTS、TypeScript、ArkUI教程……)

 纯血版鸿蒙全套学习资料(面试、文档、全套视频等)

                   

鸿蒙APP开发必备

​​

总结

参与鸿蒙开发,你要先认清适合你的方向,如果是想从事鸿蒙应用开发方向的话,可以参考本文的学习路径,简单来说就是:为了确保高效学习,建议规划清晰的学习路线

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/409569.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】梯度下降算法

梯度下降算法 这篇博客更加详细&#xff0c;以下只是我个人的理解 梯度下降算法原理讲解——机器学习-CSDN博客 梯度下降算法是一种优化算法&#xff0c;通过梯度下降找到函数最小值时的自变量值。 其基本思想是沿着梯度方向的反方向更新参数&#xff0c;直到逼近函数的极值…

DaxPay:一套开源支付网关系统【送源码】

项目介绍 DaxPay是一套开源支付网关系统&#xff0c;已经对接支付宝、微信支付、云闪付相关的接口。可以独立部署&#xff0c;提供接口供业务系统进行调用&#xff0c;不对原有系统产生影响 特色功能 封装各类支付通道的接口为统一的接口&#xff0c;方便业务系统进行调用&am…

wps题注为表格或图片编号

word中为表格添加题注&#xff1a; 问题&#xff1a;多次或多人编辑导致--序号不能联动更新&#xff08;域代码不一致,如图&#xff09; 所以是否可以批量替换word里的域代码&#xff1f;如果可以这问题就解决了————失败 解决办法&#xff1a; 如图&#xff0c;复制表头&…

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…

Code Llama: Open Foundation Models for Code论文阅读

整体介绍 Code Llama 发布了3款模型&#xff0c;包括基础模型、Python 专有模型和指令跟随模型&#xff0c;参数量分别为 7B、13B、34B 和 70B。这些模型在长达 16k tokens 的序列上训练。都是基于 Llama 2。 作者针对infilling (FIM) 、长上下文、指令专门做了微调 long-con…

内网穿透的应用-戴森球计划利用cpolar内网穿透实现好友异地远程联机游戏

文章目录 游戏简介1. 下载MOD2.配置cpolar内网穿透3. 主机开启联机3.1 玩家加入游戏 4. 配置固定的TCP端口5. 游玩体验 游戏简介 《戴森球计划》是一款融合了科幻冒险与经营管理元素的优秀游戏。玩家将在浩瀚宇宙中探索未知星球&#xff0c;建立从零开始的工业帝国&#xff0c…

流媒体服务器如何让WebRTC支持H.265,同时又能支持Web js硬解码、软解码(MSE硬解、WASM软解)

为了这一整套的解决方案&#xff0c;调研研发整整花费了差不多半年多的时间&#xff0c;需达成的目标&#xff1a; 流媒体服务器端不需要将H.265转码成H.264&#xff0c;就能让Chrome解码播放H.265&#xff1b; 注意&#xff1a;现在很多市面上的软硬件通过转码H.265成H.264的…

xss-labs靶场6-10关

第六关 使用a标签&#xff0c;发现a标签可以。 "><a hreFjavascript:alert(aa)>aa</a> 点击aa 第七关 使用双写绕过 1"><ScscriptRipt>alert(1)</ScscriptRipt> 第八关 将javascript:alert(1)进行编码 然后将编码输入再次点击链…

day8JS-作用域

1. 变量的作用域(变量函数) 作用域是变量的可作用范围&#xff0c;变量只有在自己的作用域下才会生效。 函数会产生作用域&#xff0c;在函数内定义的变量只能在函数内使用。 2. 作用域分类 局部作用域&#xff1a; 函数内定义的变量和形参的作用域就是局部作用域&#xff1b;这…

基于SpringBoot的酒店管理系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架技术 工具&#xff1a;IDEA/Eclipse、Navicat、Maven 系统展示 首页 用户注册界面…

rabbitMQ安装与简单demo

安装 mac安装有了brew很方便&#xff0c;windows的可参考 win10 安装rabbitMQ详细步骤 brew install rabbitmq启动 brew services start rabbitmq关闭 brew services stop rabbitmq出了问题之后可以重启一下 brew services restart rabbitmqsome issue 某些库下载超时 比…

学习笔记七:基于Jenkins+k8s+Git+DockerHub等技术链构建企业级DevOps容器云平台

基于Jenkinsk8sGitDockerHub等技术链构建企业级DevOps容器云平台 安装Jenkins在kubernetes中部署jenkins创建名称空间创建pv,上传pv.yaml创建pvc创建一个sa账号通过deployment部署jenkins更新资源清单文件把jenkins前端加上service&#xff0c;提供外部网络访问 配置Jenkins获取…

PeriodWave: Multi-Period Flow Matching for High-Fidelity Waveform Generation

preprintKorea Seoul, Korea 文章目录 abstractmethodFlow Matching for Waveform GenerationHigh-frequency Information Modeling for Flow Matching demo page&#xff0c; PeriodWave 三者最好&#xff0c;而且能把原声中的噪声去掉&#xff0c;GAN一类声码器做不到的。 Pe…

Unity编辑器扩展之Project视图扩展

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity编辑器扩展之Project视图扩展 TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取&#xff01…

一家物流装备企业终止,业绩下滑严重,恐不符合创业板新上市标准

鸿安机械终止的原因如下&#xff1a;首先&#xff0c;报告期内鸿安机械的营业收入和净利润出现下滑趋势&#xff0c;公司最近一年净利润恐不达标&#xff0c;或许不能满足创业板更新的第一套上市标准&#xff1b;其次&#xff0c;鸿安机械经营业绩对比同行业可比公司&#xff0…

智能优化特征选择|基于鹦鹉优化(2024年新出优化算法)的特征选择(分类器选用的是KNN)研究Matlab程序 【优化算法可以替换成其他优化方法】

智能优化特征选择|基于鹦鹉优化&#xff08;2024年新出优化算法&#xff09;的特征选择&#xff08;分类器选用的是KNN&#xff09;研究Matlab程序 【优化算法可以替换成其他优化方法】 文章目录 一、PO基本原理PO基本原理基本流程示例应用 二、实验结果三、核心代码四、代码获…

gitlab使用教程

一、定义 pycharm 克隆代码pycharm 克隆分支type 提交指令使用可视化界面SourceTreepycharm中git 基本使用获取和拉取的区别&#xff0c;update project 区别sourceTree 回退版本sourceTree 回滚代码 二、实现 教程&#xff1a; https://liaoxuefeng.com/books/git/gui/inde…

在DDD中应用模式

深层模型和柔性设计并非唾手可得。要想取得进展&#xff0c;必须学习大量领域知识并进行充分的讨论&#xff0c;还需要经历大量的尝试和失败。但有时我们也能从中获得一些优势。一位经验丰富的开发人员在研究领域问题时&#xff0c;如果发现了他所熟悉的某种职责或某个关系网&a…

Nosql数据库redis集群配置详解

一、Redis的安装 环境介绍&#xff1a; 一主双从&#xff1a;10&#xff08;redis-node1&#xff09;主&#xff0c;20&#xff08;redis-node2&#xff09; 30&#xff08;redis-node3&#xff09;从——使用的是红帽9.1系统 源码安装redis [rootredis-node1 ~]# tar zxf red…

前端常见问题

一、<!DOCTYPE html>作用 <!DOCTYPE>是html文档的第一行&#xff0c;用于声明文档的类型&#xff0c;它会告诉浏览器要用哪一种HTML规范来渲染文档&#xff0c;确保正确渲染页面。 二、src与 href 的区别 &#xff08;一&#xff09;、请求资源类型的不同 在请…