一种蓝牙遥控器OTA升级自动化压测的方法与流程 | 您所在的位置:网站首页 › 语音遥控器是否支持OTA升级 › 一种蓝牙遥控器OTA升级自动化压测的方法与流程 |
本发明涉及Android自动化测试技术领域,尤其涉及一种蓝牙遥控器OTA升级自动化压测的方法。 背景技术 随着智能电视的普及,市面上绝大多数产品标配的遥控器都从红外遥控器更换成了蓝牙遥控器,当遥控器的固件有更新时,针对遥控器的OTA升级是最优选择,这就对遥控器通过OTA烧录固件的稳定性提出了极高的要求。 目前对遥控器OTA升级烧录固件的稳定性测试方式为人工测试,方案是电视开机,收到遥控器第一次回连包,去检测升级信息并升级,升级成功后将遥控器解配,再配对到刷机设备,烧写回升级前的固件,再配对到电视,重启电视后按遥控器按键回连触发下一轮升级,人力耗费大。不能实现自动化的技术实质是升级后需要重新配对到刷机设备进行升级前软件烧录,烧录后需要再次配对到电视,需要重启电视,按遥控器按键回连才能触发升级。 技术实现要素: 本发明的目的就在于为了解决遥控器固件OTA升级的稳定性测试人力耗费大的问题而提供一种蓝牙遥控器OTA升级自动化压测的方法,本发明通过开发蓝牙遥控器OTA升级APK的测试模式,测试模式下可以读取本地的两个升级包进行交替升级,取消开机第一次回连才进行升级的限制;再通过继电器的短接和断开来发送遥控器按键信息,触发回连升级。 本发明通过以下技术方案来实现上述目的: 一种蓝牙遥控器OTA升级自动化压测的方法,包括以下步骤: OTA升级APK测试模式开发,采用Java语言开发,具体为; 步骤1,收取开机广播,收到后获取全局变量“BLUETOOTH_DEBUG”,当该变量值为1,进入测试模式; 步骤2,监听广播BluetoothHidHost.ACTION_CONNECTION_STATE_CHANGED,然后通过设备名去判断已连接的蓝牙设备中是否有遥控; 步骤3,当存在遥控器时,使用BluetoothGattCallback去获取遥控“model number”,“hardware version”,“software version”; 步骤4,在“/sdcard/download/”下读取预置的包含升级包和对应MD5码的文件夹,文件夹命名格式为升级后的“model number”+“hardware version”+“software version”;判断文件夹数量是否为2个,如果是,继续步骤5,如果不是2,提示“升级文件数量不足,请检查升级包”; 步骤5,使用步骤3读取的“model number”+“hardware version”+“software version”,匹配文件名称,获取文件夹名称同步骤3读取内容不一致文件夹下的升级bin文件; 步骤6,判断bin文件与MD5码是否一致,一致继续步骤7,不一致提示“升级文件损坏,请检查升级文件”; 步骤7,获取遥控通过蓝牙协议同电视的交互信息,判断升级成功或者失败,升级成功则输出日志“UPGRADE_SUCCESS”,升级失败则输出日志“UPGRADE_FAILED:错误原因”,再循环执行步骤2。 2、如权利要求1所述的一种蓝牙遥控器OTA升级自动化压测的方法,其特征在于,遥控器OTA升级自动化测试流程,采用Python语言开发,具体为; 步骤1,初始化TV串口SerialTV:SerialTV=serial.Serial(com_id,baudrate=115200); 步骤2,初始化继电器串口SerialSwitch:SerialSwitch=serial.Serial(com_id,baudrate=9600); 步骤3,通过SerialTV设置全局变量“settings put global BLUETOOTH_DEBUG 1”,让遥控器OTA升级进入测试模式,再输入“reboot”重启电视; 步骤4,控制TV串口SerialTV,输入logcat|grep Bluetooth来监听ota升级信息; 步骤5,设置压测次数“testtimes”; 步骤6,清除SerialTV的串口缓存; 步骤7,通过pin_on和pin_off来短接和断开继电器,实现按键 pin_on=[0xFE,0x05,0x00,0x00,0xFF,0x00,0x98,0x35] pin_off=[0xFE,0x05,0x00,0x00,0x00,0x00,0xD9,0xC5]; 步骤8,再读取SerialTV的串口内容,判断10分钟内是否有升级成功信息“UPGRADE_SUCCESS”或者“UPGRADE_FAILED”; 步骤9,如果未读取到任何信息,记录失败+1,备份SerialTV日志,重启电视,跳转至步骤7;如果读取到升级成功/失败的信息后,记录成功/失败+1,失败需要备份SerialTV日志,继续测试; 步骤10:判断压测次数是否已经到设置的次数,如果没有,则跳转之步骤6继续执行; 步骤11:判断压测次数已经达到设置的次数,通过SerialTV设置全局变量“settings put global BLUETOOTH_DEBUG 0”退出测试模式,再输入“reboot”重启电视。 本发明的有益效果在于: 本发明的一种蓝牙遥控器OTA升级自动化压测的方法,通过开发蓝牙遥控器OTA升级APK的测试模式,解除需要连接刷机设备烧录固件的限制和第一次开机回连才升级的限制,通过继电器的短接和断开来发送遥控器按键信息实现自动化测试,可以无人值守的完成遥控器OTA升级压力测试,极大的提升了测试效率,减少了测试人力和时间成本,缩短测试周期,加快了产品上市。 附图说明 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。 图1为OTA升级APK测试模式开发流程图; 图2为控制继电器进行自动化测试的流程图; 图3是继电器控制系统示意图。 具体实施方式 为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。 测试之前,需要焊接可编程继电器DAM1600C的正负极到蓝牙遥控器任意按键的两个针脚。 测试之前,参考图3搭建测试环境。 在任一实施例中,本发明的一种蓝牙遥控器OTA升级自动化压测的方法,实现遥控器OTA升级自动化测试,包括对OTA升级APK开发和自动化测试两个方面,以下结合附图1至附图2的技术实现流程,对本发明的具体实施方式进行详细的说明。 图1:OTA升级APK测试模式开发,采用Java语言开发, 步骤1,收取开机广播,收到后获取全局变量“BLUETOOTH_DEBUG”,当该变量值为1,进入测试模式。 步骤2,监听广播BluetoothHidHost.ACTION_CONNECTION_STATE_CHANGED,然后通过设备名去判断已连接的蓝牙设备中是否有遥控。 步骤3,当存在遥控器时,使用BluetoothGattCallback去获取遥控“model number”,“hardware version”,“software version”。 步骤4,在“/sdcard/download/”下读取预置的包含升级包和对应MD5码的文件夹,文件夹命名格式为升级后的“model number”+“hardware version”+“software version”;判断文件夹数量是否为2个,如果是,继续步骤5,如果不是2,提示“升级文件数量不足,请检查升级包”。 步骤5,使用步骤3读取的“model number”+“hardware version”+“software version”,匹配文件名称,获取文件夹名称同步骤3读取内容不一致文件夹下的升级bin文件。 步骤6,判断bin文件与MD5码是否一致,一致继续步骤7,不一致提示“升级文件损坏,请检查升级文件” 步骤7,获取遥控通过蓝牙协议同电视的交互信息,判断升级成功或者失败,升级成功则输出日志“UPGRADE_SUCCESS”,升级失败则输出日志“UPGRADE_FAILED:错误原因”,再循环执行步骤2。 图2:遥控器OTA升级自动化测试流程,采用Python语言开发, 步骤1,初始化TV串口SerialTV:SerialTV=serial.Serial(com_id,baudrate=115200)。 步骤2,初始化继电器串口SerialSwitch:SerialSwitch=serial.Serial(com_id,baudrate=9600)。 步骤3,通过SerialTV设置全局变量“settings put global BLUETOOTH_DEBUG 1”,让遥控器OTA升级进入测试模式,再输入“reboot”重启电视。 步骤4,控制TV串口SerialTV,输入logcat |grep Bluetooth来监听ota升级信息 步骤5,设置压测次数“testtimes” 步骤6,清除SerialTV的串口缓存。 步骤7,通过pin_on和pin_off来短接和断开继电器,实现按键 pin_on=[0xFE,0x05,0x00,0x00,0xFF,0x00,0x98,0x35] pin_off=[0xFE,0x05,0x00,0x00,0x00,0x00,0xD9,0xC5]。 步骤8,再读取SerialTV的串口内容,判断10分钟内是否有升级成功信息“UPGRADE_SUCCESS”或者“UPGRADE_FAILED” 步骤9,如果未读取到任何信息,记录失败+1,备份SerialTV日志,重启电视,跳转至步骤7;如果读取到升级成功/失败的信息后,记录成功/失败+1,失败需要备份SerialTV日志,继续测试。 步骤10:判断压测次数是否已经到设置的次数,如果没有,则跳转之步骤6继续执行; 步骤:11,判断压测次数已经达到设置的次数,通过SerialTV设置全局变量“settings put global BLUETOOTH_DEBUG 0”退出测试模式,再输入“reboot”重启电视。 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。 |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |