pytestbot


Namepytestbot JSON
Version 2025.8.209 PyPI version JSON
download
home_pagehttps://gitlab.com/nuangua/testbot.git
Summary一款支持手机、电视、手表等智能硬件产品的自动化测试框架,提供开发测试工具、开发测试脚本、扩展基础原子接口、扩展业务封装接口、扩展测试插件等使用支持。最新版本基于分支: main和提交ID: 3137a86b所编译生成
upload_time2025-02-25 01:56:41
maintainerNone
docs_urlNone
authorNuanguang Gu(Sunny)
requires_python<4,>=3.7
licenseCopyright (c) 2024 Nuanguang Gu(Sunny) Reserved
keywords testbot testbot-aw testbot-apps
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # TestBot技术交流群

![QR](https://gitlab.com/nuangua/testbot/-/raw/main/docs/_static/qr.jpg)

# 项目文档

* [需求文档](https://gitlab.com/nuangua/testbot/-/wikis/requirement_docs)
* [设计文档](https://gitlab.com/nuangua/testbot/-/wikis/design_docs)
* [开发文档](https://gitlab.com/nuangua/testbot/-/wikis/design_docs)
* [使用文档](https://gitlab.com/nuangua/testbot/-/wikis/usage_docs)
* [接口文档](https://nuangua.gitlab.io/testbot/)

# 快速入门

## 安装最新版本及其依赖库

```buildoutcfg
Python命令:python -m pip install -U pytestbot
Windows命令:powershell -command "Invoke-Command -ScriptBlock ([scriptblock]::Create($((new-object net.webclient).DownloadString('https://gitlab.com/nuangua/testbot/-/raw/main/src/devops/deploy.ps1')))) -ArgumentList 'Install','testbot'"
Linux命令:curl -s https://gitlab.com/nuangua/testbot/-/raw/main/src/devops/deploy.sh | bash -s Install testbot
```

## 接口调用示例

### 获取资源对象

```
from testbot.resource.pool import ResourcePool
pool = ResourcePool()
print(pool.topology)
```

### 自动发现资源和端口

```
pool.discover_resources()
print(pool.topology)
```

### 按测试类型初始化测试资源池

```
from testbot.app.base import TestType
pool.init_resources(test_type=TestType.CHECK_TEST.name)
```

### 获取PC设备对象

```
pc = pool.collect_device(device_type="PCDevice", count=1)[0]
```

### 获取TVDevice设备对象

```
tv = pool.collect_device(device_type="TVDevice", count=1)[0]
```

### 检查gRPC端口保活状态

```
tv.get_port(type="GRPCPort")._alive
```

### 检查TV设备对象有哪些模块类对象

```
[attr for attr in tv.__dict__ if attr.endswith('Module')]
 
>['BluetoothWrapperModule', 'ChannelWrapperModule', 'FactoryModeWrapperModule', 'MultimediaWrapperModule', 'PowerWrapperModule', 'SettingsWrapperModule', 'UIWrapperModule', 'WIFIWrapperModule', 'YoutubeWrapperModule', 'CommSerialWrapperModule', 'DemoAtomModule', 'ADBAtomModule', 'AudioAtomModule', 'CaptureCardAtomModule', 'CommSerialAtomModule', 'GRPCAtomModule', 'InfraredSerialAtomModule', 'PowerAtomModule']

```

### 检查TV对象的接口模块类对象有哪些接口方法

```
dir(tv.CommSerialAtomModule)
```

### 调用TV对象的接口方法

```
tv.CommSerialAtomModule.send_command(data="ifconfig")
print(tv.SettingsWrapperModule.connect_wifi(wifi_name="lucky_mario_wifi_5G", wifi_password="xm123456"))
```

## 测试脚本

测试脚本代码路径:src/testbot_apps/scripts/unit_test/TcDemo.py

```buildoutcfg
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@TC_ID          : CNTC-94402
@Introduction   : 恢复出厂设置
@Description    :
@Precondition   :
1、电视TV下有频道
2、电视连接信号较强的wifi热点
@Steps:
1、进入设置菜单,修改图效、声效为任意值
2、进入VOD下播放视频
3、HDMI1信源播放视频时,执行恢复出厂设置操作
4、完成开机向导后,进入系统
5、检查launcher默认模板下的各个Tab页
6、检查HDMI高级标准默认值
@Expected       :
4.1、过完开机向导后,电视回到主页
4.2、所有频道节目,视频观看历史被清除
4.3、设置菜单里用户数据恢复默认值
--(仅保留WIFI账号密码)--
5、非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo
(如:雷鸟,乐华,东芝等品牌不能出现TCL的字样,海报中不能出现TCL的logo)
6、HDMI高级标准默认为开(根据项目的PQ tree检查具体默认值:https://confluence.tclking.com/pages/viewpage.action?pageId=79309061)
注:982项目HDMI高级标准菜单默认为关,不区分品牌;963机型,TCL是关闭;雷鸟是打开
"""

__copyright__ = "Copyright (c) 2024 Nuanguang Gu(Sunny) Reserved"
__author__ = "Nuanguang Gu(Sunny)"
__email__ = "nuanguang.gu@aliyun.com"

import os
import random

from testbot.app.case.base import TestCaseBase
from testbot.app.base import TestType
from testbot.app.case.decorator import case
from testbot.config import TESTBOT_ROOT
from testbot.config.setting import TestSettingBase


@case(priority=1, test_type=TestType.CHECK_TEST.name, testcase_id="TcDemo", testcase_name="TcDemo")
class TcDemo(TestCaseBase):

    def collect_resource(self, **kwargs):
        with self.step.start(headline="筛选设备") as step:
            with step.start(headline="筛选PC设备") as step2:
                self.pc = self.pool.collect_device(device_type="PCDevice", count=1)[0]
                if self.pc:
                    self.logger.info(f"self.pc={self.pc}, type={type(self.pc)}")
                    self.logger.info(f"self.pc funcs={dir(self.pc)}")
                    step2.passed(message="筛选PC设备成功")
                else:
                    step2.failed(message="筛选PC设备失败")
            with step.start(headline="筛选TV设备") as step2:
                self.tv = self.pool.collect_device(device_type="TVDevice", count=1)[0]
                if self.tv:
                    self.logger.info(f"self.tv={self.tv}, type={type(self.tv)}")
                    self.logger.info(f"self.tv funcs={dir(self.tv)}")
                    step2.passed(message="筛选TV设备成功")
                else:
                    step2.failed(message="筛选TV设备失败")
        pass

    def setup_class(self, **kwargs):
        with self.step.start(headline="检查是否安装和启动grpc服务APK", message="") as step:
            with step.start(headline="检查是否执行前置指令", message="") as step2:
                pass
            with step.start(headline="检查是否安装应用", message="") as step2:
                pass
            with step.start(headline="检查是否启动grpc服务", message="") as step2:
                pass

    def setup(self, **kwargs):
        with self.step.start(headline="TV进入主页") as step:
            pass
        with self.step.start(headline="", message="") as step:
            pass
        with self.step.start(headline="电视TV下有频道") as step:
            pass
        with self.step.start(headline="建立WIFI连接") as step:
            pass

    def test(self, **kwargs):
        with self.step.start(headline="进入设置菜单,修改图效、声效为任意值") as step:
            with step.start(headline="修改图效为任意值") as step2:
                pass
            with step.start(headline="修改声效为任意值") as step2:
                pass
        with self.step.start(headline="进入VOD下播放视频") as step:
            pass
        with self.step.start(headline="HDMI1信源播放视频时,执行恢复出厂设置操作") as step:
            pass
        with self.step.start(headline="完成开机向导后,进入系统") as step:
            with step.start(headline="过完开机向导后,电视回到主页") as step2:
                pass
            with step.start(headline="执行安装前置指令") as step2:
                pass
            with step.start(headline="安装应用") as step2:
                pass
            with step.start(headline="检查是否启动grpc服务", message="") as step2:
                pass
            with step.start(headline="重新初始化grpc", message="") as step2:
                pass
            with self.step.start(headline="建立WIFI连接") as step2:
                pass
            with step.start(headline="检查设置菜单里用户数据是否恢复默认值") as step2:
                pass
        with self.step.start(headline="检查launcher默认模板下的各个Tab页") as step:
            with step.start(headline="切换tv进入标准桌面") as step2:
                pass
            with step.start(headline="非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo") as step2:
                pass
        with self.step.start(headline="检查HDMI高级标准默认值") as step:
            pass

    def cleanup(self, **kwargs):
        with self.step.start(headline="电视回到主页") as step:
            pass

    class TcDemoSetting(TestSettingBase):
        case_setting1 = "setting1"
        case_setting2 = 10
        TIMEOUT = 60

```

## 测试脚本配置文件

```buildoutcfg
{
    "case_setting1": "setting1",
    "case_setting2": 10,
    "TIMEOUT": 60,
    "new_var": "Hello World"
}
```

## 测试用例列表配置文件

```buildoutcfg
{
    "name": "测试用例列表",
    "description": "测试用例列表清单",
    "setting_path": "",
    "iterations": 5,
    "cases": [
        "testbot_apps.scripts.unit_test.TcDemo.TcDemo"
    ],
    "sublist": []
}
```

## 测试资源池配置文件

测试资源池配置文件,目前需要手动配置,后续设备和端口自动发现功能实现后,即可自动生成、不再需要手动配置。

```buildoutcfg
{
    "devices": {
        "M70JP90W": {
            "name": "M70JP90W",
            "type": "PCDevice",
            "description": null,
            "pre_connect": false,
            "client_attributes": {},
            "shared_attributes": {},
            "server_attributes": {},
            "reserved": false,
            "ports": {
                "COM7": {
                    "name": "COM7",
                    "type": "CommSerialPort",
                    "baud_rate": 115200,
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "CommSerialPort"
                        }
                    ],
                    "_instance": null
                },
                "COM18": {
                    "name": "COM18",
                    "type": "InfraredSerialPort",
                    "baud_rate": 115200,
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "InfraredSerialPort"
                        }
                    ],
                    "_instance": null
                },
                "0": {
                    "name": "0",
                    "type": "VideoStreamSerialPort",
                    "fps": 30.0,
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "VideoStreamSerialPort"
                        }
                    ],
                    "_instance": null
                },
                "172.24.32.28:5555": {
                    "name": "172.24.32.28:5555",
                    "type": "AdbPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "AdbPort"
                        }
                    ],
                    "_instance": null
                },
                "172.24.32.28:60000": {
                    "name": "172.24.32.28:60000",
                    "type": "GRPCPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "GRPCPort"
                        }
                    ],
                    "_instance": null
                },
                "GPIO12": {
                    "name": "GPIO12",
                    "type": "PowerPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "PowerPort"
                        }
                    ],
                    "_instance": null
                },
                "GPIO26": {
                    "name": "GPIO26",
                    "type": "HDMIPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "HDMIPort"
                        }
                    ],
                    "_instance": null
                },
                "GPIO21": {
                    "name": "GPIO21",
                    "type": "EthernetPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [],
                    "_instance": null
                },
                "GPIO5/6": {
                    "name": "GPIO5/6",
                    "type": "USBPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "M70JP90W",
                    "remote_ports": [
                        {
                            "device": "5C0AD0760BB0C50AD",
                            "port": "USBPort"
                        }
                    ],
                    "_instance": null
                }
            },
            "_instance": null
        },
        "5C0AD0760BB0C50AD": {
            "name": "5C0AD0760BB0C50AD",
            "type": "TVDevice",
            "description": null,
            "pre_connect": false,
            "client_attributes": {},
            "shared_attributes": {},
            "server_attributes": {},
            "reserved": false,
            "ports": {
                "CommSerialPort": {
                    "name": "CommSerialPort",
                    "type": "CommSerialPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "COM7"
                        }
                    ],
                    "_instance": null
                },
                "InfraredSerialPort": {
                    "name": "InfraredSerialPort",
                    "type": "InfraredSerialPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "COM18"
                        }
                    ],
                    "_instance": null
                },
                "VideoStreamSerialPort": {
                    "name": "VideoStreamSerialPort",
                    "type": "VideoStreamSerialPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "0"
                        }
                    ],
                    "_instance": null
                },
                "AdbPort": {
                    "name": "AdbPort",
                    "type": "AdbPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "172.24.32.28:5555"
                        }
                    ],
                    "_instance": null
                },
                "GRPCPort": {
                    "name": "GRPCPort",
                    "type": "GRPCPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "172.24.32.28:60000"
                        }
                    ],
                    "_instance": null
                },
                "PowerPort": {
                    "name": "PowerPort",
                    "type": "PowerPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "GPIO12"
                        }
                    ],
                    "_instance": null
                },
                "HDMIPort": {
                    "name": "HDMIPort",
                    "type": "HDMIPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "GPIO26"
                        }
                    ],
                    "_instance": null
                },
                "EthernetPort": {
                    "name": "EthernetPort",
                    "type": "EthernetPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [],
                    "_instance": null
                },
                "USBPort": {
                    "name": "USBPort",
                    "type": "USBPort",
                    "description": null,
                    "pre_connect": false,
                    "client_attributes": {},
                    "shared_attributes": {},
                    "server_attributes": {},
                    "reserved": false,
                    "parent": "5C0AD0760BB0C50AD",
                    "remote_ports": [
                        {
                            "device": "M70JP90W",
                            "port": "GPIO5/6"
                        }
                    ],
                    "_instance": null
                }
            },
            "_instance": null
        }
    },
    "info": {},
    "reserved": null
}
```

## 执行测试用例列表

* 以命令方式执行

参数testlist指定了要执行的测试用例列表配置文件,参数resource指定了手动配置的测试资源池配置文件。

```buildoutcfg
python -m testbot.cli runner test --testlist src/testbot_apps/scripts/unit_test/TCList.json --resource src/testbot_apps/scripts/unit_test/ResourcePool.json
```

## 测试日志

执行的测试日志,会存放到%TB_HOME%/logs路径(若设置了TB_HOME环境变量)或%HOMEPATH%/TESTBOT/logs(若未设置TB_HOME环境变量)下面。

```buildoutcfg
C:\Python38\python.exe D:/codes/testbot/src/testbot/cli.py runner test --testlist src/testbot_apps/scripts/unit_test/TCList.json --resource src/testbot_apps/scripts/unit_test/ResourcePool.json
[2024-12-25 17:04:33,829][INFO][CaseRunner][testbot.testengine.caserunner.__init__  :+76][pid|tid:29044|9332]:执行器装载完毕
[2024-12-25 17:04:33,830][INFO][Resource  ][testbot.resource.pool.load      :+141][pid|tid:29044|9332]:Entering ResourcePool.load...
[2024-12-25 17:04:33,831][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.device.device.PCDevice'>接口模块类['testbot_aw.modules.atom.device.PCDevice.network.NetworkAtomModule']
[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.device.device.TVDevice'>接口模块类['testbot_aw.modules.wrapper.device.TCLTVDevice.bluetooth.BluetoothWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.channel.ChannelWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.factory_mode.FactoryModeWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.multimedia.MultimediaWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.power.PowerWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.settings.SettingsWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.ui.UIWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.wifi.WIFIWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.youtube.YoutubeWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.settings.SettingsWrapperModule', 'testbot_aw.modules.atom.device.TCLTVDevice.demo.DemoAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.adb.ADBAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.audio.AudioAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.capture_card.CaptureCardAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.commserial.CommSerialAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.grpc.GRPCAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.infraserial.InfraredSerialAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.power.PowerAtomModule']
[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+274][pid|tid:29044|9332]:Initialize Device...
[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:加载<class 'testbot.resource.resource.Port'>接口模块类[]
[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.pool.load      :+180][pid|tid:29044|9332]:topology={'M70JP90W': <testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, '5C0AD0760BB0C50AD': <testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>}
[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.pool.load      :+181][pid|tid:29044|9332]:Exiting ResourcePool.load...
[2024-12-25 17:04:33,930][INFO][CaseRunner][testbot.testengine.caserunner.load_resource:+111][pid|tid:29044|9332]:测试资源装载完毕
[2024-12-25 17:04:33,932][INFO][CaseRunner][testbot.testengine.caserunner.load_test :+146][pid|tid:29044|9332]:正在加载用例模块: testbot_apps.scripts.unit_test.TcDemo...
[2024-12-25 17:04:33,932][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+156][pid|tid:29044|9332]:################################################################################
C:\Python38\lib\site-packages\pkginfo\installed.py:62: UserWarning: No PKG-INFO found for package: testbot
  warnings.warn('No PKG-INFO found for package: %s' % self.package_name)
C:\Python38\lib\site-packages\pkginfo\distribution.py:178: UnknownMetadataVersion: Unknown metadata version: None
  warnings.warn(UnknownMetadataVersion(self.metadata_version))
[2024-12-25 17:04:34,436][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+170][pid|tid:29044|9332]:############## testbot模块 【Version】:None,【概要】:None,【安装路径】:None ##############
C:\Python38\lib\site-packages\pkginfo\installed.py:62: UserWarning: No PKG-INFO found for package: testbot_aw
  warnings.warn('No PKG-INFO found for package: %s' % self.package_name)
[2024-12-25 17:04:34,938][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+170][pid|tid:29044|9332]:############## testbot_aw模块 【Version】:None,【概要】:None,【安装路径】:None ##############
C:\Python38\lib\site-packages\pkginfo\installed.py:62: UserWarning: No PKG-INFO found for package: testbot_apps
  warnings.warn('No PKG-INFO found for package: %s' % self.package_name)
[2024-12-25 17:04:35,455][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+170][pid|tid:29044|9332]:############## testbot_apps模块 【Version】:None,【概要】:None,【安装路径】:None ##############
[2024-12-25 17:04:35,455][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+171][pid|tid:29044|9332]:################################################################################
[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+275][pid|tid:29044|9332]:pool.topology = {'M70JP90W': <testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, '5C0AD0760BB0C50AD': <testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>}
[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+277][pid|tid:29044|9332]:test_type = CHECK_TEST
[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+292][pid|tid:29044|9332]:执行检查项:是否可以通过指令串口获取TV IP地址
[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+297][pid|tid:29044|9332]:执行检查项:TV端是否可以正常访问公司网络,如Panda、AI服务
[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+302][pid|tid:29044|9332]:执行检查项:TV端是否可以正常访问国内网络
[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.check_env :+307][pid|tid:29044|9332]:执行检查项:TV端是否可以正常访问海外网络
[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.check_env :+318][pid|tid:29044|9332]:执行检查项:通过红外串口发送红外指令是否正常
[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.check_env :+329][pid|tid:29044|9332]:执行检查项:是否能够通过采集卡串口采集图像正常
[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.init_resource_pool:+258][pid|tid:29044|9332]:pool.topology = {'M70JP90W': <testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, '5C0AD0760BB0C50AD': <testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>}
[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.init_resource_pool:+260][pid|tid:29044|9332]:test_type = CHECK_TEST
[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+138][pid|tid:29044|9332]:初始化测试资源:PCDevice(name=M70JP90W,type=PCDevice).init_resource
[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+140][pid|tid:29044|9332]:检查项列表:[<CheckItem.COMM_SERIAL_PORT_CHECK__HAS_IP: 1>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET: 2>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET: 3>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET: 4>, <CheckItem.INFRA_SERIAL_PORT_CHECK__NORMAL: 17>, <CheckItem.CAP_SERIAL_PORT_CHECK__NORMAL: 33>],测试类型:CHECK_TEST
[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__HAS_IP
[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET
[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET
[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET
[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:INFRA_SERIAL_PORT_CHECK__NORMAL
[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:CAP_SERIAL_PORT_CHECK__NORMAL
[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+138][pid|tid:29044|9332]:初始化测试资源:TVDevice(name=5C0AD0760BB0C50AD,type=TVDevice).init_resource
[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+140][pid|tid:29044|9332]:检查项列表:[<CheckItem.COMM_SERIAL_PORT_CHECK__HAS_IP: 1>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET: 2>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET: 3>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET: 4>, <CheckItem.INFRA_SERIAL_PORT_CHECK__NORMAL: 17>, <CheckItem.CAP_SERIAL_PORT_CHECK__NORMAL: 33>],测试类型:CHECK_TEST
[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__HAS_IP
[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET
[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET
[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:COMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET
[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:INFRA_SERIAL_PORT_CHECK__NORMAL
[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:检查项:CAP_SERIAL_PORT_CHECK__NORMAL
[2024-12-25 17:04:35,490][INFO][CaseRunner][testbot.testengine.caserunner.set_test_list:+183][pid|tid:29044|9332]:测试列表装载完毕
[2024-12-25 17:04:35,498][INFO][CaseRunner][testbot.testengine.caserunner.__run_test_list:+294][pid|tid:29044|22500]:切换日志路径:C:\Users\nuanguang.gu\TESTBOT\logs\runner\CaseRunner.log -> C:\Users\nuanguang.gu\TESTBOT\logs\cases\20241225170435\测试用例列表\TcDemo.log
[2024-12-25 17:04:35,498][INFO][TcDemo    ][testbot.app.case.precondition.is_meet   :+37][pid|tid:29044|22500]:测试用例的类型必须是COMMON_TEST
[2024-12-25 17:04:35,498][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+50][pid|tid:29044|22500]:self.pc=<testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, type=<class 'testbot.resource.device.device.PCDevice'>
[2024-12-25 17:04:35,499][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+51][pid|tid:29044|22500]:self.pc funcs=['MODULES', 'NetworkAtomModule', '__abstractmethods__', '__annotations__', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', '_instance', 'add_port', 'client_attributes', 'description', 'from_dict', 'get_comm_instance', 'get_port', 'get_port_count', 'init_resource', 'logger', 'name', 'ports', 'pre_connect', 'register_module', 'reserved', 'server_attributes', 'shared_attributes', 'to_dict', 'type']
[2024-12-25 17:04:35,500][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+58][pid|tid:29044|22500]:self.tv=<testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>, type=<class 'testbot.resource.device.device.TVDevice'>
[2024-12-25 17:04:35,500][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+59][pid|tid:29044|22500]:self.tv funcs=['ADBAtomModule', 'AudioAtomModule', 'BluetoothWrapperModule', 'CaptureCardAtomModule', 'ChannelWrapperModule', 'CommSerialAtomModule', 'DemoAtomModule', 'FactoryModeWrapperModule', 'GRPCAtomModule', 'InfraredSerialAtomModule', 'MODULES', 'MultimediaWrapperModule', 'PowerAtomModule', 'PowerWrapperModule', 'SettingsWrapperModule', 'UIWrapperModule', 'WIFIWrapperModule', 'YoutubeWrapperModule', '__abstractmethods__', '__annotations__', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', '_instance', 'add_port', 'client_attributes', 'description', 'from_dict', 'get_comm_instance', 'get_port', 'get_port_count', 'init_resource', 'logger', 'name', 'ports', 'pre_connect', 'register_module', 'reserved', 'server_attributes', 'shared_attributes', 'to_dict', 'type']
[2024-12-25 17:04:35,503][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:执行第1次测试
[2024-12-25 17:04:35,503][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:执行第2次测试
[2024-12-25 17:04:35,504][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:执行第3次测试
[2024-12-25 17:04:35,504][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:执行第4次测试
[2024-12-25 17:04:35,504][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:执行第5次测试
[2024-12-25 17:04:35,505][INFO][TcDemo    ][testbot.app.case.base._write_result:+256][pid|tid:29044|22500]:<测试节点> 【步骤】:Root,【描述】:
<测试节点> 【步骤】:执行测试,【描述】:
        <测试用例> 【步骤】:执行环境检查,【描述】:--------------------------------------------------------------------PASSED
            <测试步骤-1> 【步骤】:执行检查项,【描述】:---------------------------------------------------------------PASSED
                <测试步骤-1> 【步骤】:,【描述】:INFO: 执行检查项:是否可以通过指令串口获取TV IP地址---------------------------------PASSED
                <测试步骤-2> 【步骤】:,【描述】:INFO: 执行检查项:TV端是否可以正常访问公司网络,如Panda、AI服务-------------------------PASSED
                <测试步骤-3> 【步骤】:,【描述】:INFO: 执行检查项:TV端是否可以正常访问国内网络-------------------------------------PASSED
                <测试步骤-4> 【步骤】:,【描述】:INFO: 执行检查项:TV端是否可以正常访问海外网络-------------------------------------PASSED
                <测试步骤-5> 【步骤】:,【描述】:INFO: 执行检查项:通过红外串口发送红外指令是否正常------------------------------------PASSED
                <测试步骤-6> 【步骤】:,【描述】:INFO: 执行检查项:是否能够通过采集卡串口采集图像正常-----------------------------------PASSED
            <测试步骤-1> 【步骤】:执行资源初始化,【描述】:-------------------------------------------------------------PASSED
        <测试用例> 【步骤】:执行测试用例,【描述】:--------------------------------------------------------------------PASSED
            <筛选资源-1> 【步骤】:收集测试资源,【描述】:--------------------------------------------------------------PASSED
                <测试步骤-1> 【步骤】:筛选设备,【描述】:------------------------------------------------------------PASSED
                    <测试步骤-1> 【步骤】:筛选PC设备,【描述】:筛选PC设备成功----------------------------------------------PASSED
                    <测试步骤-2> 【步骤】:筛选TV设备,【描述】:筛选TV设备成功----------------------------------------------PASSED
            <测试步骤-1> 【步骤】:初始化测试,【描述】:---------------------------------------------------------------PASSED
                <测试步骤-1> 【步骤】:检查是否安装和启动grpc服务APK,【描述】:----------------------------------------------PASSED
                    <测试步骤-1> 【步骤】:检查是否执行前置指令,【描述】:--------------------------------------------------PASSED
                    <测试步骤-2> 【步骤】:检查是否安装应用,【描述】:----------------------------------------------------PASSED
                    <测试步骤-3> 【步骤】:检查是否启动grpc服务,【描述】:------------------------------------------------PASSED
            <测试主体-1> 【步骤】:执行次测试,【描述】:---------------------------------------------------------------PASSED
                <测试步骤-1> 【步骤】:执行第1次测试,【描述】:---------------------------------------------------------PASSED
                    <测试步骤-1> 【步骤】:执行前置插件,【描述】:------------------------------------------------------PASSED
                    <前提条件-2> 【步骤】:初始化前置条件,【描述】:-----------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:TV进入主页,【描述】:--------------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:,【描述】:--------------------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:电视TV下有频道,【描述】:------------------------------------------------PASSED
                        <测试步骤-4> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                    <前提条件-3> 【步骤】:执行测试主体,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:进入设置菜单,修改图效、声效为任意值,【描述】:--------------------------------------PASSED
                            <测试步骤-1> 【步骤】:修改图效为任意值,【描述】:--------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:修改声效为任意值,【描述】:--------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:进入VOD下播放视频,【描述】:----------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:HDMI1信源播放视频时,执行恢复出厂设置操作,【描述】:---------------------------------PASSED
                        <测试步骤-4> 【步骤】:完成开机向导后,进入系统,【描述】:--------------------------------------------PASSED
                            <测试步骤-1> 【步骤】:过完开机向导后,电视回到主页,【描述】:--------------------------------------PASSED
                            <测试步骤-2> 【步骤】:执行安装前置指令,【描述】:--------------------------------------------PASSED
                            <测试步骤-3> 【步骤】:安装应用,【描述】:------------------------------------------------PASSED
                            <测试步骤-4> 【步骤】:检查是否启动grpc服务,【描述】:----------------------------------------PASSED
                            <测试步骤-5> 【步骤】:重新初始化grpc,【描述】:-------------------------------------------PASSED
                            <测试步骤-6> 【步骤】:检查设置菜单里用户数据是否恢复默认值,【描述】:----------------------------------PASSED
                        <测试步骤-5> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                        <测试步骤-6> 【步骤】:检查launcher默认模板下的各个Tab页,【描述】:----------------------------------PASSED
                            <测试步骤-1> 【步骤】:切换tv进入标准桌面,【描述】:------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo,【描述】:-------------PASSED
                        <测试步骤-7> 【步骤】:检查HDMI高级标准默认值,【描述】:-------------------------------------------PASSED
                    <后置清理-4> 【步骤】:清理后置条件,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:电视回到主页,【描述】:--------------------------------------------------PASSED
                    <测试步骤-5> 【步骤】:执行后置插件,【描述】:------------------------------------------------------PASSED
                <测试步骤-2> 【步骤】:执行第2次测试,【描述】:---------------------------------------------------------PASSED
                    <测试步骤-1> 【步骤】:执行前置插件,【描述】:------------------------------------------------------PASSED
                    <前提条件-2> 【步骤】:初始化前置条件,【描述】:-----------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:TV进入主页,【描述】:--------------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:,【描述】:--------------------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:电视TV下有频道,【描述】:------------------------------------------------PASSED
                        <测试步骤-4> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                    <前提条件-3> 【步骤】:执行测试主体,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:进入设置菜单,修改图效、声效为任意值,【描述】:--------------------------------------PASSED
                            <测试步骤-1> 【步骤】:修改图效为任意值,【描述】:--------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:修改声效为任意值,【描述】:--------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:进入VOD下播放视频,【描述】:----------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:HDMI1信源播放视频时,执行恢复出厂设置操作,【描述】:---------------------------------PASSED
                        <测试步骤-4> 【步骤】:完成开机向导后,进入系统,【描述】:--------------------------------------------PASSED
                            <测试步骤-1> 【步骤】:过完开机向导后,电视回到主页,【描述】:--------------------------------------PASSED
                            <测试步骤-2> 【步骤】:执行安装前置指令,【描述】:--------------------------------------------PASSED
                            <测试步骤-3> 【步骤】:安装应用,【描述】:------------------------------------------------PASSED
                            <测试步骤-4> 【步骤】:检查是否启动grpc服务,【描述】:----------------------------------------PASSED
                            <测试步骤-5> 【步骤】:重新初始化grpc,【描述】:-------------------------------------------PASSED
                            <测试步骤-6> 【步骤】:检查设置菜单里用户数据是否恢复默认值,【描述】:----------------------------------PASSED
                        <测试步骤-5> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                        <测试步骤-6> 【步骤】:检查launcher默认模板下的各个Tab页,【描述】:----------------------------------PASSED
                            <测试步骤-1> 【步骤】:切换tv进入标准桌面,【描述】:------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo,【描述】:-------------PASSED
                        <测试步骤-7> 【步骤】:检查HDMI高级标准默认值,【描述】:-------------------------------------------PASSED
                    <后置清理-4> 【步骤】:清理后置条件,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:电视回到主页,【描述】:--------------------------------------------------PASSED
                    <测试步骤-5> 【步骤】:执行后置插件,【描述】:------------------------------------------------------PASSED
                <测试步骤-3> 【步骤】:执行第3次测试,【描述】:---------------------------------------------------------PASSED
                    <测试步骤-1> 【步骤】:执行前置插件,【描述】:------------------------------------------------------PASSED
                    <前提条件-2> 【步骤】:初始化前置条件,【描述】:-----------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:TV进入主页,【描述】:--------------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:,【描述】:--------------------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:电视TV下有频道,【描述】:------------------------------------------------PASSED
                        <测试步骤-4> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                    <前提条件-3> 【步骤】:执行测试主体,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:进入设置菜单,修改图效、声效为任意值,【描述】:--------------------------------------PASSED
                            <测试步骤-1> 【步骤】:修改图效为任意值,【描述】:--------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:修改声效为任意值,【描述】:--------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:进入VOD下播放视频,【描述】:----------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:HDMI1信源播放视频时,执行恢复出厂设置操作,【描述】:---------------------------------PASSED
                        <测试步骤-4> 【步骤】:完成开机向导后,进入系统,【描述】:--------------------------------------------PASSED
                            <测试步骤-1> 【步骤】:过完开机向导后,电视回到主页,【描述】:--------------------------------------PASSED
                            <测试步骤-2> 【步骤】:执行安装前置指令,【描述】:--------------------------------------------PASSED
                            <测试步骤-3> 【步骤】:安装应用,【描述】:------------------------------------------------PASSED
                            <测试步骤-4> 【步骤】:检查是否启动grpc服务,【描述】:----------------------------------------PASSED
                            <测试步骤-5> 【步骤】:重新初始化grpc,【描述】:-------------------------------------------PASSED
                            <测试步骤-6> 【步骤】:检查设置菜单里用户数据是否恢复默认值,【描述】:----------------------------------PASSED
                        <测试步骤-5> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                        <测试步骤-6> 【步骤】:检查launcher默认模板下的各个Tab页,【描述】:----------------------------------PASSED
                            <测试步骤-1> 【步骤】:切换tv进入标准桌面,【描述】:------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo,【描述】:-------------PASSED
                        <测试步骤-7> 【步骤】:检查HDMI高级标准默认值,【描述】:-------------------------------------------PASSED
                    <后置清理-4> 【步骤】:清理后置条件,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:电视回到主页,【描述】:--------------------------------------------------PASSED
                    <测试步骤-5> 【步骤】:执行后置插件,【描述】:------------------------------------------------------PASSED
                <测试步骤-4> 【步骤】:执行第4次测试,【描述】:---------------------------------------------------------PASSED
                    <测试步骤-1> 【步骤】:执行前置插件,【描述】:------------------------------------------------------PASSED
                    <前提条件-2> 【步骤】:初始化前置条件,【描述】:-----------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:TV进入主页,【描述】:--------------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:,【描述】:--------------------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:电视TV下有频道,【描述】:------------------------------------------------PASSED
                        <测试步骤-4> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                    <前提条件-3> 【步骤】:执行测试主体,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:进入设置菜单,修改图效、声效为任意值,【描述】:--------------------------------------PASSED
                            <测试步骤-1> 【步骤】:修改图效为任意值,【描述】:--------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:修改声效为任意值,【描述】:--------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:进入VOD下播放视频,【描述】:----------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:HDMI1信源播放视频时,执行恢复出厂设置操作,【描述】:---------------------------------PASSED
                        <测试步骤-4> 【步骤】:完成开机向导后,进入系统,【描述】:--------------------------------------------PASSED
                            <测试步骤-1> 【步骤】:过完开机向导后,电视回到主页,【描述】:--------------------------------------PASSED
                            <测试步骤-2> 【步骤】:执行安装前置指令,【描述】:--------------------------------------------PASSED
                            <测试步骤-3> 【步骤】:安装应用,【描述】:------------------------------------------------PASSED
                            <测试步骤-4> 【步骤】:检查是否启动grpc服务,【描述】:----------------------------------------PASSED
                            <测试步骤-5> 【步骤】:重新初始化grpc,【描述】:-------------------------------------------PASSED
                            <测试步骤-6> 【步骤】:检查设置菜单里用户数据是否恢复默认值,【描述】:----------------------------------PASSED
                        <测试步骤-5> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                        <测试步骤-6> 【步骤】:检查launcher默认模板下的各个Tab页,【描述】:----------------------------------PASSED
                            <测试步骤-1> 【步骤】:切换tv进入标准桌面,【描述】:------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo,【描述】:-------------PASSED
                        <测试步骤-7> 【步骤】:检查HDMI高级标准默认值,【描述】:-------------------------------------------PASSED
                    <后置清理-4> 【步骤】:清理后置条件,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:电视回到主页,【描述】:--------------------------------------------------PASSED
                    <测试步骤-5> 【步骤】:执行后置插件,【描述】:------------------------------------------------------PASSED
                <测试步骤-5> 【步骤】:执行第5次测试,【描述】:---------------------------------------------------------PASSED
                    <测试步骤-1> 【步骤】:执行前置插件,【描述】:------------------------------------------------------PASSED
                    <前提条件-2> 【步骤】:初始化前置条件,【描述】:-----------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:TV进入主页,【描述】:--------------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:,【描述】:--------------------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:电视TV下有频道,【描述】:------------------------------------------------PASSED
                        <测试步骤-4> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                    <前提条件-3> 【步骤】:执行测试主体,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:进入设置菜单,修改图效、声效为任意值,【描述】:--------------------------------------PASSED
                            <测试步骤-1> 【步骤】:修改图效为任意值,【描述】:--------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:修改声效为任意值,【描述】:--------------------------------------------PASSED
                        <测试步骤-2> 【步骤】:进入VOD下播放视频,【描述】:----------------------------------------------PASSED
                        <测试步骤-3> 【步骤】:HDMI1信源播放视频时,执行恢复出厂设置操作,【描述】:---------------------------------PASSED
                        <测试步骤-4> 【步骤】:完成开机向导后,进入系统,【描述】:--------------------------------------------PASSED
                            <测试步骤-1> 【步骤】:过完开机向导后,电视回到主页,【描述】:--------------------------------------PASSED
                            <测试步骤-2> 【步骤】:执行安装前置指令,【描述】:--------------------------------------------PASSED
                            <测试步骤-3> 【步骤】:安装应用,【描述】:------------------------------------------------PASSED
                            <测试步骤-4> 【步骤】:检查是否启动grpc服务,【描述】:----------------------------------------PASSED
                            <测试步骤-5> 【步骤】:重新初始化grpc,【描述】:-------------------------------------------PASSED
                            <测试步骤-6> 【步骤】:检查设置菜单里用户数据是否恢复默认值,【描述】:----------------------------------PASSED
                        <测试步骤-5> 【步骤】:建立WIFI连接,【描述】:------------------------------------------------PASSED
                        <测试步骤-6> 【步骤】:检查launcher默认模板下的各个Tab页,【描述】:----------------------------------PASSED
                            <测试步骤-1> 【步骤】:切换tv进入标准桌面,【描述】:------------------------------------------PASSED
                            <测试步骤-2> 【步骤】:非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo,【描述】:-------------PASSED
                        <测试步骤-7> 【步骤】:检查HDMI高级标准默认值,【描述】:-------------------------------------------PASSED
                    <后置清理-4> 【步骤】:清理后置条件,【描述】:------------------------------------------------------PASSED
                        <测试步骤-1> 【步骤】:电视回到主页,【描述】:--------------------------------------------------PASSED
                    <测试步骤-5> 【步骤】:执行后置插件,【描述】:------------------------------------------------------PASSED
            <测试步骤-1> 【步骤】:清理测试,【描述】:----------------------------------------------------------------PASSED

[2024-12-25 17:04:35,521][INFO][TcDemo    ][testbot.app.case.base._write_result:+258][pid|tid:29044|22500]:{"headline": "Root", "message": "", "timestamp": "2024-12-25 17:04:33", "children": [{"headline": "\u6267\u884c\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u73af\u5883\u68c0\u67e5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u68c0\u67e5\u9879", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "", "message": "INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u53ef\u4ee5\u901a\u8fc7\u6307\u4ee4\u4e32\u53e3\u83b7\u53d6TV IP\u5730\u5740", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_CHECK1-"}, {"headline": "", "message": "INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u516c\u53f8\u7f51\u7edc\uff0c\u5982Panda\u3001AI\u670d\u52a1", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_CHECK1-"}, {"headline": "", "message": "INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u56fd\u5185\u7f51\u7edc", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_CHECK1-"}, {"headline": "", "message": "INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u6d77\u5916\u7f51\u7edc", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_CHECK1-"}, {"headline": "", "message": "INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u901a\u8fc7\u7ea2\u5916\u4e32\u53e3\u53d1\u9001\u7ea2\u5916\u6307\u4ee4\u662f\u5426\u6b63\u5e38", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_CHECK1-"}, {"headline": "", "message": "INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u80fd\u591f\u901a\u8fc7\u91c7\u96c6\u5361\u4e32\u53e3\u91c7\u96c6\u56fe\u50cf\u6b63\u5e38", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_CHECK1-"}], "result": "Passed", "prefix": "RUN_CHECK"}, {"headline": "\u6267\u884c\u8d44\u6e90\u521d\u59cb\u5316", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_INIT"}], "result": "Passed"}, {"headline": "\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6536\u96c6\u6d4b\u8bd5\u8d44\u6e90", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u7b5b\u9009\u8bbe\u5907", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u7b5b\u9009PC\u8bbe\u5907", "message": "\u7b5b\u9009PC\u8bbe\u5907\u6210\u529f", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}, {"headline": "\u7b5b\u9009TV\u8bbe\u5907", "message": "\u7b5b\u9009TV\u8bbe\u5907\u6210\u529f", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "COLLECT_RESOURCE"}, {"headline": "\u521d\u59cb\u5316\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u548c\u542f\u52a8grpc\u670d\u52a1APK", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u68c0\u67e5\u662f\u5426\u6267\u884c\u524d\u7f6e\u6307\u4ee4", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "SETUP_CLASS1-1-"}, {"headline": "\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u5e94\u7528", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "SETUP_CLASS1-1-"}, {"headline": "\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "SETUP_CLASS1-1-"}], "result": "Passed", "prefix": "SETUP_CLASS1-"}], "result": "Passed", "prefix": "SETUP_CLASS"}, {"headline": "\u6267\u884c\u6b21\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u7b2c1\u6b21\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u524d\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_PRE_PLUGINS"}, {"headline": "\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "TV\u8fdb\u5165\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u7535\u89c6TV\u4e0b\u6709\u9891\u9053", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}, {"headline": "\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}], "result": "Passed", "prefix": ""}, {"headline": "\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u5b89\u88c5\u5e94\u7528", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u91cd\u65b0\u521d\u59cb\u5316grpc", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}, {"headline": "\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6e05\u7406\u540e\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "CLEANUP"}, {"headline": "\u6267\u884c\u540e\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_POST_PLUGINS"}], "result": "Passed", "prefix": "TEST-1"}, {"headline": "\u6267\u884c\u7b2c2\u6b21\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u524d\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_PRE_PLUGINS"}, {"headline": "\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "TV\u8fdb\u5165\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u7535\u89c6TV\u4e0b\u6709\u9891\u9053", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}, {"headline": "\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}], "result": "Passed", "prefix": ""}, {"headline": "\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u5b89\u88c5\u5e94\u7528", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u91cd\u65b0\u521d\u59cb\u5316grpc", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}, {"headline": "\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6e05\u7406\u540e\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "CLEANUP"}, {"headline": "\u6267\u884c\u540e\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_POST_PLUGINS"}], "result": "Passed", "prefix": "TEST-2"}, {"headline": "\u6267\u884c\u7b2c3\u6b21\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u524d\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_PRE_PLUGINS"}, {"headline": "\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "TV\u8fdb\u5165\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u7535\u89c6TV\u4e0b\u6709\u9891\u9053", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}, {"headline": "\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}], "result": "Passed", "prefix": ""}, {"headline": "\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u5b89\u88c5\u5e94\u7528", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u91cd\u65b0\u521d\u59cb\u5316grpc", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}, {"headline": "\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6e05\u7406\u540e\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "CLEANUP"}, {"headline": "\u6267\u884c\u540e\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_POST_PLUGINS"}], "result": "Passed", "prefix": "TEST-3"}, {"headline": "\u6267\u884c\u7b2c4\u6b21\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u524d\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_PRE_PLUGINS"}, {"headline": "\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "TV\u8fdb\u5165\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u7535\u89c6TV\u4e0b\u6709\u9891\u9053", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}, {"headline": "\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}], "result": "Passed", "prefix": ""}, {"headline": "\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u5b89\u88c5\u5e94\u7528", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u91cd\u65b0\u521d\u59cb\u5316grpc", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}, {"headline": "\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6e05\u7406\u540e\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "CLEANUP"}, {"headline": "\u6267\u884c\u540e\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_POST_PLUGINS"}], "result": "Passed", "prefix": "TEST-4"}, {"headline": "\u6267\u884c\u7b2c5\u6b21\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u6267\u884c\u524d\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_PRE_PLUGINS"}, {"headline": "\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "TV\u8fdb\u5165\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u7535\u89c6TV\u4e0b\u6709\u9891\u9053", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}, {"headline": "\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "1-"}], "result": "Passed", "prefix": ""}, {"headline": "\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u5b89\u88c5\u5e94\u7528", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u91cd\u65b0\u521d\u59cb\u5316grpc", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}, {"headline": "\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "4-"}], "result": "Passed", "prefix": ""}, {"headline": "\u5efa\u7acbWIFI\u8fde\u63a5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}, {"headline": "\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "6-"}], "result": "Passed", "prefix": ""}, {"headline": "\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "SETUP"}, {"headline": "\u6e05\u7406\u540e\u7f6e\u6761\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [{"headline": "\u7535\u89c6\u56de\u5230\u4e3b\u9875", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": ""}], "result": "Passed", "prefix": "CLEANUP"}, {"headline": "\u6267\u884c\u540e\u7f6e\u63d2\u4ef6", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "RUN_POST_PLUGINS"}], "result": "Passed", "prefix": "TEST-5"}], "result": "Passed", "prefix": "TEST"}, {"headline": "\u6e05\u7406\u6d4b\u8bd5", "message": "", "timestamp": "2024-12-25 17:04:35", "children": [], "result": "Passed", "prefix": "CLEANUP_CLASS"}], "result": "Passed"}]}]}
[2024-12-25 17:04:35,533][INFO][TcDemo    ][testbot.app.case.base._write_result:+262][pid|tid:29044|22500]:结果文件保存到C:\Users\nuanguang.gu\TESTBOT\logs\cases\20241225170435\测试用例列表\result.json
[2024-12-25 17:04:35,539][INFO][TcDemo    ][testbot.app.case.base._write_result:+268][pid|tid:29044|22500]:将HTML结果模板文件D:\codes\testbot\src\testbot\result\result.html拷贝到C:\Users\nuanguang.gu\TESTBOT\logs\cases\20241225170435\测试用例列表\result.html
[2024-12-25 17:04:35,547][INFO][CaseRunner][testbot.testengine.caserunner.__run_test_list:+300][pid|tid:29044|22500]:切换日志路径:C:\Users\nuanguang.gu\TESTBOT\logs\runner\CaseRunner.log -> C:\Users\nuanguang.gu\TESTBOT\logs\runner\CaseRunner.log

Process finished with exit code 0

```

## 验证点结果数据

验证点前缀。区分验证点信息属于SETUP_CLASS、SETUP、TEST还是CLEANUP、CLEANUP_CLASS执行期间。

执行的测试数据文件result.json和result.html,会存放到%TB_HOME%/logs/cases/{时间戳}/{测试用例名称}路径(若设置了TB_HOME环境变量)或%HOMEPATH%/TESTBOT/logs/cases/{时间戳}/{测试用例名称}(若未设置TB_HOME环境变量)下面。

```buildoutcfg
{
    "headline": "Root",
    "message": "",
    "timestamp": "2024-12-12 09:23:14",
    "children": [
        {
            "headline": "执行测试",
            "message": "",
            "timestamp": "2024-12-12 09:23:15",
            "children": [
                {
                    "headline": "执行环境检查",
                    "message": "",
                    "timestamp": "2024-12-12 09:23:15",
                    "children": [
                        {
                            "headline": "执行检查项",
                            "message": "",
                            "timestamp": "2024-12-12 09:23:15",
                            "children": [
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:是否有指令串口",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:是否可以通过指令串口获取TV IP地址",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:TV端是否可以正常访问公司网络,如Panda、AI服务",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:TV端是否可以正常访问国内网络",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:TV端是否可以正常访问海外网络",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:是否有采集卡串口",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:是否能够通过采集卡串口采集图像正常",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:是否有ADB无线连接",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                },
                                {
                                    "headline": "",
                                    "message": "INFO: 执行检查项:是否有gRPC连接",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [],
                                    "result": "Passed",
                                    "prefix": "RUNCHECK1-"
                                }
                            ],
                            "result": "Passed",
                            "prefix": "RUNCHECK"
                        },
                        {
                            "headline": "执行资源初始化",
                            "message": "",
                            "timestamp": "2024-12-12 09:23:15",
                            "children": [],
                            "result": "Passed",
                            "prefix": "RUNINIT"
                        }
                    ],
                    "result": "Passed"
                },
                {
                    "headline": "执行测试用例",
                    "message": "INFO: CNTC94313",
                    "timestamp": "2024-12-12 09:23:15",
                    "children": [
                        {
                            "headline": "收集测试资源",
                            "message": "",
                            "timestamp": "2024-12-12 09:23:15",
                            "children": [
                                {
                                    "headline": "筛选设备",
                                    "message": "",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [
                                        {
                                            "headline": "筛选PC设备",
                                            "message": "筛选PC设备成功",
                                            "timestamp": "2024-12-12 09:23:15",
                                            "children": [],
                                            "result": "Passed",
                                            "prefix": "1-"
                                        },
                                        {
                                            "headline": "筛选TV设备",
                                            "message": "筛选TV设备成功",
                                            "timestamp": "2024-12-12 09:23:15",
                                            "children": [],
                                            "result": "Passed",
                                            "prefix": "1-"
                                        }
                                    ],
                                    "result": "Passed",
                                    "prefix": ""
                                }
                            ],
                            "result": "Passed",
                            "prefix": "COLLECT_RESOURCE"
                        },
                        {
                            "headline": "初始化测试",
                            "message": "",
                            "timestamp": "2024-12-12 09:23:15",
                            "children": [],
                            "result": "Passed",
                            "prefix": "SETUP_CLASS"
                        },
                        {
                            "headline": "执行次测试",
                            "message": "",
                            "timestamp": "2024-12-12 09:23:15",
                            "children": [
                                {
                                    "headline": "执行第0次测试",
                                    "message": "",
                                    "timestamp": "2024-12-12 09:23:15",
                                    "children": [
                                        {
                                            "headline": "初始化前置条件",
                                            "message": "",
                                            "timestamp": "2024-12-12 09:23:15",
                                            "children": [
                                                {
                                                    "headline": "电视TV下有频道",
                                                    "message": "INFO: ",
                                                    "timestamp": "2024-12-12 09:23:15",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "电视连接信号较强的wifi热点",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:15",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                }
                                            ],
                                            "result": "Passed",
                                            "prefix": "SETUP"
                                        },
                                        {
                                            "headline": "执行测试主体",
                                            "message": "",
                                            "timestamp": "2024-12-12 09:23:15",
                                            "children": [
                                                {
                                                    "headline": "进入设置菜单,修改图效、声效为任意值",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:15",
                                                    "children": [
                                                        {
                                                            "headline": "修改图效为任意值",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:15",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "1-"
                                                        },
                                                        {
                                                            "headline": "修改声效为任意值",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "1-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "进入VOD下播放视频",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "HDMI1信源播放视频时,执行恢复出厂设置操作",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "完成开机向导后,进入系统",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [
                                                        {
                                                            "headline": "过完开机向导后,电视回到主页",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "4-"
                                                        },
                                                        {
                                                            "headline": "所有频道节目,视频观看历史被清除",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "4-"
                                                        },
                                                        {
                                                            "headline": "设置菜单里用户数据恢复默认值(仅保留WIFI账号密码)",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "4-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "检查launcher默认模板下的各个Tab页",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [
                                                        {
                                                            "headline": "非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "5-"
                                                        },
                                                        {
                                                            "headline": "非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo(如:雷鸟,乐华,东芝等品牌不能出现TCL的字样,海报中不能出现TCL的logo)",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "5-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "检查HDMI高级标准默认值",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [
                                                        {
                                                            "headline": "HDMI高级标准默认为开(根据项目的PQ tree检查具体默认值:https://confluence.tclking.com/pages/viewpage.action?pageId=79309061)",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "6-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                }
                                            ],
                                            "result": "Passed",
                                            "prefix": "SETUP"
                                        },
                                        {
                                            "headline": "清理后置条件",
                                            "message": "",
                                            "timestamp": "2024-12-12 09:23:16",
                                            "children": [
                                                {
                                                    "headline": "电视断开wifi热点",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                }
                                            ],
                                            "result": "Passed",
                                            "prefix": "CLEANUP"
                                        }
                                    ],
                                    "result": "Passed",
                                    "prefix": "TEST-0"
                                },
                                {
                                    "headline": "执行第1次测试",
                                    "message": "",
                                    "timestamp": "2024-12-12 09:23:16",
                                    "children": [
                                        {
                                            "headline": "初始化前置条件",
                                            "message": "",
                                            "timestamp": "2024-12-12 09:23:16",
                                            "children": [
                                                {
                                                    "headline": "电视TV下有频道",
                                                    "message": "INFO: ",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "电视连接信号较强的wifi热点",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                }
                                            ],
                                            "result": "Passed",
                                            "prefix": "SETUP"
                                        },
                                        {
                                            "headline": "执行测试主体",
                                            "message": "",
                                            "timestamp": "2024-12-12 09:23:16",
                                            "children": [
                                                {
                                                    "headline": "进入设置菜单,修改图效、声效为任意值",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [
                                                        {
                                                            "headline": "修改图效为任意值",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "1-"
                                                        },
                                                        {
                                                            "headline": "修改声效为任意值",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "1-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "进入VOD下播放视频",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "HDMI1信源播放视频时,执行恢复出厂设置操作",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "完成开机向导后,进入系统",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [
                                                        {
                                                            "headline": "过完开机向导后,电视回到主页",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "4-"
                                                        },
                                                        {
                                                            "headline": "所有频道节目,视频观看历史被清除",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "4-"
                                                        },
                                                        {
                                                            "headline": "设置菜单里用户数据恢复默认值(仅保留WIFI账号密码)",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "4-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "检查launcher默认模板下的各个Tab页",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [
                                                        {
                                                            "headline": "非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "5-"
                                                        },
                                                        {
                                                            "headline": "非TCL品牌,各个Tab页下不能出现TCL字样,海报中不能出现TCL的logo(如:雷鸟,乐华,东芝等品牌不能出现TCL的字样,海报中不能出现TCL的logo)",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "5-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                },
                                                {
                                                    "headline": "检查HDMI高级标准默认值",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [
                                                        {
                                                            "headline": "HDMI高级标准默认为开(根据项目的PQ tree检查具体默认值:https://confluence.tclking.com/pages/viewpage.action?pageId=79309061)",
                                                            "message": "",
                                                            "timestamp": "2024-12-12 09:23:16",
                                                            "children": [],
                                                            "result": "Passed",
                                                            "prefix": "6-"
                                                        }
                                                    ],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                }
                                            ],
                                            "result": "Passed",
                                            "prefix": "SETUP"
                                        },
                                        {
                                            "headline": "清理后置条件",
                                            "message": "",
                                            "timestamp": "2024-12-12 09:23:16",
                                            "children": [
                                                {
                                                    "headline": "电视断开wifi热点",
                                                    "message": "",
                                                    "timestamp": "2024-12-12 09:23:16",
                                                    "children": [],
                                                    "result": "Passed",
                                                    "prefix": ""
                                                }
                                            ],
                                            "result": "Passed",
                                            "prefix": "CLEANUP"
                                        }
                                    ],
                                    "result": "Passed",
                                    "prefix": "TEST-1"
                                }
                            ],
                            "result": "Passed",
                            "prefix": "TEST"
                        },
                        {
                            "headline": "清理测试",
                            "message": "",
                            "timestamp": "2024-12-12 09:23:16",
                            "children": [],
                            "result": "Passed",
                            "prefix": "CLEANUP_CLASS"
                        }
                    ],
                    "result": "Passed"
                }
            ]
        }
    ]
}
```

## 验证点HTML报告

在测试日志同目录下,有result.json和result.html文件,用火狐浏览器打开result.html文件,可以查看结果数据result.json的HTML格式的测试报告。


            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.com/nuangua/testbot.git",
    "name": "pytestbot",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.7",
    "maintainer_email": null,
    "keywords": "testbot, testbot-aw, testbot-apps",
    "author": "Nuanguang Gu(Sunny)",
    "author_email": "nuanguang.gu@aliyun.com",
    "download_url": null,
    "platform": null,
    "description": "# TestBot\u6280\u672f\u4ea4\u6d41\u7fa4\n\n![QR](https://gitlab.com/nuangua/testbot/-/raw/main/docs/_static/qr.jpg)\n\n# \u9879\u76ee\u6587\u6863\n\n* [\u9700\u6c42\u6587\u6863](https://gitlab.com/nuangua/testbot/-/wikis/requirement_docs)\n* [\u8bbe\u8ba1\u6587\u6863](https://gitlab.com/nuangua/testbot/-/wikis/design_docs)\n* [\u5f00\u53d1\u6587\u6863](https://gitlab.com/nuangua/testbot/-/wikis/design_docs)\n* [\u4f7f\u7528\u6587\u6863](https://gitlab.com/nuangua/testbot/-/wikis/usage_docs)\n* [\u63a5\u53e3\u6587\u6863](https://nuangua.gitlab.io/testbot/)\n\n# \u5feb\u901f\u5165\u95e8\n\n## \u5b89\u88c5\u6700\u65b0\u7248\u672c\u53ca\u5176\u4f9d\u8d56\u5e93\n\n```buildoutcfg\nPython\u547d\u4ee4\uff1apython -m pip install -U pytestbot\nWindows\u547d\u4ee4\uff1apowershell -command \"Invoke-Command -ScriptBlock ([scriptblock]::Create($((new-object net.webclient).DownloadString('https://gitlab.com/nuangua/testbot/-/raw/main/src/devops/deploy.ps1')))) -ArgumentList 'Install','testbot'\"\nLinux\u547d\u4ee4\uff1acurl -s https://gitlab.com/nuangua/testbot/-/raw/main/src/devops/deploy.sh | bash -s Install testbot\n```\n\n## \u63a5\u53e3\u8c03\u7528\u793a\u4f8b\n\n### \u83b7\u53d6\u8d44\u6e90\u5bf9\u8c61\n\n```\nfrom testbot.resource.pool import ResourcePool\npool = ResourcePool()\nprint(pool.topology)\n```\n\n### \u81ea\u52a8\u53d1\u73b0\u8d44\u6e90\u548c\u7aef\u53e3\n\n```\npool.discover_resources()\nprint(pool.topology)\n```\n\n### \u6309\u6d4b\u8bd5\u7c7b\u578b\u521d\u59cb\u5316\u6d4b\u8bd5\u8d44\u6e90\u6c60\n\n```\nfrom testbot.app.base import TestType\npool.init_resources(test_type=TestType.CHECK_TEST.name)\n```\n\n### \u83b7\u53d6PC\u8bbe\u5907\u5bf9\u8c61\n\n```\npc = pool.collect_device(device_type=\"PCDevice\", count=1)[0]\n```\n\n### \u83b7\u53d6TVDevice\u8bbe\u5907\u5bf9\u8c61\n\n```\ntv = pool.collect_device(device_type=\"TVDevice\", count=1)[0]\n```\n\n### \u68c0\u67e5gRPC\u7aef\u53e3\u4fdd\u6d3b\u72b6\u6001\n\n```\ntv.get_port(type=\"GRPCPort\")._alive\n```\n\n### \u68c0\u67e5TV\u8bbe\u5907\u5bf9\u8c61\u6709\u54ea\u4e9b\u6a21\u5757\u7c7b\u5bf9\u8c61\n\n```\n[attr for attr in tv.__dict__ if attr.endswith('Module')]\n \n>['BluetoothWrapperModule', 'ChannelWrapperModule', 'FactoryModeWrapperModule', 'MultimediaWrapperModule', 'PowerWrapperModule', 'SettingsWrapperModule', 'UIWrapperModule', 'WIFIWrapperModule', 'YoutubeWrapperModule', 'CommSerialWrapperModule', 'DemoAtomModule', 'ADBAtomModule', 'AudioAtomModule', 'CaptureCardAtomModule', 'CommSerialAtomModule', 'GRPCAtomModule', 'InfraredSerialAtomModule', 'PowerAtomModule']\n\n```\n\n### \u68c0\u67e5TV\u5bf9\u8c61\u7684\u63a5\u53e3\u6a21\u5757\u7c7b\u5bf9\u8c61\u6709\u54ea\u4e9b\u63a5\u53e3\u65b9\u6cd5\n\n```\ndir(tv.CommSerialAtomModule)\n```\n\n### \u8c03\u7528TV\u5bf9\u8c61\u7684\u63a5\u53e3\u65b9\u6cd5\n\n```\ntv.CommSerialAtomModule.send_command(data=\"ifconfig\")\nprint(tv.SettingsWrapperModule.connect_wifi(wifi_name=\"lucky_mario_wifi_5G\", wifi_password=\"xm123456\"))\n```\n\n## \u6d4b\u8bd5\u811a\u672c\n\n\u6d4b\u8bd5\u811a\u672c\u4ee3\u7801\u8def\u5f84\uff1asrc/testbot_apps/scripts/unit_test/TcDemo.py\n\n```buildoutcfg\n#!/usr/bin/env python\n# -*- coding: utf-8 -*-\n\"\"\"\n@TC_ID          : CNTC-94402\n@Introduction   : \u6062\u590d\u51fa\u5382\u8bbe\u7f6e\n@Description    :\n@Precondition   :\n1\u3001\u7535\u89c6TV\u4e0b\u6709\u9891\u9053\n2\u3001\u7535\u89c6\u8fde\u63a5\u4fe1\u53f7\u8f83\u5f3a\u7684wifi\u70ed\u70b9\n@Steps:\n1\u3001\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c\n2\u3001\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891\n3\u3001HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c\n4\u3001\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf\n5\u3001\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875\n6\u3001\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c\n@Expected       :\n4.1\u3001\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875\n4.2\u3001\u6240\u6709\u9891\u9053\u8282\u76ee\uff0c\u89c6\u9891\u89c2\u770b\u5386\u53f2\u88ab\u6e05\u9664\n4.3\u3001\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u6062\u590d\u9ed8\u8ba4\u503c\n--\uff08\u4ec5\u4fdd\u7559WIFI\u8d26\u53f7\u5bc6\u7801\uff09--\n5\u3001\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\n\uff08\u5982\uff1a\u96f7\u9e1f\uff0c\u4e50\u534e\uff0c\u4e1c\u829d\u7b49\u54c1\u724c\u4e0d\u80fd\u51fa\u73b0TCL\u7684\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\uff09\n6\u3001HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u4e3a\u5f00\uff08\u6839\u636e\u9879\u76ee\u7684PQ tree\u68c0\u67e5\u5177\u4f53\u9ed8\u8ba4\u503c\uff1ahttps://confluence.tclking.com/pages/viewpage.action?pageId=79309061\uff09\n\u6ce8\uff1a982\u9879\u76eeHDMI\u9ad8\u7ea7\u6807\u51c6\u83dc\u5355\u9ed8\u8ba4\u4e3a\u5173\uff0c\u4e0d\u533a\u5206\u54c1\u724c\uff1b963\u673a\u578b\uff0cTCL\u662f\u5173\u95ed\uff1b\u96f7\u9e1f\u662f\u6253\u5f00\n\"\"\"\n\n__copyright__ = \"Copyright (c) 2024 Nuanguang Gu(Sunny) Reserved\"\n__author__ = \"Nuanguang Gu(Sunny)\"\n__email__ = \"nuanguang.gu@aliyun.com\"\n\nimport os\nimport random\n\nfrom testbot.app.case.base import TestCaseBase\nfrom testbot.app.base import TestType\nfrom testbot.app.case.decorator import case\nfrom testbot.config import TESTBOT_ROOT\nfrom testbot.config.setting import TestSettingBase\n\n\n@case(priority=1, test_type=TestType.CHECK_TEST.name, testcase_id=\"TcDemo\", testcase_name=\"TcDemo\")\nclass TcDemo(TestCaseBase):\n\n    def collect_resource(self, **kwargs):\n        with self.step.start(headline=\"\u7b5b\u9009\u8bbe\u5907\") as step:\n            with step.start(headline=\"\u7b5b\u9009PC\u8bbe\u5907\") as step2:\n                self.pc = self.pool.collect_device(device_type=\"PCDevice\", count=1)[0]\n                if self.pc:\n                    self.logger.info(f\"self.pc={self.pc}, type={type(self.pc)}\")\n                    self.logger.info(f\"self.pc funcs={dir(self.pc)}\")\n                    step2.passed(message=\"\u7b5b\u9009PC\u8bbe\u5907\u6210\u529f\")\n                else:\n                    step2.failed(message=\"\u7b5b\u9009PC\u8bbe\u5907\u5931\u8d25\")\n            with step.start(headline=\"\u7b5b\u9009TV\u8bbe\u5907\") as step2:\n                self.tv = self.pool.collect_device(device_type=\"TVDevice\", count=1)[0]\n                if self.tv:\n                    self.logger.info(f\"self.tv={self.tv}, type={type(self.tv)}\")\n                    self.logger.info(f\"self.tv funcs={dir(self.tv)}\")\n                    step2.passed(message=\"\u7b5b\u9009TV\u8bbe\u5907\u6210\u529f\")\n                else:\n                    step2.failed(message=\"\u7b5b\u9009TV\u8bbe\u5907\u5931\u8d25\")\n        pass\n\n    def setup_class(self, **kwargs):\n        with self.step.start(headline=\"\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u548c\u542f\u52a8grpc\u670d\u52a1APK\", message=\"\") as step:\n            with step.start(headline=\"\u68c0\u67e5\u662f\u5426\u6267\u884c\u524d\u7f6e\u6307\u4ee4\", message=\"\") as step2:\n                pass\n            with step.start(headline=\"\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u5e94\u7528\", message=\"\") as step2:\n                pass\n            with step.start(headline=\"\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1\", message=\"\") as step2:\n                pass\n\n    def setup(self, **kwargs):\n        with self.step.start(headline=\"TV\u8fdb\u5165\u4e3b\u9875\") as step:\n            pass\n        with self.step.start(headline=\"\", message=\"\") as step:\n            pass\n        with self.step.start(headline=\"\u7535\u89c6TV\u4e0b\u6709\u9891\u9053\") as step:\n            pass\n        with self.step.start(headline=\"\u5efa\u7acbWIFI\u8fde\u63a5\") as step:\n            pass\n\n    def test(self, **kwargs):\n        with self.step.start(headline=\"\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c\") as step:\n            with step.start(headline=\"\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c\") as step2:\n                pass\n            with step.start(headline=\"\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c\") as step2:\n                pass\n        with self.step.start(headline=\"\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891\") as step:\n            pass\n        with self.step.start(headline=\"HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c\") as step:\n            pass\n        with self.step.start(headline=\"\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf\") as step:\n            with step.start(headline=\"\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875\") as step2:\n                pass\n            with step.start(headline=\"\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4\") as step2:\n                pass\n            with step.start(headline=\"\u5b89\u88c5\u5e94\u7528\") as step2:\n                pass\n            with step.start(headline=\"\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1\", message=\"\") as step2:\n                pass\n            with step.start(headline=\"\u91cd\u65b0\u521d\u59cb\u5316grpc\", message=\"\") as step2:\n                pass\n            with self.step.start(headline=\"\u5efa\u7acbWIFI\u8fde\u63a5\") as step2:\n                pass\n            with step.start(headline=\"\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c\") as step2:\n                pass\n        with self.step.start(headline=\"\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875\") as step:\n            with step.start(headline=\"\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762\") as step2:\n                pass\n            with step.start(headline=\"\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\") as step2:\n                pass\n        with self.step.start(headline=\"\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c\") as step:\n            pass\n\n    def cleanup(self, **kwargs):\n        with self.step.start(headline=\"\u7535\u89c6\u56de\u5230\u4e3b\u9875\") as step:\n            pass\n\n    class TcDemoSetting(TestSettingBase):\n        case_setting1 = \"setting1\"\n        case_setting2 = 10\n        TIMEOUT = 60\n\n```\n\n## \u6d4b\u8bd5\u811a\u672c\u914d\u7f6e\u6587\u4ef6\n\n```buildoutcfg\n{\n    \"case_setting1\": \"setting1\",\n    \"case_setting2\": 10,\n    \"TIMEOUT\": 60,\n    \"new_var\": \"Hello World\"\n}\n```\n\n## \u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u914d\u7f6e\u6587\u4ef6\n\n```buildoutcfg\n{\n    \"name\": \"\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\",\n    \"description\": \"\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u6e05\u5355\",\n    \"setting_path\": \"\",\n    \"iterations\": 5,\n    \"cases\": [\n        \"testbot_apps.scripts.unit_test.TcDemo.TcDemo\"\n    ],\n    \"sublist\": []\n}\n```\n\n## \u6d4b\u8bd5\u8d44\u6e90\u6c60\u914d\u7f6e\u6587\u4ef6\n\n\u6d4b\u8bd5\u8d44\u6e90\u6c60\u914d\u7f6e\u6587\u4ef6\uff0c\u76ee\u524d\u9700\u8981\u624b\u52a8\u914d\u7f6e\uff0c\u540e\u7eed\u8bbe\u5907\u548c\u7aef\u53e3\u81ea\u52a8\u53d1\u73b0\u529f\u80fd\u5b9e\u73b0\u540e\uff0c\u5373\u53ef\u81ea\u52a8\u751f\u6210\u3001\u4e0d\u518d\u9700\u8981\u624b\u52a8\u914d\u7f6e\u3002\n\n```buildoutcfg\n{\n    \"devices\": {\n        \"M70JP90W\": {\n            \"name\": \"M70JP90W\",\n            \"type\": \"PCDevice\",\n            \"description\": null,\n            \"pre_connect\": false,\n            \"client_attributes\": {},\n            \"shared_attributes\": {},\n            \"server_attributes\": {},\n            \"reserved\": false,\n            \"ports\": {\n                \"COM7\": {\n                    \"name\": \"COM7\",\n                    \"type\": \"CommSerialPort\",\n                    \"baud_rate\": 115200,\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"CommSerialPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"COM18\": {\n                    \"name\": \"COM18\",\n                    \"type\": \"InfraredSerialPort\",\n                    \"baud_rate\": 115200,\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"InfraredSerialPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"0\": {\n                    \"name\": \"0\",\n                    \"type\": \"VideoStreamSerialPort\",\n                    \"fps\": 30.0,\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"VideoStreamSerialPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"172.24.32.28:5555\": {\n                    \"name\": \"172.24.32.28:5555\",\n                    \"type\": \"AdbPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"AdbPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"172.24.32.28:60000\": {\n                    \"name\": \"172.24.32.28:60000\",\n                    \"type\": \"GRPCPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"GRPCPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"GPIO12\": {\n                    \"name\": \"GPIO12\",\n                    \"type\": \"PowerPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"PowerPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"GPIO26\": {\n                    \"name\": \"GPIO26\",\n                    \"type\": \"HDMIPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"HDMIPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"GPIO21\": {\n                    \"name\": \"GPIO21\",\n                    \"type\": \"EthernetPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [],\n                    \"_instance\": null\n                },\n                \"GPIO5/6\": {\n                    \"name\": \"GPIO5/6\",\n                    \"type\": \"USBPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"M70JP90W\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"5C0AD0760BB0C50AD\",\n                            \"port\": \"USBPort\"\n                        }\n                    ],\n                    \"_instance\": null\n                }\n            },\n            \"_instance\": null\n        },\n        \"5C0AD0760BB0C50AD\": {\n            \"name\": \"5C0AD0760BB0C50AD\",\n            \"type\": \"TVDevice\",\n            \"description\": null,\n            \"pre_connect\": false,\n            \"client_attributes\": {},\n            \"shared_attributes\": {},\n            \"server_attributes\": {},\n            \"reserved\": false,\n            \"ports\": {\n                \"CommSerialPort\": {\n                    \"name\": \"CommSerialPort\",\n                    \"type\": \"CommSerialPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"COM7\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"InfraredSerialPort\": {\n                    \"name\": \"InfraredSerialPort\",\n                    \"type\": \"InfraredSerialPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"COM18\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"VideoStreamSerialPort\": {\n                    \"name\": \"VideoStreamSerialPort\",\n                    \"type\": \"VideoStreamSerialPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"0\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"AdbPort\": {\n                    \"name\": \"AdbPort\",\n                    \"type\": \"AdbPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"172.24.32.28:5555\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"GRPCPort\": {\n                    \"name\": \"GRPCPort\",\n                    \"type\": \"GRPCPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"172.24.32.28:60000\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"PowerPort\": {\n                    \"name\": \"PowerPort\",\n                    \"type\": \"PowerPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"GPIO12\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"HDMIPort\": {\n                    \"name\": \"HDMIPort\",\n                    \"type\": \"HDMIPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"GPIO26\"\n                        }\n                    ],\n                    \"_instance\": null\n                },\n                \"EthernetPort\": {\n                    \"name\": \"EthernetPort\",\n                    \"type\": \"EthernetPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [],\n                    \"_instance\": null\n                },\n                \"USBPort\": {\n                    \"name\": \"USBPort\",\n                    \"type\": \"USBPort\",\n                    \"description\": null,\n                    \"pre_connect\": false,\n                    \"client_attributes\": {},\n                    \"shared_attributes\": {},\n                    \"server_attributes\": {},\n                    \"reserved\": false,\n                    \"parent\": \"5C0AD0760BB0C50AD\",\n                    \"remote_ports\": [\n                        {\n                            \"device\": \"M70JP90W\",\n                            \"port\": \"GPIO5/6\"\n                        }\n                    ],\n                    \"_instance\": null\n                }\n            },\n            \"_instance\": null\n        }\n    },\n    \"info\": {},\n    \"reserved\": null\n}\n```\n\n## \u6267\u884c\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\n\n* \u4ee5\u547d\u4ee4\u65b9\u5f0f\u6267\u884c\n\n\u53c2\u6570testlist\u6307\u5b9a\u4e86\u8981\u6267\u884c\u7684\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\u914d\u7f6e\u6587\u4ef6\uff0c\u53c2\u6570resource\u6307\u5b9a\u4e86\u624b\u52a8\u914d\u7f6e\u7684\u6d4b\u8bd5\u8d44\u6e90\u6c60\u914d\u7f6e\u6587\u4ef6\u3002\n\n```buildoutcfg\npython -m testbot.cli runner test --testlist src/testbot_apps/scripts/unit_test/TCList.json --resource src/testbot_apps/scripts/unit_test/ResourcePool.json\n```\n\n## \u6d4b\u8bd5\u65e5\u5fd7\n\n\u6267\u884c\u7684\u6d4b\u8bd5\u65e5\u5fd7\uff0c\u4f1a\u5b58\u653e\u5230%TB_HOME%/logs\u8def\u5f84\uff08\u82e5\u8bbe\u7f6e\u4e86TB_HOME\u73af\u5883\u53d8\u91cf\uff09\u6216%HOMEPATH%/TESTBOT/logs\uff08\u82e5\u672a\u8bbe\u7f6eTB_HOME\u73af\u5883\u53d8\u91cf\uff09\u4e0b\u9762\u3002\n\n```buildoutcfg\nC:\\Python38\\python.exe D:/codes/testbot/src/testbot/cli.py runner test --testlist src/testbot_apps/scripts/unit_test/TCList.json --resource src/testbot_apps/scripts/unit_test/ResourcePool.json\n[2024-12-25 17:04:33,829][INFO][CaseRunner][testbot.testengine.caserunner.__init__  :+76][pid|tid:29044|9332]:\u6267\u884c\u5668\u88c5\u8f7d\u5b8c\u6bd5\n[2024-12-25 17:04:33,830][INFO][Resource  ][testbot.resource.pool.load      :+141][pid|tid:29044|9332]:Entering ResourcePool.load...\n[2024-12-25 17:04:33,831][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.device.device.PCDevice'>\u63a5\u53e3\u6a21\u5757\u7c7b['testbot_aw.modules.atom.device.PCDevice.network.NetworkAtomModule']\n[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,841][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,842][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.device.device.TVDevice'>\u63a5\u53e3\u6a21\u5757\u7c7b['testbot_aw.modules.wrapper.device.TCLTVDevice.bluetooth.BluetoothWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.channel.ChannelWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.factory_mode.FactoryModeWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.multimedia.MultimediaWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.power.PowerWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.settings.SettingsWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.ui.UIWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.wifi.WIFIWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.youtube.YoutubeWrapperModule', 'testbot_aw.modules.wrapper.device.TCLTVDevice.settings.SettingsWrapperModule', 'testbot_aw.modules.atom.device.TCLTVDevice.demo.DemoAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.adb.ADBAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.audio.AudioAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.capture_card.CaptureCardAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.commserial.CommSerialAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.grpc.GRPCAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.infraserial.InfraredSerialAtomModule', 'testbot_aw.modules.atom.device.TCLTVDevice.power.PowerAtomModule']\n[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+274][pid|tid:29044|9332]:Initialize Device...\n[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,929][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.resource.__init__  :+72][pid|tid:29044|9332]:\u52a0\u8f7d<class 'testbot.resource.resource.Port'>\u63a5\u53e3\u6a21\u5757\u7c7b[]\n[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.pool.load      :+180][pid|tid:29044|9332]:topology={'M70JP90W': <testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, '5C0AD0760BB0C50AD': <testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>}\n[2024-12-25 17:04:33,930][INFO][Resource  ][testbot.resource.pool.load      :+181][pid|tid:29044|9332]:Exiting ResourcePool.load...\n[2024-12-25 17:04:33,930][INFO][CaseRunner][testbot.testengine.caserunner.load_resource:+111][pid|tid:29044|9332]:\u6d4b\u8bd5\u8d44\u6e90\u88c5\u8f7d\u5b8c\u6bd5\n[2024-12-25 17:04:33,932][INFO][CaseRunner][testbot.testengine.caserunner.load_test :+146][pid|tid:29044|9332]:\u6b63\u5728\u52a0\u8f7d\u7528\u4f8b\u6a21\u5757: testbot_apps.scripts.unit_test.TcDemo...\n[2024-12-25 17:04:33,932][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+156][pid|tid:29044|9332]:################################################################################\nC:\\Python38\\lib\\site-packages\\pkginfo\\installed.py:62: UserWarning: No PKG-INFO found for package: testbot\n  warnings.warn('No PKG-INFO found for package: %s' % self.package_name)\nC:\\Python38\\lib\\site-packages\\pkginfo\\distribution.py:178: UnknownMetadataVersion: Unknown metadata version: None\n  warnings.warn(UnknownMetadataVersion(self.metadata_version))\n[2024-12-25 17:04:34,436][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+170][pid|tid:29044|9332]:############## testbot\u6a21\u5757 \u3010Version\u3011:None,\u3010\u6982\u8981\u3011:None,\u3010\u5b89\u88c5\u8def\u5f84\u3011:None ##############\nC:\\Python38\\lib\\site-packages\\pkginfo\\installed.py:62: UserWarning: No PKG-INFO found for package: testbot_aw\n  warnings.warn('No PKG-INFO found for package: %s' % self.package_name)\n[2024-12-25 17:04:34,938][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+170][pid|tid:29044|9332]:############## testbot_aw\u6a21\u5757 \u3010Version\u3011:None,\u3010\u6982\u8981\u3011:None,\u3010\u5b89\u88c5\u8def\u5f84\u3011:None ##############\nC:\\Python38\\lib\\site-packages\\pkginfo\\installed.py:62: UserWarning: No PKG-INFO found for package: testbot_apps\n  warnings.warn('No PKG-INFO found for package: %s' % self.package_name)\n[2024-12-25 17:04:35,455][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+170][pid|tid:29044|9332]:############## testbot_apps\u6a21\u5757 \u3010Version\u3011:None,\u3010\u6982\u8981\u3011:None,\u3010\u5b89\u88c5\u8def\u5f84\u3011:None ##############\n[2024-12-25 17:04:35,455][INFO][CaseRunner][testbot.testengine.caserunner.print_module_info:+171][pid|tid:29044|9332]:################################################################################\n[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+275][pid|tid:29044|9332]:pool.topology = {'M70JP90W': <testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, '5C0AD0760BB0C50AD': <testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>}\n[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+277][pid|tid:29044|9332]:test_type = CHECK_TEST\n[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+292][pid|tid:29044|9332]:\u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u53ef\u4ee5\u901a\u8fc7\u6307\u4ee4\u4e32\u53e3\u83b7\u53d6TV IP\u5730\u5740\n[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+297][pid|tid:29044|9332]:\u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u516c\u53f8\u7f51\u7edc\uff0c\u5982Panda\u3001AI\u670d\u52a1\n[2024-12-25 17:04:35,475][INFO][CaseRunner][testbot.app.base.check_env :+302][pid|tid:29044|9332]:\u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u56fd\u5185\u7f51\u7edc\n[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.check_env :+307][pid|tid:29044|9332]:\u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u6d77\u5916\u7f51\u7edc\n[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.check_env :+318][pid|tid:29044|9332]:\u6267\u884c\u68c0\u67e5\u9879\uff1a\u901a\u8fc7\u7ea2\u5916\u4e32\u53e3\u53d1\u9001\u7ea2\u5916\u6307\u4ee4\u662f\u5426\u6b63\u5e38\n[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.check_env :+329][pid|tid:29044|9332]:\u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u80fd\u591f\u901a\u8fc7\u91c7\u96c6\u5361\u4e32\u53e3\u91c7\u96c6\u56fe\u50cf\u6b63\u5e38\n[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.init_resource_pool:+258][pid|tid:29044|9332]:pool.topology = {'M70JP90W': <testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, '5C0AD0760BB0C50AD': <testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>}\n[2024-12-25 17:04:35,476][INFO][CaseRunner][testbot.app.base.init_resource_pool:+260][pid|tid:29044|9332]:test_type = CHECK_TEST\n[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+138][pid|tid:29044|9332]:\u521d\u59cb\u5316\u6d4b\u8bd5\u8d44\u6e90:PCDevice(name=M70JP90W,type=PCDevice).init_resource\n[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+140][pid|tid:29044|9332]:\u68c0\u67e5\u9879\u5217\u8868\uff1a[<CheckItem.COMM_SERIAL_PORT_CHECK__HAS_IP: 1>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET: 2>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET: 3>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET: 4>, <CheckItem.INFRA_SERIAL_PORT_CHECK__NORMAL: 17>, <CheckItem.CAP_SERIAL_PORT_CHECK__NORMAL: 33>]\uff0c\u6d4b\u8bd5\u7c7b\u578b\uff1aCHECK_TEST\n[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__HAS_IP\n[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET\n[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET\n[2024-12-25 17:04:35,476][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET\n[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aINFRA_SERIAL_PORT_CHECK__NORMAL\n[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCAP_SERIAL_PORT_CHECK__NORMAL\n[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+138][pid|tid:29044|9332]:\u521d\u59cb\u5316\u6d4b\u8bd5\u8d44\u6e90:TVDevice(name=5C0AD0760BB0C50AD,type=TVDevice).init_resource\n[2024-12-25 17:04:35,477][INFO][Resource  ][testbot.resource.resource.init_resource:+140][pid|tid:29044|9332]:\u68c0\u67e5\u9879\u5217\u8868\uff1a[<CheckItem.COMM_SERIAL_PORT_CHECK__HAS_IP: 1>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET: 2>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET: 3>, <CheckItem.COMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET: 4>, <CheckItem.INFRA_SERIAL_PORT_CHECK__NORMAL: 17>, <CheckItem.CAP_SERIAL_PORT_CHECK__NORMAL: 33>]\uff0c\u6d4b\u8bd5\u7c7b\u578b\uff1aCHECK_TEST\n[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__HAS_IP\n[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__ACCESS_INTERNAL_NET\n[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__ACCESS_DOMESTIC_NET\n[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCOMM_SERIAL_PORT_CHECK__ACCESS_OVERSEAS_NET\n[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aINFRA_SERIAL_PORT_CHECK__NORMAL\n[2024-12-25 17:04:35,488][INFO][Resource  ][testbot.resource.resource.init_resource:+142][pid|tid:29044|9332]:\u68c0\u67e5\u9879\uff1aCAP_SERIAL_PORT_CHECK__NORMAL\n[2024-12-25 17:04:35,490][INFO][CaseRunner][testbot.testengine.caserunner.set_test_list:+183][pid|tid:29044|9332]:\u6d4b\u8bd5\u5217\u8868\u88c5\u8f7d\u5b8c\u6bd5\n[2024-12-25 17:04:35,498][INFO][CaseRunner][testbot.testengine.caserunner.__run_test_list:+294][pid|tid:29044|22500]:\u5207\u6362\u65e5\u5fd7\u8def\u5f84\uff1aC:\\Users\\nuanguang.gu\\TESTBOT\\logs\\runner\\CaseRunner.log -> C:\\Users\\nuanguang.gu\\TESTBOT\\logs\\cases\\20241225170435\\\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\\TcDemo.log\n[2024-12-25 17:04:35,498][INFO][TcDemo    ][testbot.app.case.precondition.is_meet   :+37][pid|tid:29044|22500]:\u6d4b\u8bd5\u7528\u4f8b\u7684\u7c7b\u578b\u5fc5\u987b\u662fCOMMON_TEST\n[2024-12-25 17:04:35,498][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+50][pid|tid:29044|22500]:self.pc=<testbot.resource.device.device.PCDevice object at 0x00000200DD994700>, type=<class 'testbot.resource.device.device.PCDevice'>\n[2024-12-25 17:04:35,499][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+51][pid|tid:29044|22500]:self.pc funcs=['MODULES', 'NetworkAtomModule', '__abstractmethods__', '__annotations__', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', '_instance', 'add_port', 'client_attributes', 'description', 'from_dict', 'get_comm_instance', 'get_port', 'get_port_count', 'init_resource', 'logger', 'name', 'ports', 'pre_connect', 'register_module', 'reserved', 'server_attributes', 'shared_attributes', 'to_dict', 'type']\n[2024-12-25 17:04:35,500][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+58][pid|tid:29044|22500]:self.tv=<testbot.resource.device.device.TVDevice object at 0x00000200DD9A7040>, type=<class 'testbot.resource.device.device.TVDevice'>\n[2024-12-25 17:04:35,500][INFO][TcDemo    ][testbot_apps.scripts.unit_test.TcDemo.collect_resource:+59][pid|tid:29044|22500]:self.tv funcs=['ADBAtomModule', 'AudioAtomModule', 'BluetoothWrapperModule', 'CaptureCardAtomModule', 'ChannelWrapperModule', 'CommSerialAtomModule', 'DemoAtomModule', 'FactoryModeWrapperModule', 'GRPCAtomModule', 'InfraredSerialAtomModule', 'MODULES', 'MultimediaWrapperModule', 'PowerAtomModule', 'PowerWrapperModule', 'SettingsWrapperModule', 'UIWrapperModule', 'WIFIWrapperModule', 'YoutubeWrapperModule', '__abstractmethods__', '__annotations__', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_abc_impl', '_instance', 'add_port', 'client_attributes', 'description', 'from_dict', 'get_comm_instance', 'get_port', 'get_port_count', 'init_resource', 'logger', 'name', 'ports', 'pre_connect', 'register_module', 'reserved', 'server_attributes', 'shared_attributes', 'to_dict', 'type']\n[2024-12-25 17:04:35,503][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:\u6267\u884c\u7b2c1\u6b21\u6d4b\u8bd5\n[2024-12-25 17:04:35,503][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:\u6267\u884c\u7b2c2\u6b21\u6d4b\u8bd5\n[2024-12-25 17:04:35,504][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:\u6267\u884c\u7b2c3\u6b21\u6d4b\u8bd5\n[2024-12-25 17:04:35,504][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:\u6267\u884c\u7b2c4\u6b21\u6d4b\u8bd5\n[2024-12-25 17:04:35,504][INFO][TcDemo    ][testbot.app.case.base._run_case :+168][pid|tid:29044|22500]:\u6267\u884c\u7b2c5\u6b21\u6d4b\u8bd5\n[2024-12-25 17:04:35,505][INFO][TcDemo    ][testbot.app.case.base._write_result:+256][pid|tid:29044|22500]:<\u6d4b\u8bd5\u8282\u70b9> \u3010\u6b65\u9aa4\u3011:Root,\u3010\u63cf\u8ff0\u3011:\n<\u6d4b\u8bd5\u8282\u70b9> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:\n        <\u6d4b\u8bd5\u7528\u4f8b> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u73af\u5883\u68c0\u67e5,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------------------PASSED\n            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u68c0\u67e5\u9879,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u53ef\u4ee5\u901a\u8fc7\u6307\u4ee4\u4e32\u53e3\u83b7\u53d6TV IP\u5730\u5740---------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u516c\u53f8\u7f51\u7edc\uff0c\u5982Panda\u3001AI\u670d\u52a1-------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u56fd\u5185\u7f51\u7edc-------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u6d77\u5916\u7f51\u7edc-------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u901a\u8fc7\u7ea2\u5916\u4e32\u53e3\u53d1\u9001\u7ea2\u5916\u6307\u4ee4\u662f\u5426\u6b63\u5e38------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u80fd\u591f\u901a\u8fc7\u91c7\u96c6\u5361\u4e32\u53e3\u91c7\u96c6\u56fe\u50cf\u6b63\u5e38-----------------------------------PASSED\n            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u8d44\u6e90\u521d\u59cb\u5316,\u3010\u63cf\u8ff0\u3011:-------------------------------------------------------------PASSED\n        <\u6d4b\u8bd5\u7528\u4f8b> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------------------PASSED\n            <\u7b5b\u9009\u8d44\u6e90-1> \u3010\u6b65\u9aa4\u3011:\u6536\u96c6\u6d4b\u8bd5\u8d44\u6e90,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u7b5b\u9009\u8bbe\u5907,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u7b5b\u9009PC\u8bbe\u5907,\u3010\u63cf\u8ff0\u3011:\u7b5b\u9009PC\u8bbe\u5907\u6210\u529f----------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u7b5b\u9009TV\u8bbe\u5907,\u3010\u63cf\u8ff0\u3011:\u7b5b\u9009TV\u8bbe\u5907\u6210\u529f----------------------------------------------PASSED\n            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u521d\u59cb\u5316\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u548c\u542f\u52a8grpc\u670d\u52a1APK,\u3010\u63cf\u8ff0\u3011:----------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u6267\u884c\u524d\u7f6e\u6307\u4ee4,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u5b89\u88c5\u5e94\u7528,\u3010\u63cf\u8ff0\u3011:----------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n            <\u6d4b\u8bd5\u4e3b\u4f53-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6b21\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u7b2c1\u6b21\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u524d\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-2> \u3010\u6b65\u9aa4\u3011:\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:-----------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:TV\u8fdb\u5165\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6TV\u4e0b\u6709\u9891\u9053,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-3> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891,\u3010\u63cf\u8ff0\u3011:----------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c,\u3010\u63cf\u8ff0\u3011:---------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u5b89\u88c5\u5e94\u7528,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1,\u3010\u63cf\u8ff0\u3011:----------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u91cd\u65b0\u521d\u59cb\u5316grpc,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762,\u3010\u63cf\u8ff0\u3011:------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo,\u3010\u63cf\u8ff0\u3011:-------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-7> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                    <\u540e\u7f6e\u6e05\u7406-4> \u3010\u6b65\u9aa4\u3011:\u6e05\u7406\u540e\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u540e\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u7b2c2\u6b21\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u524d\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-2> \u3010\u6b65\u9aa4\u3011:\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:-----------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:TV\u8fdb\u5165\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6TV\u4e0b\u6709\u9891\u9053,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-3> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891,\u3010\u63cf\u8ff0\u3011:----------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c,\u3010\u63cf\u8ff0\u3011:---------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u5b89\u88c5\u5e94\u7528,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1,\u3010\u63cf\u8ff0\u3011:----------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u91cd\u65b0\u521d\u59cb\u5316grpc,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762,\u3010\u63cf\u8ff0\u3011:------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo,\u3010\u63cf\u8ff0\u3011:-------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-7> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                    <\u540e\u7f6e\u6e05\u7406-4> \u3010\u6b65\u9aa4\u3011:\u6e05\u7406\u540e\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u540e\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u7b2c3\u6b21\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u524d\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-2> \u3010\u6b65\u9aa4\u3011:\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:-----------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:TV\u8fdb\u5165\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6TV\u4e0b\u6709\u9891\u9053,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-3> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891,\u3010\u63cf\u8ff0\u3011:----------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c,\u3010\u63cf\u8ff0\u3011:---------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u5b89\u88c5\u5e94\u7528,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1,\u3010\u63cf\u8ff0\u3011:----------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u91cd\u65b0\u521d\u59cb\u5316grpc,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762,\u3010\u63cf\u8ff0\u3011:------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo,\u3010\u63cf\u8ff0\u3011:-------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-7> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                    <\u540e\u7f6e\u6e05\u7406-4> \u3010\u6b65\u9aa4\u3011:\u6e05\u7406\u540e\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u540e\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u7b2c4\u6b21\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u524d\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-2> \u3010\u6b65\u9aa4\u3011:\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:-----------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:TV\u8fdb\u5165\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6TV\u4e0b\u6709\u9891\u9053,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-3> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891,\u3010\u63cf\u8ff0\u3011:----------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c,\u3010\u63cf\u8ff0\u3011:---------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u5b89\u88c5\u5e94\u7528,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1,\u3010\u63cf\u8ff0\u3011:----------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u91cd\u65b0\u521d\u59cb\u5316grpc,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762,\u3010\u63cf\u8ff0\u3011:------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo,\u3010\u63cf\u8ff0\u3011:-------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-7> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                    <\u540e\u7f6e\u6e05\u7406-4> \u3010\u6b65\u9aa4\u3011:\u6e05\u7406\u540e\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u540e\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u7b2c5\u6b21\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:---------------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u524d\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-2> \u3010\u6b65\u9aa4\u3011:\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:-----------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:TV\u8fdb\u5165\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6TV\u4e0b\u6709\u9891\u9053,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                    <\u524d\u63d0\u6761\u4ef6-3> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891,\u3010\u63cf\u8ff0\u3011:----------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c,\u3010\u63cf\u8ff0\u3011:---------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u5b89\u88c5\u524d\u7f6e\u6307\u4ee4,\u3010\u63cf\u8ff0\u3011:--------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-3> \u3010\u6b65\u9aa4\u3011:\u5b89\u88c5\u5e94\u7528,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-4> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u662f\u5426\u542f\u52a8grpc\u670d\u52a1,\u3010\u63cf\u8ff0\u3011:----------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u91cd\u65b0\u521d\u59cb\u5316grpc,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u662f\u5426\u6062\u590d\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u5efa\u7acbWIFI\u8fde\u63a5,\u3010\u63cf\u8ff0\u3011:------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-6> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875,\u3010\u63cf\u8ff0\u3011:----------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u5207\u6362tv\u8fdb\u5165\u6807\u51c6\u684c\u9762,\u3010\u63cf\u8ff0\u3011:------------------------------------------PASSED\n                            <\u6d4b\u8bd5\u6b65\u9aa4-2> \u3010\u6b65\u9aa4\u3011:\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo,\u3010\u63cf\u8ff0\u3011:-------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-7> \u3010\u6b65\u9aa4\u3011:\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c,\u3010\u63cf\u8ff0\u3011:-------------------------------------------PASSED\n                    <\u540e\u7f6e\u6e05\u7406-4> \u3010\u6b65\u9aa4\u3011:\u6e05\u7406\u540e\u7f6e\u6761\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n                        <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u7535\u89c6\u56de\u5230\u4e3b\u9875,\u3010\u63cf\u8ff0\u3011:--------------------------------------------------PASSED\n                    <\u6d4b\u8bd5\u6b65\u9aa4-5> \u3010\u6b65\u9aa4\u3011:\u6267\u884c\u540e\u7f6e\u63d2\u4ef6,\u3010\u63cf\u8ff0\u3011:------------------------------------------------------PASSED\n            <\u6d4b\u8bd5\u6b65\u9aa4-1> \u3010\u6b65\u9aa4\u3011:\u6e05\u7406\u6d4b\u8bd5,\u3010\u63cf\u8ff0\u3011:----------------------------------------------------------------PASSED\n\n[2024-12-25 17:04:35,521][INFO][TcDemo    ][testbot.app.case.base._write_result:+258][pid|tid:29044|22500]:{\"headline\": \"Root\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:33\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u73af\\u5883\\u68c0\\u67e5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u68c0\\u67e5\\u9879\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\", \"message\": \"INFO: \\u6267\\u884c\\u68c0\\u67e5\\u9879\\uff1a\\u662f\\u5426\\u53ef\\u4ee5\\u901a\\u8fc7\\u6307\\u4ee4\\u4e32\\u53e3\\u83b7\\u53d6TV IP\\u5730\\u5740\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_CHECK1-\"}, {\"headline\": \"\", \"message\": \"INFO: \\u6267\\u884c\\u68c0\\u67e5\\u9879\\uff1aTV\\u7aef\\u662f\\u5426\\u53ef\\u4ee5\\u6b63\\u5e38\\u8bbf\\u95ee\\u516c\\u53f8\\u7f51\\u7edc\\uff0c\\u5982Panda\\u3001AI\\u670d\\u52a1\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_CHECK1-\"}, {\"headline\": \"\", \"message\": \"INFO: \\u6267\\u884c\\u68c0\\u67e5\\u9879\\uff1aTV\\u7aef\\u662f\\u5426\\u53ef\\u4ee5\\u6b63\\u5e38\\u8bbf\\u95ee\\u56fd\\u5185\\u7f51\\u7edc\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_CHECK1-\"}, {\"headline\": \"\", \"message\": \"INFO: \\u6267\\u884c\\u68c0\\u67e5\\u9879\\uff1aTV\\u7aef\\u662f\\u5426\\u53ef\\u4ee5\\u6b63\\u5e38\\u8bbf\\u95ee\\u6d77\\u5916\\u7f51\\u7edc\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_CHECK1-\"}, {\"headline\": \"\", \"message\": \"INFO: \\u6267\\u884c\\u68c0\\u67e5\\u9879\\uff1a\\u901a\\u8fc7\\u7ea2\\u5916\\u4e32\\u53e3\\u53d1\\u9001\\u7ea2\\u5916\\u6307\\u4ee4\\u662f\\u5426\\u6b63\\u5e38\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_CHECK1-\"}, {\"headline\": \"\", \"message\": \"INFO: \\u6267\\u884c\\u68c0\\u67e5\\u9879\\uff1a\\u662f\\u5426\\u80fd\\u591f\\u901a\\u8fc7\\u91c7\\u96c6\\u5361\\u4e32\\u53e3\\u91c7\\u96c6\\u56fe\\u50cf\\u6b63\\u5e38\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_CHECK1-\"}], \"result\": \"Passed\", \"prefix\": \"RUN_CHECK\"}, {\"headline\": \"\\u6267\\u884c\\u8d44\\u6e90\\u521d\\u59cb\\u5316\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_INIT\"}], \"result\": \"Passed\"}, {\"headline\": \"\\u6267\\u884c\\u6d4b\\u8bd5\\u7528\\u4f8b\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6536\\u96c6\\u6d4b\\u8bd5\\u8d44\\u6e90\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u7b5b\\u9009\\u8bbe\\u5907\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u7b5b\\u9009PC\\u8bbe\\u5907\", \"message\": \"\\u7b5b\\u9009PC\\u8bbe\\u5907\\u6210\\u529f\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}, {\"headline\": \"\\u7b5b\\u9009TV\\u8bbe\\u5907\", \"message\": \"\\u7b5b\\u9009TV\\u8bbe\\u5907\\u6210\\u529f\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"COLLECT_RESOURCE\"}, {\"headline\": \"\\u521d\\u59cb\\u5316\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u5b89\\u88c5\\u548c\\u542f\\u52a8grpc\\u670d\\u52a1APK\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u6267\\u884c\\u524d\\u7f6e\\u6307\\u4ee4\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"SETUP_CLASS1-1-\"}, {\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u5b89\\u88c5\\u5e94\\u7528\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"SETUP_CLASS1-1-\"}, {\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u542f\\u52a8grpc\\u670d\\u52a1\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"SETUP_CLASS1-1-\"}], \"result\": \"Passed\", \"prefix\": \"SETUP_CLASS1-\"}], \"result\": \"Passed\", \"prefix\": \"SETUP_CLASS\"}, {\"headline\": \"\\u6267\\u884c\\u6b21\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u7b2c1\\u6b21\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u524d\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_PRE_PLUGINS\"}, {\"headline\": \"\\u521d\\u59cb\\u5316\\u524d\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"TV\\u8fdb\\u5165\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u7535\\u89c6TV\\u4e0b\\u6709\\u9891\\u9053\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6267\\u884c\\u6d4b\\u8bd5\\u4e3b\\u4f53\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fdb\\u5165\\u8bbe\\u7f6e\\u83dc\\u5355\\uff0c\\u4fee\\u6539\\u56fe\\u6548\\u3001\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u4fee\\u6539\\u56fe\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}, {\"headline\": \"\\u4fee\\u6539\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u8fdb\\u5165VOD\\u4e0b\\u64ad\\u653e\\u89c6\\u9891\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"HDMI1\\u4fe1\\u6e90\\u64ad\\u653e\\u89c6\\u9891\\u65f6\\uff0c\\u6267\\u884c\\u6062\\u590d\\u51fa\\u5382\\u8bbe\\u7f6e\\u64cd\\u4f5c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5b8c\\u6210\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u8fdb\\u5165\\u7cfb\\u7edf\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fc7\\u5b8c\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u6267\\u884c\\u5b89\\u88c5\\u524d\\u7f6e\\u6307\\u4ee4\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u5b89\\u88c5\\u5e94\\u7528\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u542f\\u52a8grpc\\u670d\\u52a1\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u91cd\\u65b0\\u521d\\u59cb\\u5316grpc\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u8bbe\\u7f6e\\u83dc\\u5355\\u91cc\\u7528\\u6237\\u6570\\u636e\\u662f\\u5426\\u6062\\u590d\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5launcher\\u9ed8\\u8ba4\\u6a21\\u677f\\u4e0b\\u7684\\u5404\\u4e2aTab\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u5207\\u6362tv\\u8fdb\\u5165\\u6807\\u51c6\\u684c\\u9762\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}, {\"headline\": \"\\u975eTCL\\u54c1\\u724c\\uff0c\\u5404\\u4e2aTab\\u9875\\u4e0b\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u5b57\\u6837\\uff0c\\u6d77\\u62a5\\u4e2d\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u7684logo\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5HDMI\\u9ad8\\u7ea7\\u6807\\u51c6\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6e05\\u7406\\u540e\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"CLEANUP\"}, {\"headline\": \"\\u6267\\u884c\\u540e\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_POST_PLUGINS\"}], \"result\": \"Passed\", \"prefix\": \"TEST-1\"}, {\"headline\": \"\\u6267\\u884c\\u7b2c2\\u6b21\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u524d\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_PRE_PLUGINS\"}, {\"headline\": \"\\u521d\\u59cb\\u5316\\u524d\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"TV\\u8fdb\\u5165\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u7535\\u89c6TV\\u4e0b\\u6709\\u9891\\u9053\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6267\\u884c\\u6d4b\\u8bd5\\u4e3b\\u4f53\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fdb\\u5165\\u8bbe\\u7f6e\\u83dc\\u5355\\uff0c\\u4fee\\u6539\\u56fe\\u6548\\u3001\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u4fee\\u6539\\u56fe\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}, {\"headline\": \"\\u4fee\\u6539\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u8fdb\\u5165VOD\\u4e0b\\u64ad\\u653e\\u89c6\\u9891\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"HDMI1\\u4fe1\\u6e90\\u64ad\\u653e\\u89c6\\u9891\\u65f6\\uff0c\\u6267\\u884c\\u6062\\u590d\\u51fa\\u5382\\u8bbe\\u7f6e\\u64cd\\u4f5c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5b8c\\u6210\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u8fdb\\u5165\\u7cfb\\u7edf\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fc7\\u5b8c\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u6267\\u884c\\u5b89\\u88c5\\u524d\\u7f6e\\u6307\\u4ee4\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u5b89\\u88c5\\u5e94\\u7528\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u542f\\u52a8grpc\\u670d\\u52a1\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u91cd\\u65b0\\u521d\\u59cb\\u5316grpc\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u8bbe\\u7f6e\\u83dc\\u5355\\u91cc\\u7528\\u6237\\u6570\\u636e\\u662f\\u5426\\u6062\\u590d\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5launcher\\u9ed8\\u8ba4\\u6a21\\u677f\\u4e0b\\u7684\\u5404\\u4e2aTab\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u5207\\u6362tv\\u8fdb\\u5165\\u6807\\u51c6\\u684c\\u9762\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}, {\"headline\": \"\\u975eTCL\\u54c1\\u724c\\uff0c\\u5404\\u4e2aTab\\u9875\\u4e0b\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u5b57\\u6837\\uff0c\\u6d77\\u62a5\\u4e2d\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u7684logo\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5HDMI\\u9ad8\\u7ea7\\u6807\\u51c6\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6e05\\u7406\\u540e\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"CLEANUP\"}, {\"headline\": \"\\u6267\\u884c\\u540e\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_POST_PLUGINS\"}], \"result\": \"Passed\", \"prefix\": \"TEST-2\"}, {\"headline\": \"\\u6267\\u884c\\u7b2c3\\u6b21\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u524d\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_PRE_PLUGINS\"}, {\"headline\": \"\\u521d\\u59cb\\u5316\\u524d\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"TV\\u8fdb\\u5165\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u7535\\u89c6TV\\u4e0b\\u6709\\u9891\\u9053\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6267\\u884c\\u6d4b\\u8bd5\\u4e3b\\u4f53\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fdb\\u5165\\u8bbe\\u7f6e\\u83dc\\u5355\\uff0c\\u4fee\\u6539\\u56fe\\u6548\\u3001\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u4fee\\u6539\\u56fe\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}, {\"headline\": \"\\u4fee\\u6539\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u8fdb\\u5165VOD\\u4e0b\\u64ad\\u653e\\u89c6\\u9891\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"HDMI1\\u4fe1\\u6e90\\u64ad\\u653e\\u89c6\\u9891\\u65f6\\uff0c\\u6267\\u884c\\u6062\\u590d\\u51fa\\u5382\\u8bbe\\u7f6e\\u64cd\\u4f5c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5b8c\\u6210\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u8fdb\\u5165\\u7cfb\\u7edf\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fc7\\u5b8c\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u6267\\u884c\\u5b89\\u88c5\\u524d\\u7f6e\\u6307\\u4ee4\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u5b89\\u88c5\\u5e94\\u7528\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u542f\\u52a8grpc\\u670d\\u52a1\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u91cd\\u65b0\\u521d\\u59cb\\u5316grpc\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u8bbe\\u7f6e\\u83dc\\u5355\\u91cc\\u7528\\u6237\\u6570\\u636e\\u662f\\u5426\\u6062\\u590d\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5launcher\\u9ed8\\u8ba4\\u6a21\\u677f\\u4e0b\\u7684\\u5404\\u4e2aTab\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u5207\\u6362tv\\u8fdb\\u5165\\u6807\\u51c6\\u684c\\u9762\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}, {\"headline\": \"\\u975eTCL\\u54c1\\u724c\\uff0c\\u5404\\u4e2aTab\\u9875\\u4e0b\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u5b57\\u6837\\uff0c\\u6d77\\u62a5\\u4e2d\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u7684logo\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5HDMI\\u9ad8\\u7ea7\\u6807\\u51c6\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6e05\\u7406\\u540e\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"CLEANUP\"}, {\"headline\": \"\\u6267\\u884c\\u540e\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_POST_PLUGINS\"}], \"result\": \"Passed\", \"prefix\": \"TEST-3\"}, {\"headline\": \"\\u6267\\u884c\\u7b2c4\\u6b21\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u524d\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_PRE_PLUGINS\"}, {\"headline\": \"\\u521d\\u59cb\\u5316\\u524d\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"TV\\u8fdb\\u5165\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u7535\\u89c6TV\\u4e0b\\u6709\\u9891\\u9053\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6267\\u884c\\u6d4b\\u8bd5\\u4e3b\\u4f53\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fdb\\u5165\\u8bbe\\u7f6e\\u83dc\\u5355\\uff0c\\u4fee\\u6539\\u56fe\\u6548\\u3001\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u4fee\\u6539\\u56fe\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}, {\"headline\": \"\\u4fee\\u6539\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u8fdb\\u5165VOD\\u4e0b\\u64ad\\u653e\\u89c6\\u9891\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"HDMI1\\u4fe1\\u6e90\\u64ad\\u653e\\u89c6\\u9891\\u65f6\\uff0c\\u6267\\u884c\\u6062\\u590d\\u51fa\\u5382\\u8bbe\\u7f6e\\u64cd\\u4f5c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5b8c\\u6210\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u8fdb\\u5165\\u7cfb\\u7edf\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fc7\\u5b8c\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u6267\\u884c\\u5b89\\u88c5\\u524d\\u7f6e\\u6307\\u4ee4\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u5b89\\u88c5\\u5e94\\u7528\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u542f\\u52a8grpc\\u670d\\u52a1\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u91cd\\u65b0\\u521d\\u59cb\\u5316grpc\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u8bbe\\u7f6e\\u83dc\\u5355\\u91cc\\u7528\\u6237\\u6570\\u636e\\u662f\\u5426\\u6062\\u590d\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5launcher\\u9ed8\\u8ba4\\u6a21\\u677f\\u4e0b\\u7684\\u5404\\u4e2aTab\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u5207\\u6362tv\\u8fdb\\u5165\\u6807\\u51c6\\u684c\\u9762\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}, {\"headline\": \"\\u975eTCL\\u54c1\\u724c\\uff0c\\u5404\\u4e2aTab\\u9875\\u4e0b\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u5b57\\u6837\\uff0c\\u6d77\\u62a5\\u4e2d\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u7684logo\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5HDMI\\u9ad8\\u7ea7\\u6807\\u51c6\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6e05\\u7406\\u540e\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"CLEANUP\"}, {\"headline\": \"\\u6267\\u884c\\u540e\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_POST_PLUGINS\"}], \"result\": \"Passed\", \"prefix\": \"TEST-4\"}, {\"headline\": \"\\u6267\\u884c\\u7b2c5\\u6b21\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u6267\\u884c\\u524d\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_PRE_PLUGINS\"}, {\"headline\": \"\\u521d\\u59cb\\u5316\\u524d\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"TV\\u8fdb\\u5165\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u7535\\u89c6TV\\u4e0b\\u6709\\u9891\\u9053\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6267\\u884c\\u6d4b\\u8bd5\\u4e3b\\u4f53\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fdb\\u5165\\u8bbe\\u7f6e\\u83dc\\u5355\\uff0c\\u4fee\\u6539\\u56fe\\u6548\\u3001\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u4fee\\u6539\\u56fe\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}, {\"headline\": \"\\u4fee\\u6539\\u58f0\\u6548\\u4e3a\\u4efb\\u610f\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"1-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u8fdb\\u5165VOD\\u4e0b\\u64ad\\u653e\\u89c6\\u9891\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"HDMI1\\u4fe1\\u6e90\\u64ad\\u653e\\u89c6\\u9891\\u65f6\\uff0c\\u6267\\u884c\\u6062\\u590d\\u51fa\\u5382\\u8bbe\\u7f6e\\u64cd\\u4f5c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5b8c\\u6210\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u8fdb\\u5165\\u7cfb\\u7edf\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u8fc7\\u5b8c\\u5f00\\u673a\\u5411\\u5bfc\\u540e\\uff0c\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u6267\\u884c\\u5b89\\u88c5\\u524d\\u7f6e\\u6307\\u4ee4\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u5b89\\u88c5\\u5e94\\u7528\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u662f\\u5426\\u542f\\u52a8grpc\\u670d\\u52a1\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u91cd\\u65b0\\u521d\\u59cb\\u5316grpc\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}, {\"headline\": \"\\u68c0\\u67e5\\u8bbe\\u7f6e\\u83dc\\u5355\\u91cc\\u7528\\u6237\\u6570\\u636e\\u662f\\u5426\\u6062\\u590d\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"4-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u5efa\\u7acbWIFI\\u8fde\\u63a5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5launcher\\u9ed8\\u8ba4\\u6a21\\u677f\\u4e0b\\u7684\\u5404\\u4e2aTab\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u5207\\u6362tv\\u8fdb\\u5165\\u6807\\u51c6\\u684c\\u9762\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}, {\"headline\": \"\\u975eTCL\\u54c1\\u724c\\uff0c\\u5404\\u4e2aTab\\u9875\\u4e0b\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u5b57\\u6837\\uff0c\\u6d77\\u62a5\\u4e2d\\u4e0d\\u80fd\\u51fa\\u73b0TCL\\u7684logo\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"6-\"}], \"result\": \"Passed\", \"prefix\": \"\"}, {\"headline\": \"\\u68c0\\u67e5HDMI\\u9ad8\\u7ea7\\u6807\\u51c6\\u9ed8\\u8ba4\\u503c\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"SETUP\"}, {\"headline\": \"\\u6e05\\u7406\\u540e\\u7f6e\\u6761\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [{\"headline\": \"\\u7535\\u89c6\\u56de\\u5230\\u4e3b\\u9875\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"\"}], \"result\": \"Passed\", \"prefix\": \"CLEANUP\"}, {\"headline\": \"\\u6267\\u884c\\u540e\\u7f6e\\u63d2\\u4ef6\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"RUN_POST_PLUGINS\"}], \"result\": \"Passed\", \"prefix\": \"TEST-5\"}], \"result\": \"Passed\", \"prefix\": \"TEST\"}, {\"headline\": \"\\u6e05\\u7406\\u6d4b\\u8bd5\", \"message\": \"\", \"timestamp\": \"2024-12-25 17:04:35\", \"children\": [], \"result\": \"Passed\", \"prefix\": \"CLEANUP_CLASS\"}], \"result\": \"Passed\"}]}]}\n[2024-12-25 17:04:35,533][INFO][TcDemo    ][testbot.app.case.base._write_result:+262][pid|tid:29044|22500]:\u7ed3\u679c\u6587\u4ef6\u4fdd\u5b58\u5230C:\\Users\\nuanguang.gu\\TESTBOT\\logs\\cases\\20241225170435\\\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\\result.json\n[2024-12-25 17:04:35,539][INFO][TcDemo    ][testbot.app.case.base._write_result:+268][pid|tid:29044|22500]:\u5c06HTML\u7ed3\u679c\u6a21\u677f\u6587\u4ef6D:\\codes\\testbot\\src\\testbot\\result\\result.html\u62f7\u8d1d\u5230C:\\Users\\nuanguang.gu\\TESTBOT\\logs\\cases\\20241225170435\\\u6d4b\u8bd5\u7528\u4f8b\u5217\u8868\\result.html\n[2024-12-25 17:04:35,547][INFO][CaseRunner][testbot.testengine.caserunner.__run_test_list:+300][pid|tid:29044|22500]:\u5207\u6362\u65e5\u5fd7\u8def\u5f84\uff1aC:\\Users\\nuanguang.gu\\TESTBOT\\logs\\runner\\CaseRunner.log -> C:\\Users\\nuanguang.gu\\TESTBOT\\logs\\runner\\CaseRunner.log\n\nProcess finished with exit code 0\n\n```\n\n## \u9a8c\u8bc1\u70b9\u7ed3\u679c\u6570\u636e\n\n\u9a8c\u8bc1\u70b9\u524d\u7f00\u3002\u533a\u5206\u9a8c\u8bc1\u70b9\u4fe1\u606f\u5c5e\u4e8eSETUP_CLASS\u3001SETUP\u3001TEST\u8fd8\u662fCLEANUP\u3001CLEANUP_CLASS\u6267\u884c\u671f\u95f4\u3002\n\n\u6267\u884c\u7684\u6d4b\u8bd5\u6570\u636e\u6587\u4ef6result.json\u548cresult.html\uff0c\u4f1a\u5b58\u653e\u5230%TB_HOME%/logs/cases/{\u65f6\u95f4\u6233}/{\u6d4b\u8bd5\u7528\u4f8b\u540d\u79f0}\u8def\u5f84\uff08\u82e5\u8bbe\u7f6e\u4e86TB_HOME\u73af\u5883\u53d8\u91cf\uff09\u6216%HOMEPATH%/TESTBOT/logs/cases/{\u65f6\u95f4\u6233}/{\u6d4b\u8bd5\u7528\u4f8b\u540d\u79f0}\uff08\u82e5\u672a\u8bbe\u7f6eTB_HOME\u73af\u5883\u53d8\u91cf\uff09\u4e0b\u9762\u3002\n\n```buildoutcfg\n{\n    \"headline\": \"Root\",\n    \"message\": \"\",\n    \"timestamp\": \"2024-12-12 09:23:14\",\n    \"children\": [\n        {\n            \"headline\": \"\u6267\u884c\u6d4b\u8bd5\",\n            \"message\": \"\",\n            \"timestamp\": \"2024-12-12 09:23:15\",\n            \"children\": [\n                {\n                    \"headline\": \"\u6267\u884c\u73af\u5883\u68c0\u67e5\",\n                    \"message\": \"\",\n                    \"timestamp\": \"2024-12-12 09:23:15\",\n                    \"children\": [\n                        {\n                            \"headline\": \"\u6267\u884c\u68c0\u67e5\u9879\",\n                            \"message\": \"\",\n                            \"timestamp\": \"2024-12-12 09:23:15\",\n                            \"children\": [\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u6709\u6307\u4ee4\u4e32\u53e3\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u53ef\u4ee5\u901a\u8fc7\u6307\u4ee4\u4e32\u53e3\u83b7\u53d6TV IP\u5730\u5740\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u516c\u53f8\u7f51\u7edc\uff0c\u5982Panda\u3001AI\u670d\u52a1\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u56fd\u5185\u7f51\u7edc\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1aTV\u7aef\u662f\u5426\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\u6d77\u5916\u7f51\u7edc\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u6709\u91c7\u96c6\u5361\u4e32\u53e3\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u80fd\u591f\u901a\u8fc7\u91c7\u96c6\u5361\u4e32\u53e3\u91c7\u96c6\u56fe\u50cf\u6b63\u5e38\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u6709ADB\u65e0\u7ebf\u8fde\u63a5\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                },\n                                {\n                                    \"headline\": \"\",\n                                    \"message\": \"INFO: \u6267\u884c\u68c0\u67e5\u9879\uff1a\u662f\u5426\u6709gRPC\u8fde\u63a5\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"RUNCHECK1-\"\n                                }\n                            ],\n                            \"result\": \"Passed\",\n                            \"prefix\": \"RUNCHECK\"\n                        },\n                        {\n                            \"headline\": \"\u6267\u884c\u8d44\u6e90\u521d\u59cb\u5316\",\n                            \"message\": \"\",\n                            \"timestamp\": \"2024-12-12 09:23:15\",\n                            \"children\": [],\n                            \"result\": \"Passed\",\n                            \"prefix\": \"RUNINIT\"\n                        }\n                    ],\n                    \"result\": \"Passed\"\n                },\n                {\n                    \"headline\": \"\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b\",\n                    \"message\": \"INFO: CNTC94313\",\n                    \"timestamp\": \"2024-12-12 09:23:15\",\n                    \"children\": [\n                        {\n                            \"headline\": \"\u6536\u96c6\u6d4b\u8bd5\u8d44\u6e90\",\n                            \"message\": \"\",\n                            \"timestamp\": \"2024-12-12 09:23:15\",\n                            \"children\": [\n                                {\n                                    \"headline\": \"\u7b5b\u9009\u8bbe\u5907\",\n                                    \"message\": \"\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [\n                                        {\n                                            \"headline\": \"\u7b5b\u9009PC\u8bbe\u5907\",\n                                            \"message\": \"\u7b5b\u9009PC\u8bbe\u5907\u6210\u529f\",\n                                            \"timestamp\": \"2024-12-12 09:23:15\",\n                                            \"children\": [],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"1-\"\n                                        },\n                                        {\n                                            \"headline\": \"\u7b5b\u9009TV\u8bbe\u5907\",\n                                            \"message\": \"\u7b5b\u9009TV\u8bbe\u5907\u6210\u529f\",\n                                            \"timestamp\": \"2024-12-12 09:23:15\",\n                                            \"children\": [],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"1-\"\n                                        }\n                                    ],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"\"\n                                }\n                            ],\n                            \"result\": \"Passed\",\n                            \"prefix\": \"COLLECT_RESOURCE\"\n                        },\n                        {\n                            \"headline\": \"\u521d\u59cb\u5316\u6d4b\u8bd5\",\n                            \"message\": \"\",\n                            \"timestamp\": \"2024-12-12 09:23:15\",\n                            \"children\": [],\n                            \"result\": \"Passed\",\n                            \"prefix\": \"SETUP_CLASS\"\n                        },\n                        {\n                            \"headline\": \"\u6267\u884c\u6b21\u6d4b\u8bd5\",\n                            \"message\": \"\",\n                            \"timestamp\": \"2024-12-12 09:23:15\",\n                            \"children\": [\n                                {\n                                    \"headline\": \"\u6267\u884c\u7b2c0\u6b21\u6d4b\u8bd5\",\n                                    \"message\": \"\",\n                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                    \"children\": [\n                                        {\n                                            \"headline\": \"\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6\",\n                                            \"message\": \"\",\n                                            \"timestamp\": \"2024-12-12 09:23:15\",\n                                            \"children\": [\n                                                {\n                                                    \"headline\": \"\u7535\u89c6TV\u4e0b\u6709\u9891\u9053\",\n                                                    \"message\": \"INFO: \",\n                                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u7535\u89c6\u8fde\u63a5\u4fe1\u53f7\u8f83\u5f3a\u7684wifi\u70ed\u70b9\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                }\n                                            ],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"SETUP\"\n                                        },\n                                        {\n                                            \"headline\": \"\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53\",\n                                            \"message\": \"\",\n                                            \"timestamp\": \"2024-12-12 09:23:15\",\n                                            \"children\": [\n                                                {\n                                                    \"headline\": \"\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:15\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:15\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"1-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"1-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"4-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u6240\u6709\u9891\u9053\u8282\u76ee\uff0c\u89c6\u9891\u89c2\u770b\u5386\u53f2\u88ab\u6e05\u9664\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"4-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u6062\u590d\u9ed8\u8ba4\u503c\uff08\u4ec5\u4fdd\u7559WIFI\u8d26\u53f7\u5bc6\u7801\uff09\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"4-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"5-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\uff08\u5982\uff1a\u96f7\u9e1f\uff0c\u4e50\u534e\uff0c\u4e1c\u829d\u7b49\u54c1\u724c\u4e0d\u80fd\u51fa\u73b0TCL\u7684\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\uff09\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"5-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u4e3a\u5f00\uff08\u6839\u636e\u9879\u76ee\u7684PQ tree\u68c0\u67e5\u5177\u4f53\u9ed8\u8ba4\u503c\uff1ahttps://confluence.tclking.com/pages/viewpage.action?pageId=79309061\uff09\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"6-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                }\n                                            ],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"SETUP\"\n                                        },\n                                        {\n                                            \"headline\": \"\u6e05\u7406\u540e\u7f6e\u6761\u4ef6\",\n                                            \"message\": \"\",\n                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                            \"children\": [\n                                                {\n                                                    \"headline\": \"\u7535\u89c6\u65ad\u5f00wifi\u70ed\u70b9\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                }\n                                            ],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"CLEANUP\"\n                                        }\n                                    ],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"TEST-0\"\n                                },\n                                {\n                                    \"headline\": \"\u6267\u884c\u7b2c1\u6b21\u6d4b\u8bd5\",\n                                    \"message\": \"\",\n                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                    \"children\": [\n                                        {\n                                            \"headline\": \"\u521d\u59cb\u5316\u524d\u7f6e\u6761\u4ef6\",\n                                            \"message\": \"\",\n                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                            \"children\": [\n                                                {\n                                                    \"headline\": \"\u7535\u89c6TV\u4e0b\u6709\u9891\u9053\",\n                                                    \"message\": \"INFO: \",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u7535\u89c6\u8fde\u63a5\u4fe1\u53f7\u8f83\u5f3a\u7684wifi\u70ed\u70b9\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                }\n                                            ],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"SETUP\"\n                                        },\n                                        {\n                                            \"headline\": \"\u6267\u884c\u6d4b\u8bd5\u4e3b\u4f53\",\n                                            \"message\": \"\",\n                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                            \"children\": [\n                                                {\n                                                    \"headline\": \"\u8fdb\u5165\u8bbe\u7f6e\u83dc\u5355\uff0c\u4fee\u6539\u56fe\u6548\u3001\u58f0\u6548\u4e3a\u4efb\u610f\u503c\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"\u4fee\u6539\u56fe\u6548\u4e3a\u4efb\u610f\u503c\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"1-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u4fee\u6539\u58f0\u6548\u4e3a\u4efb\u610f\u503c\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"1-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u8fdb\u5165VOD\u4e0b\u64ad\u653e\u89c6\u9891\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"HDMI1\u4fe1\u6e90\u64ad\u653e\u89c6\u9891\u65f6\uff0c\u6267\u884c\u6062\u590d\u51fa\u5382\u8bbe\u7f6e\u64cd\u4f5c\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u5b8c\u6210\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u8fdb\u5165\u7cfb\u7edf\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"\u8fc7\u5b8c\u5f00\u673a\u5411\u5bfc\u540e\uff0c\u7535\u89c6\u56de\u5230\u4e3b\u9875\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"4-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u6240\u6709\u9891\u9053\u8282\u76ee\uff0c\u89c6\u9891\u89c2\u770b\u5386\u53f2\u88ab\u6e05\u9664\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"4-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u8bbe\u7f6e\u83dc\u5355\u91cc\u7528\u6237\u6570\u636e\u6062\u590d\u9ed8\u8ba4\u503c\uff08\u4ec5\u4fdd\u7559WIFI\u8d26\u53f7\u5bc6\u7801\uff09\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"4-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u68c0\u67e5launcher\u9ed8\u8ba4\u6a21\u677f\u4e0b\u7684\u5404\u4e2aTab\u9875\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"5-\"\n                                                        },\n                                                        {\n                                                            \"headline\": \"\u975eTCL\u54c1\u724c\uff0c\u5404\u4e2aTab\u9875\u4e0b\u4e0d\u80fd\u51fa\u73b0TCL\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\uff08\u5982\uff1a\u96f7\u9e1f\uff0c\u4e50\u534e\uff0c\u4e1c\u829d\u7b49\u54c1\u724c\u4e0d\u80fd\u51fa\u73b0TCL\u7684\u5b57\u6837\uff0c\u6d77\u62a5\u4e2d\u4e0d\u80fd\u51fa\u73b0TCL\u7684logo\uff09\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"5-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                },\n                                                {\n                                                    \"headline\": \"\u68c0\u67e5HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u503c\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [\n                                                        {\n                                                            \"headline\": \"HDMI\u9ad8\u7ea7\u6807\u51c6\u9ed8\u8ba4\u4e3a\u5f00\uff08\u6839\u636e\u9879\u76ee\u7684PQ tree\u68c0\u67e5\u5177\u4f53\u9ed8\u8ba4\u503c\uff1ahttps://confluence.tclking.com/pages/viewpage.action?pageId=79309061\uff09\",\n                                                            \"message\": \"\",\n                                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                                            \"children\": [],\n                                                            \"result\": \"Passed\",\n                                                            \"prefix\": \"6-\"\n                                                        }\n                                                    ],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                }\n                                            ],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"SETUP\"\n                                        },\n                                        {\n                                            \"headline\": \"\u6e05\u7406\u540e\u7f6e\u6761\u4ef6\",\n                                            \"message\": \"\",\n                                            \"timestamp\": \"2024-12-12 09:23:16\",\n                                            \"children\": [\n                                                {\n                                                    \"headline\": \"\u7535\u89c6\u65ad\u5f00wifi\u70ed\u70b9\",\n                                                    \"message\": \"\",\n                                                    \"timestamp\": \"2024-12-12 09:23:16\",\n                                                    \"children\": [],\n                                                    \"result\": \"Passed\",\n                                                    \"prefix\": \"\"\n                                                }\n                                            ],\n                                            \"result\": \"Passed\",\n                                            \"prefix\": \"CLEANUP\"\n                                        }\n                                    ],\n                                    \"result\": \"Passed\",\n                                    \"prefix\": \"TEST-1\"\n                                }\n                            ],\n                            \"result\": \"Passed\",\n                            \"prefix\": \"TEST\"\n                        },\n                        {\n                            \"headline\": \"\u6e05\u7406\u6d4b\u8bd5\",\n                            \"message\": \"\",\n                            \"timestamp\": \"2024-12-12 09:23:16\",\n                            \"children\": [],\n                            \"result\": \"Passed\",\n                            \"prefix\": \"CLEANUP_CLASS\"\n                        }\n                    ],\n                    \"result\": \"Passed\"\n                }\n            ]\n        }\n    ]\n}\n```\n\n## \u9a8c\u8bc1\u70b9HTML\u62a5\u544a\n\n\u5728\u6d4b\u8bd5\u65e5\u5fd7\u540c\u76ee\u5f55\u4e0b\uff0c\u6709result.json\u548cresult.html\u6587\u4ef6\uff0c\u7528\u706b\u72d0\u6d4f\u89c8\u5668\u6253\u5f00result.html\u6587\u4ef6\uff0c\u53ef\u4ee5\u67e5\u770b\u7ed3\u679c\u6570\u636eresult.json\u7684HTML\u683c\u5f0f\u7684\u6d4b\u8bd5\u62a5\u544a\u3002\n\n",
    "bugtrack_url": null,
    "license": "Copyright (c) 2024 Nuanguang Gu(Sunny) Reserved",
    "summary": "\u4e00\u6b3e\u652f\u6301\u624b\u673a\u3001\u7535\u89c6\u3001\u624b\u8868\u7b49\u667a\u80fd\u786c\u4ef6\u4ea7\u54c1\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u6846\u67b6\uff0c\u63d0\u4f9b\u5f00\u53d1\u6d4b\u8bd5\u5de5\u5177\u3001\u5f00\u53d1\u6d4b\u8bd5\u811a\u672c\u3001\u6269\u5c55\u57fa\u7840\u539f\u5b50\u63a5\u53e3\u3001\u6269\u5c55\u4e1a\u52a1\u5c01\u88c5\u63a5\u53e3\u3001\u6269\u5c55\u6d4b\u8bd5\u63d2\u4ef6\u7b49\u4f7f\u7528\u652f\u6301\u3002\u6700\u65b0\u7248\u672c\u57fa\u4e8e\u5206\u652f: main\u548c\u63d0\u4ea4ID: 3137a86b\u6240\u7f16\u8bd1\u751f\u6210",
    "version": "2025.8.209",
    "project_urls": {
        "Bug Reports": "https://confluence.tclking.com/pages/viewpage.action?pageId=346260551",
        "Homepage": "https://gitlab.com/nuangua/testbot.git",
        "Source": "https://gitlab.com/nuangua/testbot"
    },
    "split_keywords": [
        "testbot",
        " testbot-aw",
        " testbot-apps"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "78446065f9894019cbbe42f95a7e9dadd79b084bb0c6e0d7970504f76c220114",
                "md5": "d153640023e06ce35a2bc65481be4d67",
                "sha256": "07869a464946c1e4e72be3531300cc95af089fbdccd51f46b639ad465c3a0ccc"
            },
            "downloads": -1,
            "filename": "pytestbot-2025.8.209-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d153640023e06ce35a2bc65481be4d67",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.7",
            "size": 186110,
            "upload_time": "2025-02-25T01:56:41",
            "upload_time_iso_8601": "2025-02-25T01:56:41.721142Z",
            "url": "https://files.pythonhosted.org/packages/78/44/6065f9894019cbbe42f95a7e9dadd79b084bb0c6e0d7970504f76c220114/pytestbot-2025.8.209-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-25 01:56:41",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "nuangua",
    "gitlab_project": "testbot",
    "lcname": "pytestbot"
}
        
Elapsed time: 0.50319s