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

news2024/11/15 5:15:25

简介

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 run
         help list

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

    2、list

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

    list:
         This command is used to display device list and task record.  
    usage:
          list
          list history
          list <id>  
    Introduction:
         list:         display device list
         list history: display history record of a serial of tasks
         list <id>:    display history record about task what contains specific id  
    Examples:
         list
         list history
         list 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 action
       task                  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.coloradmin.cn/o/2073885.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

electron仿微信,高度还原,入门项目

效果展示 Electron仿写微信-效果展示 目前完成了一些基础的功能&#xff0c;还在持续开发中&#xff0c;后期会整理开源。 有些样式没有追求百分百还原&#xff0c;只是通过该项目&#xff0c;让大家了解一下Electron创建桌面应用&#xff0c;各种窗口的创建及销毁、事件传递机…

NLP从零开始------13.文本中阶序列处理之语言模型(1)

语言模型( language model) 用于计算一个文字序列的概率&#xff0c; 评估该序列作为一段文本出现在通用或者特定场景中的可能性。每个人的语言能力蕴涵了一个语言模型&#xff0c;当我们说出或写下一段话的时候&#xff0c;已经在不自觉地应用语言模型来帮助我们决定这段话中的…

viscode 自定义片段,快速生成自己的开发模板

设置 ---> 代码片段 2.选择新建全局代码片段文件 3.根据示例自定义配置代码片段 4.示例:vue prefix:内容--> 代表用于触发代码片段的内容 $1&#xff0c; $2 用于制表位,如 $1 代表生成后第一个输入的位置,$2代表第二个,不用自己移动鼠标 {// Place your snippets f…

Sac格式

本文章只作为自己学习时的用法&#xff0c;不通用&#xff0c;大家可不用参考。 sac格式 0.01000000 -1.569280 1.520640 -12345.00 -12345.009.459999 19.45000 -41.43000 10.46400 -12345.00-12345.00 -12345.00 -12…

SQL注入漏洞的基础知识

目录 SQL注入漏洞的定义和原理 SQL注入的类型和攻击方法 SQL注入的防御措施 示例代码 深入研究 SQL注入漏洞的常见攻击场景有哪些&#xff1f; 如何有效防范SQL注入攻击&#xff1f; SQL注入与跨站脚本攻击&#xff08;XSS&#xff09;之间有什么区别&#xff1f; 主要…

每日一练【最大连续1的个数 III】

一、题目描述 给定一个二进制数组 nums 和一个整数 k&#xff0c;如果可以翻转最多 k 个 0 &#xff0c;则返回 数组中连续 1 的最大个数 。 二、题目解析 本题同样是利用滑动窗口的解法。 首先进入窗口&#xff0c;如果是1&#xff0c;就直接让right&#xff0c;但是如果是…

【软考】树、森林和二叉树之间的相互转换

目录 1. 说明2. 树、森林转换为二叉树2.1 树转成二叉树2.1 森林转成二叉树 3. 二叉树转换为树和森林 1. 说明 1.树、森林和二叉树之间可以互相进行转换&#xff0c;即任何一个森林或一棵树可以对应表示为一棵叉树&#xff0c;而任何一棵二叉树也能对应到一个森林或一棵树上。 …

SSRF复现

目录 环境 分析测试 写入shell 环境 web-ssrfme docker环境 拉取运行 分析测试 进入网站会显示源码 可以看到过滤了file&#xff0c;dict等&#xff0c;但get传参info会执行phpinfo() 可以发现这里网站ip是172.18.0.3&#xff0c;可以使用这个地址绕过waf 测试看是否存在…

如何实现一次搭建 多平台适配的小程序

如何实现一次搭建 多平台适配的小程序 什么是小程序小程序的优势有什么&#xff1f;如果构建小程序&#xff0c;会用在什么领域和场景&#xff1f;如何实现一站式开发多平台的小程序&#xff1f;你希望了解小程序上哪些功能模块的集成能力&#xff1f; 随着微信、支付宝、百度、…

七、Centos安装LDAP--Docker版--已失败

参考博客&#xff1a; docker 安装 OpenLDAP 及 LdapAdmin桌面版、页面版(osixia/openldap)_docker安装ldap-CSDN博客 LDAP使用docker安装部署与使用_memberof ldap docker-CSDN博客 目录 一、安装Docker Docker基本使用 管理镜像 二、拉取LDAP镜像 配置docker国内的镜像…

Java 入门指南:初识 Java 异常(Exception)

初识Java异常 何为异常 在Java中&#xff0c;异常是一个不需要的或意外的事件&#xff0c;它发生在程序执行期间&#xff0c;即在运行时&#xff0c;破坏了程序指令的正常流程。异常可以被程序捕获&#xff08;catch&#xff09;和处理&#xff08;handle&#xff09;。 方法…

C/C++逆向:寻找main函数(Debug-x86)

在程序的逆向分析中&#xff0c;寻找main函数在逆向分析中是非常重要的&#xff0c;它是程序的核心执行点&#xff0c;从这里开始&#xff0c;程序的主要逻辑开始展开&#xff1b;在这边我们需要明确两个概念&#xff1a;用户入口&#xff08;User Entry Point&#xff09; 和 …

【C语言进阶】深入C语言指针:基础到进阶的跨越

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言数据在内存中的存储 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀C语言指针进阶 &a…

Linux中安装java和tomcat(保姆级教程)

java 篇 JDK是用于开发Java应用程序的软件开发工具包。它包含了编译器、调试器、运行时环境和其他一些开发工具&#xff0c;可以帮助开发人员创建、编译、调试和部署Java应用程序。JDK提供了Java编程语言的开发工具和运行时库&#xff0c;使开发人员能够编写和执行Java代码。 …

TypeScript教程(一)之我们为什么要学TypeScript

根据软件开发设计公司 The Software House 针对 2022 年前端市场状态的调查显示&#xff0c;84% 的受访者都在使用 TypeScript&#xff0c;43% 的受访者甚至认为 TypeScript 将超越 JavaScript 成为前端开发的主要语言。TypeScript 这些年越来越火&#xff0c;可以说是前端工程…

影视会员官方渠道api对接

API对接是指两个不同的软件系统或应用程序之间通过API&#xff08;应用程序编程接口&#xff09;进行交互的过程。这种交互允许数据和功能的共享&#xff0c;而不必暴露系统的内部工作原理。在影视会员充值场景中&#xff0c;API对接具有以下几个关键特点和优势&#xff1a; 数…

【Linux系列】AWK命令使用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java面试题--JVM大厂篇之JVM大厂面试题及答案解析(4)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而我的博…

使用VBA快速创建非规则数据图表

实例需求&#xff1a;工作表中共有4组数据&#xff0c;第一组数据涵盖所有日期&#xff0c;其他3组均为断续数据。 现在需要创建如下图所示的线图&#xff0c;由于数据区域是非连续的&#xff0c;因此无法直接创建图表。 需要先将数据表按照日期对齐&#xff0c;如下图所示&…

《深度学习》 OpenCV 计算机视觉入门 (中篇)

目录 一、OpenCV函数使用 1、改变像素值 2、图像切片合并 1&#xff09;直接截取相加 2&#xff09;使用cv2.add合并 3&#xff09;此时亮度太高了&#xff0c;需要降低亮度 3、边界填充 1&#xff09;常数填充 2&#xff09;镜面反射填充&#xff08;复制交界处&…