Chrome OS Factory开发测试流程
- bin: factory源码中工具的symlink文件,基本上为sh脚本或py脚本。
- build:用于构建Factory SDK的临时目录。
- Makefile: 用于构建factory 源码和文档的make文件。
- py: Python 源码. 该目录即 cros.factory 模块, cros.factory.system.board 模块 py/system/board 目录下.
- py_pkg: 该目录作为PYTHONPATH 入口,包含了factory source. py_pkg/cros/factory 只是py 的一个symlink。 比如如果查找 cros.factory.system.board 模块 py_pkg/cros/factory/system/board.py 实际是指向了 py/system/board.py。
- sh: shell脚本
- test_lists: 旧风格的测试列表 (新风格的在 cros.factory.test.test_lists 模块中. 可参考Declaring test lists.)
- default: 构建工厂测试工具.
- par: 构建Python archive,par包含了所有源码和依赖的库文件,可以用来运行各种各样的工具。
- lint: 检查源码是否不规范。
- test: 单元测试
- overlay-board: 创建以overlay-{board} 未命名规范的目录,对应的目录包含了对板的factory源码 (e.g., in third_party/private-overlays/overlay-board-private/chromeos-board/factory-board/files). 对于特定板子的测试列表是非常有用的。
- overlay-board-lint: 运行overlay-board-lint ,即在对应的overlay目录下执行 make lint。
- overlay-board-test: 运行 overlay-board-test,即在对应的目录下执行make test。
- 一个国家,如美国,对应的国家码参考 ISO 3166-1 alpha-2 code为两个字母,us;这里要说下UK的国家码是gb不是uk。
- 一个非国家的实体,如香港Hong Kong对应的是hk。
- 一个多国或国实体组织的联合体可以共享一个区域配置,如Hispanophone Latin American 拉美(包含墨西哥、哥伦比亚、秘鲁、阿根廷等),即为nordic。
- 一个国家或实体组织的部分也可具有特有的区域配置,如Francophone Canada即为ca.fr
- xkb:...: XKB input methods listed in any file in JSON files in the Chromium src/chrome/browser/resources/chromeos/input_method directory. (Look for the id attributes of each input_components list entry.) For example, you will find xkb:us::eng in google_xkb_manifest.json.
- ime:...: (M38+ only) Any hard-coded strings listed in kEngineIdMigrationMap in Chromium’s input_method_util.cc. Currently this is:
- ime:zh-t:quick
- ime:zh-t:pinyin (not yet supported as of this writing, but should be added in M38)
- ime:ko:hangul
- ime:ko:hangul_2set
- m17n:...: (M38+ only) Strings with a prefix in kEngineIdMigrationMap. The prefix is rewritten according to the map, and there must be a corresponding input method ID in some file in the input_method directory. For instance, m17n:ar will be rewritten to vkd_ar according to the map. vkd_ar is present in google_input_tools_manifest.js.
- serials: A dictionary for serial numbers of device, components, and mainboard. All serial numbers here will be logged by testlog, including:
- serial_number: The serial number of “device” itself (printed on device panel).
- mlb_serial_number: The serial number of main logic board (mainboard).
- component: A dictionary to indicate what peripherals should exist, for example:
- has_touchscreen=True: A touch screen should be available.
- has_dram=2: Two DRAM components should be available.
- vpd: A dict for what VPD values need to be set, including:
- ro: VPD values in RO section (RO_VPD), usually including:
- region: Region code as defined in http://go/cros-regions.
- rw: VPD values in RW section (RW_VPD), usually including:
- ubind_attribute: User registration code.
- gbind_attribute: Group registration code.
- hwid: A value of probed Hardware ID.
- factory: A dict for manufacturing flow control, used by shopfloor backends. See Shopfloor Service API for more details.
- 打开Dome UI(浏览器键入http://<dom_host>:8000)
- 登入并选择你的项目
- 在仪表盘的Services列表中找到shopfloor。
- 配置serviceUrl
- 点击DEPLOY进行部署
shopfloor_service.py
py:
import xmlrpclib
service = xmlrpclib.ServerProxy('http://localhost:8090', allow_none=True)
print('Service Version: %s' % service.GetVersion())
service.NotifyStart({'serials.mlb_serial_number': '123'}, 'SMT')
|
py:
from cros.factory.utils import webservice_utils
url = 'jsonrpc:http://192.168.0.1:8090'
service = webservice_utils.CreateWebServiceProxy(url)
print(service.GetDeviceInfo({}))
|
py:
import xmlrpclib
from cros.factory.utils import webservice_utils
# Assume your real shopfloor service is here, and all its input and output
# must be JSON strings:
real_url = 'http://192.168.0.1:8090'
proxy = xmlrpclib.ServerProxy(real_url)
# The input is a JSON string. The output is also JSON, for example
# '{"vpd.ro.region": "us"}'
print(proxy.GetDeviceInfo('{}'))
# The webservice_utils provides 'json:' prefix to filter that.
url = 'json:http://192.168.0.1:8090'
service = webservice_utils.CreateWebServiceProxy(url)
# Input is real variable, and output is real dict, for example
# {'vpd.ro.region': 'us'}
print(service.GetDeviceInfo({}))
|
- vpd: vpd域用于配置Vital Product Data,包含ro或rw两个子域;如vpd.ro.region用于配置发货国家所对应的国家码或地区码;Chrome OS设备需要遵循VPD Field Requirements(https://www.google.com/chromeos/partner/fe/docs/factory/vpd.html)来配置必须的VPD信息,如:
- vpd.ro.region 国家码(组合了地区、时区、键盘配置和WIFI管理等信息)
- vpd.rw.ubind_attribute "User"注册码
- vpd.rw.gbind_attribute "Group"注册码
- component: 一个用于定义SKU信息的可选域,用于标识一些特定的已安装的外围设备数量,使用下面格式的字段进行定义:
- SMT:Surface Mount Technology;表面铁桩技术工位测试,即贴片,用于验证主板。
- FAT:Final Assembly Test;最终组装测试,即封板测试
- RUNIN:Run-In;试运行测试;
- FFT:Final Functional Test;包装之前的最终功能测试
- GRT:Google Required Test;google 认证测试
- TEST LISTS
- 活动的测试列表(Test List)
- 覆写激活的Test List
pytest测试项 pytest name
|
description 测试项描述
|
ac_power
|
测试DUT电源类型和状态
|
accelerometers
|
测试加速度计
|
accelerometers_calibration
|
测试加速度计校准标定
|
accelerometers_lid_angle
|
测试基于加速度计角度
|
audio
|
测试音频播放功能
|
audio_basic
|
测试录音和播放基本功能
|
audio_diagnostic
|
测试音频录制和播放效果
|
audio_loop
|
测试音频功能
|
audio_quality
|
使用音频设备测试音质
|
backlight
|
测试显示背光
|
bad_blocks
|
通过运行磁盘检测指令验证存储设备
|
battery
|
测试DUT电池效果
|
battery_basic
|
电池基本测试
|
battery_current
|
电池当前是否处于充电或放电状态测试
|
battery_cycle
|
电池回路测试
|
battery_sysfs
|
硬件测试,包含电池是否在位及其基本的状态
|
bft_fixture
|
BFT fixture控制接口测试
|
blocking_charge
|
测试等待电池充电达到特定level
|
bluetooth
|
蓝牙设备功能性测试
|
bluetooth_host
|
使用hciconfig和hcitool.进行基于占位的蓝牙扫描配对测试
|
brightness.brightness
|
LED和LCD背光亮度测试
|
brightness.lcd_backlight
|
LCD背光模块功能测试
|
brightness.led_brightness
|
LED亮度测试
|
button
|
案件功能测试
|
buzzer
|
蜂鸣器测试
|
camera
|
无固定摄像头测试
|
cellular_switch_firmware
|
切换modem固件测试
|
chameleon
|
使用Chameleon(变色龙)工具进行自动化显示测试
|
charger
|
测试一定时间充放电的电池电量
|
check_cr50_board_id
|
检测CR50固件的BoardID
|
check_image_version
|
检测OS Image版本
|
check_serial_number
|
检查序列号设置是否正常
|
compass
|
指南针测试
|
countdown
|
run-in 测试中倒计时监视器用户接口测试
|
cr50_write_whitelabel_flags
|
如果当前是一个白标设备,则写入cr50白标。
|
display
|
显示功能测试
|
display_images
|
显示功能测试
|
display_point
|
显示面板功能测试
|
dsm_calibration
|
扬声器校准测试
|
ethernet
|
以太网连接基本测试
|
exec_python
|
运行任意python脚本测试
|
exec_shell
|
shell命令调用运行测试
|
external_display
|
外部显示测试(音频播放可选)
|
factory_state
|
PyTest FactoryStateLayer控制协助测试
|
fan_speed
|
CPU风扇功能测试
|
fastboot_flash
|
使用fastboot flash进行镜像升级
|
finalize
|
切换量产版本的封板测试
|
fingerprint_mcu
|
Fingerprint sensor测试
|
flash_netboot
|
刷ap固件到网络引导固件
|
gps
|
允许在Android DUT上进行GPS芯片相关的测试和验证
|
gyroscope
|
陀螺仪测试
|
gyroscope_calibration
|
陀螺仪校准测试
|
hwid
|
使用HWID v3来生成/编码和验证设备的硬件标识符
|
interrupt
|
测试测试中断次数是否超出预期
|
keyboard
|
键盘功能测试
|
keyboard_backlight
|
键盘背光测试
|
keyboard_smt
|
贴片测试中进行键盘引脚连接的测试
|
led
|
Uses ectool to control the onboard LED light, and lets either operator or SMT fixture confirm LED functionality.
|
lid_switch
|
LID切换测试
|
light_sensor
|
环境光感测试
|
light_sensor_calibration
|
光感校准测试
|
lightbar
|
警示灯测试
|
line_check_item
|
使用交互式shell脚本测试DUT
|
lte_verify_config
|
验证LTE模块配置
|
memory_size
|
参考固件中的信息测试存储大小是否正确
|
message
|
显示一条信息
|
model_sku
|
测试确认和设置KSU信息
|
modem_security
|
验证和关闭modem访问授权
|
mrc_cache
|
初始化也验证恢复模式内存测试
|
network_setup.network_setup
|
等待网络连接操作
|
nop
|
空操作测试
|
offline_test.offline_test
|
pytest offline_test.offline_test
|
offline_test.shell.deploy
|
pytest offline_test.shell.deploy
|
offline_test.shell.fetch_log
|
pytest offline_test.shell.fetch_log
|
partition_table
|
检查分区表是否延伸到存储末端,即覆盖整个磁盘。
|
pd_fw_min_version
|
检查PD(TCPC)固件版本大于等于EC驱动中最小版本。
|
ping_test
|
Ping测试
|
plankton_cc2_pull_test
|
夹具USB type-C CC2功能测试
|
plankton_cc_flip_check
|
检查USB type-C CC 线电极,反转操作测试
|
plankton_charge
|
USB type-c接口充电功能测试
|
plankton_display
|
Tests USB type-C DP function with Plankton-Raiden, which links/unlinks DUT USB type-C port to DP sink. And with Plankton-HDMI as DP sunk to capture DP output to verify.
|
power_under_stress
|
pytest power_under_stress
|
probe.probe
|
测试设备组件是否正常
|
probe_cellular_info
|
尝试从modem status中获取信息
|
probe_sim
|
尝试从modem status中后去SIM卡信息
|
probe_sim_card_tray
|
SIM卡卡托测试
|
read_device_data_from_vpd
|
从VPD中配置设备数据
|
removable_storage
|
测试访问热插拔存储设备
|
retrieve_config
|
从U盘或factory server获取JSON配置文件
|
retrieve_parameter
|
从Factory server获取参数文件
|
rf_graphyte.rf_graphyte
|
使用Graphyte.测试RF芯片负载能力
|
robot_movement
|
控制机器人来测试特定感应器
|
sample_customized_test
|
主板特定测试
|
sar_proximity_sensor
|
SAR金距离感应测试
|
scan
|
提示测试员输入字符串
|
select_for_sampling
|
决定当前设备是否可以进行抽样测试
|
serial_echo
|
检查DUT贴片测试的状态
|
shopfloor_service
|
远程调用与shopfloor backend的交互
|
shutdown
|
开关机/重启测试
|
spatial_sensor_calibration
|
空间传感器校准
|
start
|
检查测试列表设置就绪
|
station_entry
|
开始或结束站位测试
|
station_setup
|
为站位测试设置站位
|
storage_simple_stress
|
执行命令持续对单个文件进行读写操作
|
stressapptest
|
CPU/闪存/存储压力测试
|
stylus
|
手写笔功能测试
|
summary
|
显示当前站位测试状态
|
suspend_resume
|
指定周期性挂起和唤醒设备
|
sync_factory_server
|
连接工厂服务器查找可更新的固件,并上传日志
|
sync_time
|
时间同步
|
tablet_mode
|
平板电脑模式测试
|
tablet_rotation
|
屏幕旋转测试
|
thermal_load
|
热传感器负载响应测试
|
thermal_sensors
|
热传感器测试
|
thermal_slope
|
处理器高低温测试
|
touch_device_fw_update
|
检查和升级触摸设备固件
|
touch_uniformity
|
验证触摸均匀性
|
touchpad
|
验证触摸功能
|
touchpad_hover
|
触控板测试
|
touchscreen
|
通过绘制各种图案来测试触摸屏和手写笔功能
|
touchscreen_calibration.touchscreen_calibration
|
ouchscreen_calibration校准测试
|
tpm_clear_owner
|
测试下次重启时清除TPM用户
|
tpm_diagnosis
|
运行tpm_selftest进行TPM自我诊断
|
tpm_verify_ek
|
验证TPM签名密钥
|
update_cr50_firmware
|
更新Cr50固件
|
update_device_data
|
测试更新Device Data
|
update_firmware
|
执行ChromeOS固件升级,强制升级Main(AP)/EC/PD 固件
|
update_fpmcu_firmware
|
更新Fingerprint MCU固件
|
update_kernel
|
应用到新内核到DUT测试
|
update_sku
|
SKU ID和FW Config升级到EEPROM测试
|
urandom
|
通过生成伪随机数进行cpu压力测试
|
usb
|
usb测试
|
verify_component
|
验证外设测试
|
verify_root_partition
|
验证分区完整性
|
video_playback
|
pytest video_playback
|
vswr.vswr
|
VSWR 验证传输效率
|
vsync
|
VSync 引脚测试
|
wait_external_test
|
检测等待外部夹具测试结束
|
wait_fixture_ready
|
验证夹具状态
|
webgl_aquarium
|
WebGL 性能测试(包含一系列WebGL相关操作)
|
whale_check_voltage
|
电压检测
|
whale_cover
|
检查Whale’s cover开启/关闭状态
|
wifi_check_calibration
|
从/sys/kernel/debug/ieee80211/phy*/ath9k/dump_eep_power检测wifi校准表
|
wifi_throughput
|
WIFI负载测试
|
wireless_antenna
|
wifi连接基本功能测试
|
wireless_connect
|
测试无线连接
|
write_device_data_to_vpd
|
写入设备数据到VPD
|
write_protect_switch
|
测试写保护功能
|
Chrome OS Factory开发测试流程相关推荐
- JavaWeb开发测试流程
JavaWeb开发测试流程 1.需求确定(最重要**) 2.分析与设计** (1)架构分析与设计 (2)业务逻辑分析 (3)业务逻辑设计 (4)界面设计 3.开发环境搭建 4.开发-测试-开发-测试 ...
- app测试流程和重点_APP开发测试流程是怎么样的?
一款APP产品在上线之后的稳定性,取决于上线之前的软件测试,也就是说在上线之前,能找出更多的软件问题并解决,那么上线以后,APP软件自然就很少出现问题,系统性能自然就更加的稳定.那么正规的测试流程是怎 ...
- TIMI游戏工作室开发测试流程
一.天美工作室的2018年游戏收入已超过暴雪等全球游戏厂商收入. 二.工作室平均1-1.5月一个版本 三.TIMI工作室开发测试人数比3:1,Google公司是7:1 四.TIMI研发流程:策划产品- ...
- chrome os简介
这篇文章是简单学习chrome os系统总结: 1.chrome os简介 Google 推出基于linux的操作系统,特点linux内核,使用第三方开源的代码,运行在chromium浏览器上.该操作 ...
- Chrome OS 与 Android 的生死爱欲
Chrome OS 与 Android 融合的月经文,差不多每隔几个月就会出现一次,然而每次融合的声音出现,各大小讨论区都只顾忙于争论 Chrome OS 好不好用.有没有人要买 Chrome OS. ...
- 初级测试小宝典 测试流程,不能复现bug,开发不认为是bug级2020测试点的热点提问的回答
1.测试流程 1.按阶段划分为 单元测试,集成测试 ,系统测试,验收测试 2.按是否运行 静态测试 动态测试 3.按是否查看源代码 自盒测试 黑盒测试 ...
- 基于Jenkins的开发测试全流程持续集成实践
今年上半年一直在公司实践CI,本文将上半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点.当然这仅是一家之言也不够完整,后续下半年还会深入实践和引入Kuberne ...
- Android 与 Chrome OS 中针对大屏幕设备的更新
随着智能终端硬件的不断革新,大尺寸设备的种类越来越丰富,比如手机.折叠屏设备.平板电脑.ChromeBook.外接显示器的 ChromeBox 和集成屏幕的 Chromebase 等.Google 团 ...
- 一路相伴,共同成长 | Chrome OS 100 回顾
作者 / Iein Valdez,Google Chrome OS 开发者关系主管 3 月 31 日,我们推出了 Chrome OS 的第 100 个稳定发布版本.一路走来,我们不断发展并成长为一个多 ...
- travis ci_如何使用Travis CI和GitHub进行Web开发工作流程
travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...
最新文章
- PICRUSt:16S预测宏基因组-扩增子分析锦上添花
- Android四大组件ContentProvider
- 牛客16654 谁拿了最多奖学金
- ROS 科大讯飞语音(三)识别篇
- Mysql存储过程老是报错_mysql中看看这个存储过程老是报错,该如何处理
- 济南python工资一般多少-Python火到天际,可是为啥找工作这么难?
- java 数据类型转换的一场_Java数据类型之间的转换
- 行政区划简称(包括别称)
- Dsoframer控件的下载及注册
- [计算机视觉多视图几何] -- Homography
- word-插入数学公式(mathtype)
- GitLab版本升级
- 用matlab调节窗宽窗位的代码,基于HTML5的PACS HTML5图像处理(7)实现客户端JS调整窗宽窗位...
- elasticsearch(15) match_phase的使用 slop的使用
- 【阿里云数据总线】Datahub使用Python SDK记录
- PowerPoint 幻灯片 PPT 进度条 制作
- C++ pair的常见用法(详细)
- 苹果的黑科技:如何让按不动的触控板产生点按的感觉
- 【Python】浅谈 字节码 + 虚拟机 (Python 解释器)
- 二分查找算法(随机, 最左, 最右)