本文重点在host layer的认证,其他比如RF,linker layer以及profiler再论。

1.安装测试软件PTS:

测试BQB的pts dongle是在蓝牙SIG官网买的,测试软件也是在Bluetooth SIG官网下载安装,软件下载地址https://pts.bluetooth.com/download,PTS可以嗅探蓝牙收发的数据包,解析内容,是一个很有用的工具。

 

2.下载ICS:

测试需要测试脚本,在蓝牙官网上https://launchstudio.bluetooth.com/,登陆到lanuch studio去生成对应所需要的ICS文件,加载到PTS中测试。

根据需求,选择对应的测试流程,我测试的BLE Host,所以选择第二种测试认证;

命名测试工程,选择测试的产品;

 

 Host层包括GAP、GATT等,选择要测试的协议层;

 

选择ICS,选择需要测试的资格认证流程时,通过在 Launch Studio 网页中 ICS Selection 选择需要的测试用例,这些测试的目的是为了保证该蓝牙的设计的合规性以及互联互操作性。

 导出ICS,这就是我们要测试的Host case;

 常见的测试文件如下: • 测试用例参考列表(TCRL):针对所有 Bluetooth SIG 成员的资格认证参考文件,这是一份动态文件,用于介绍新的测试用例、删除测试用例和对测试用例进行分类。会员只能使用这些文件参考来认证其 Bluetooth 启用产品。 • 实施一致性声明(ICS):提供了一种标准化方法来定义产品所支持的蓝牙功能。 • Bluetooth 测试套件(TS):定义了每个基本 Bluetooth 功能验证的目的、顺序和判定。每个测试套件都包含一个测试用例映射表(TCMT),该表根据 ICS 声明中指定的支持能力,确定所有需要的相关测试用例。 • 针对测试的实现额外信息(IXIT):通常包含有关测试的物理设置和连接的信息, 这些信息不是协议或配置文件的一部分。这可能是有关被测系统的硬件、套接字或其他信息,以使测试更灵活,并实现可重复性等。若没有IXIT,则意味着 IXIT 没有随该行中的其他文件一同发布。不过请注意,这并不排除测试工具要求遵循 IXIT,以便正确配置用于测试特定设备的测试仪。 TCRL、ICS、TS、IXIT 是 Bluetooth 资格认证要求链中的基本文件。

3.建立测试工程

将PTS dongle插入电脑,安装驱动。打开PTS软件,开始建立workspace。

有三种指定设备的方法:•如果该设备出现在对话框左侧的列表中,则可以通过单击其条目进行选择。•如果当前可找到该设备,则可以通过单击“搜索”按钮开始搜索。 当设备出现在列表中时,可以通过单击其条目来选择它。•可以在标有“ IUTDevice Address”的框中直接输入Bluetooth DeviceAddress(BD_ADDR)。

导入ICS

准备测试给定设备的重要部分是选择其支持的配置文件和协议,并为每个项目编辑ICS信息。如果已经声明了设备的功能,则可以简化此过程。 准备设备进行资格认证的步骤之一是使用在线Launch Studio声明其支持的配置文件和协议。完成此声明的步骤之一是编辑设备的ICS信息。 存储在Launch Studio中的ICS信息可能会导出到计算机上的文件中。然后可以单击“导入ICS”按钮将该文件导入PTS。 单击“导入ICS”按钮将打开“导入测试计划”对话框。这是一个普通文件选择对话框,可用于查找和选择包含从Launch Studio或QualifiedDevice Listing导出的ICS信息的文件。 当在Launch Studio中更新设备的声明时,“导入ICS”功能也可以在以后使用,以更新PTS使用的ICS。

 打开工作区后,“工作区工具窗口”中会显示可用的项目(配置文件和协议)列表。

 “测试用例视图”被组织成一棵树,其中顶层项目是项目。可以根据需要扩展树,直到显示最低级别的项目-测试用例。每个测试用例名称旁边的图标显示该测试用例的当前状态。

•带有绿色框的复选标记表示测试用例的最后一次运行表明通过了PASS。

•红色“ X”和红色框表示测试用例的最后一次运行失败。

•带有黄色框的感叹号(“!”)显示测试案例,其最后一次运行以INCON结束。

•前面没有标记的蓝色框用于指示尚未运行的测试用例。

•PADLOCK符号表示您的currentICS配置不支持测试用例。

•根据设备支持的功能和特性,可能不需要执行某些测试用例即可使设备合格。在许多情况下,此类测试用例不太可能通过,因为它们具有IUT中不存在的功能。测试用例甚至是不适合被测设备的整个测试用例组都由旁边的PADLOCK符号表示测试用例或测试组的名称。

 

4.case 测试

Host要测试的case有很多,举个例子我要测试,我要测试这条case,GAP/ADV/BV-05-C

 找到对应文档,看这条case是什么测试目的,需要什么测试条件

 GAP/ADV/BV-05-C,验证IUT在广播和扫描响应数据中发送有效的TX Power AD类型。也就是在广播数据中要包含有tx power信息。那么就要在待测设备中添加tx power的广播信息。

void gap_adv_05_test(void)

{

uint8_t adv_data[256] ={0x02,0x0A,0x10,0x05,0x08,'t','e','s','t'};

uint8_t scan_rsp_data[256] ={0x02,0x0A,0x10};//tx power flag 0x0A,参数大小0x10;

gap_adv_param_t gap_param;

gap_param.adv_int_max = 300;

gap_param.adv_int_min =300;

gap_param.adv_type =GAP_ADDR_TYPE_PUBLIC;

gap_param.mode =GAP_ADV_MODE_UNDIRECT;

gap_param.adv_chnl_map = GAP_ADV_CHAN_ALL;

gap_param..adv_filt_policy = GAP_ADV_ALLOW_SCAN_ANY_CON_ANY;

gap_set_advertising_param(&adv_param);

gap_set_advertising_data(adv_data, sizeof(adv_data));

gap_set_advertising_rsp_data(scan_rsp_data, sizeof(scan_rsp_data));

gap_start_advertising(0);

}

IUT的广播中含有TX Power信息,Lower Tester也就是PTS设备,发起扫描,扫描到该广播时,测试pass。

 5.生成测试报告

完成所有的测试case,生成一份测试报告,将测报告上传到Bluetooth SIG官网上。

 

关于 QDID 和 DID Qualified Design IDs (QDID) :合格的设计 ID(QDID)是指完成资格认证过程后,分配给新的蓝牙设计的认证 ID。QDID 可被其他成员公司在认证过程中引用(仅可被引用至 EndProduct 或 Subsystem 的产品类型)。如果是参考列名,是参考别人已经有认证的QD ID,所以自己就不会有新的QD ID,也就无需再进行认证。 DID(Declaration ID) :声明 ID(DID)是一种无论产品选择何种方式完成资格认证都需要被获取的识别标识。完成需要测试的资格认证过程会获得一个新的 QDID(系统自动生成)和一个新的 DID(购买),以对应其产品列名(listing)。完成无需测试的资格认证过程将会获得一个新的 DID(购买)并引用一个或多个 QDID 以对应产品列名。可以理解为 一个 DID 可以包含一个或多个 QDID,一个 QDID 也可以被一个或多个 DID 引用。 声明 ID(DID)可在 Launch Studio 的 Manage My Declaration IDs 页面购买,或在资格认证过程的 Declaration ID 那一步购买。

 附录

Bluetooth Protocol Viewer

蓝牙协议查看器(BPV)是与PTS同时运行的配套应用程序。 其目的是在蓝牙协议栈级别捕获PTS和“测试中的实现”之间的通信。 然后,在蓝牙堆栈的每一层对在两个设备之间传递的每个消息进行详细解码。

 

The Protocol Viewer"stack"

从PTS发送到协议查看器的数据包被封装在普通蓝牙堆栈的一小部分扩展中。该扩展允许协议查看器显示两种类型的信息。

扩展堆栈中的第一层是“虚拟嗅探器”层。该层的目的是识别分组是否包含捕获的通信数据或PTS特定信息。标记为PTS信息的数据包被转发到“ PTS”层以进行解码。

 当前,PTS层中的数据包包括“测试案例已开始”,“测试案例已结束”和所有“判决描述”事件。这些数据包的存在提供了一种方便的方式,可以将协议查看器的“跟踪”与测试用例执行日志中显示的信息相关联。

被标记为捕获的通信数据的数据包被转发到HCI协议层,并从那里根据数据包内容进行完全解码。在设备之间捕获消息的“分接点”是PTS应用程序(主机)和PTS EndpointDevice(控制器)之间的主机控制器接口(HCI)。

在HCI“分接点”捕获的数据包括

•从PTS到端点设备的HCI命令;

•HCI事件,响应连接期间可能发生的各种命令和异步通知而生成;

•ACL数据,基于蓝牙堆栈的L2CAP层包含对等消息;

参考阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。