CN110633209B - 一种车载安卓多媒体导航仪自动化测试方法及系统 - Google Patents
一种车载安卓多媒体导航仪自动化测试方法及系统 Download PDFInfo
- Publication number
- CN110633209B CN110633209B CN201910778786.2A CN201910778786A CN110633209B CN 110633209 B CN110633209 B CN 110633209B CN 201910778786 A CN201910778786 A CN 201910778786A CN 110633209 B CN110633209 B CN 110633209B
- Authority
- CN
- China
- Prior art keywords
- test
- multimedia navigator
- multimedia
- navigator
- interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C25/00—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/24—Arrangements for testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Manufacturing & Machinery (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明一种车载安卓多媒体导航仪自动化测试系统,包括计算机,多媒体导航仪与计算机电连接,路由器,其输入端口通过无线/有线与网络连接,其输出端口与计算机网络接口连接,服务器用于存储多媒体导航仪的软件代码,编译并发布多媒体导航仪软件升级包,服务器的网络接口与路由器的输出端口连接,手机用于蓝牙音乐及电话功能的测试,手机通过蓝牙与多媒体导航仪无线连接,U盘存储有测试用的音频、视频和图片测试文件,U盘与多媒体导航仪电连接,USB CAN盒用于接收或发送报文,USB CAN盒的一端与计算机电连接,USB CAN盒的另一端与多媒体导航仪电连接。本发明可提高自动化测试脚本开发效率,提高自动化测试效率,减少人工投入成本和其他设备投入成本。
Description
技术领域
本发明涉及车载多媒体生产领域,尤其涉及一种车载安卓多媒体导航仪自动化测试方法及系统。
背景技术
自从安卓系统开放免费以来,成为越来越多移动设备的首选操作系统,这也包括了车载多媒体导航仪。
现代科技发展越来越快,基于安卓的车载多媒体导航仪,其功能也越来越复杂,其User Interface(即用户界面,简称UI)越来越多,UI元素(如触摸屏软按钮等)越来越丰富。在为人们提供各种便利之前,多媒体导航仪需要经历设计和制造阶段,设计制造商必须对其进行UI和功能测试,来保证其功能可靠。
目前,车载安卓多媒体导航仪各APP(即应用软件,简称APP)的UI和功能自动化测试,主要是基于Appium(Appium是一个开源的自动化测试工具)、UIAutomator(UIAutomator是一个用于单元测试、性能测试、压力测试、ROM层级的测试、或是App间协作须跨进程的测试工具)自动化测试框架的脚本式自动化测试,可以编写测试脚本对其UI元素或界面坐标进行点击测试。虽然实现了自动化测试、可7天*24小时不间断测试,但是,现有的安卓自动化测试仍存在以下缺陷:
(1)测试案例开发速度较慢,不能快速适应软件开发的不断迭代与持续集成的测试需要;
(2)当UI及其元素ID、图片、文本、坐标变化时,此前的测试案例不能重用;
(3)测试脚本中确定了元素ID、文本、坐标的测试方式,测试时不能改变;
(4)测试人员要求有一定的编程基础、了解测试代码。
为了解决上述的问题,本发明提供了一种车载安卓多媒体导航仪自动化测试方法及系统。
发明内容
本发明的发明目的在于解决现有安卓自动化测试,存在测试案例开发速度较慢,不能快速适应软件开发的不断迭代与持续集成的测试需要,当UI及其元素ID、图片、文本、坐标变化时,此前测试案例不能重用,测试脚本中确定了元素ID、文本、坐标的测试方式,测试时不能改变,测试人员要求有一定的编程基础、了解测试代码的问题。其具体解决方案如下:
一种车载安卓多媒体导航仪自动化测试系统,包括:
计算机,为系统控制设备,其内设有测试系统程序;
多媒体导航仪,为被测设备,与计算机电连接;
路由器,其输入端口通过无线/有线与网络连接,其输出端口与计算机网络接口连接;
服务器,用于存储多媒体导航仪的软件代码,编译并发布多媒体导航仪软件升级包,服务器的网络接口与路由器的输出端口连接;
手机,用于蓝牙音乐及电话功能的测试,手机通过蓝牙与多媒体导航仪无线连接;
U盘,存储有测试用的音频、视频和图片测试文件,用于多媒体文件播放功能测试,U盘与多媒体导航仪电连接;
USB CAN盒,用于接收或发送报文,USB CAN盒的一端与计算机电连接,USB CAN盒的另一端通过CAN BUS与多媒体导航仪电连接。
进一步地,所述计算机包括存储器和安卓模拟器,存储器装有Python程序、Appium软件,安卓模拟器可模拟多媒体导航仪系统,并在其中安装、操作和卸载多媒体导航仪APP,对多媒体导航仪系统进行测试。
进一步地,所述计算机分别与显示器和键盘、鼠标电连接。
进一步地,所述计算机通过FT232RL芯片转USB接口线,向所述多媒体导航仪发出,打开USB调试开关的指令,通过USB或WIFI与多媒体导航仪建立ADB连接,发送测试指令,同时反馈测试结果;多媒体导航仪通过FT232RL芯片转USB接口线,反馈其运行状态的日志给计算机。
进一步地,该测试系统将Appium命令封装为,简洁的、中文的文本命令关键字,并扩展Appium,以支持串口收发、图片比对、USB CAN盒管理功能。
进一步地,所述测试系统,可读取并显示多媒体导航仪中APP的安卓安装包,选择并下载、读取安装包名和Activity参数,扫描和分析当前多媒体导航仪运行APP的UI元素,选中UI元素后,可自动获取其ID、文本、坐标,截取图片并记录图片路径和名称,形成测试字典和测试样本图片库。
进一步地,所述测试系统,可创建并形成测试案例库,并可根据需要进行编辑;可根据输入的测试需求文档,自动选择所需的测试案例、测试字典和测试方式,生成测试脚本、发送给被测多媒体导航仪进行测试;测试过程中,可控制USB CAN盒发送、接收和解析总线报文,记录并保存测试案例执行日志、多媒体导航仪运行日志和图片,与样本图片库中的图片进行比对,分析执行结果并判断,是否符合多媒体导航仪的UI及功能设计,输出测试报告。
进一步地,所述测试系统,还可选择测试失败暂停、邮件通知选项,在测试失败时暂停测试,发送测试失败和测试结果的通知邮件。
基于上述一种车载安卓多媒体导航仪自动化测试系统的一种车载安卓多媒体导航仪自动化测试方法,按以下步骤进行:
步骤1,开始运行,测试系统初始化;
步骤2,用户选择多媒体导航仪测试还是安卓模拟器测试?
若选择安卓模拟器测试,则转步骤6;
若不选择安卓模拟器测试,则选择多媒体导航仪测试;
步骤3,多媒体导航仪开机否?
开机,则转步骤6;
若未正常开机,则转步骤4;
步骤4,红色指示灯亮;
步骤5,结束运行;
步骤6,多媒体导航仪或者安卓模拟器,启动测试管理模块界面,等待用户做各项测试准备;在测试管理模块界面,点击各模块功能按钮,可进入相应的模块管理界面;
步骤7,在测试字典管理模块界面,系统将读取并显示多媒体导航仪内各APP的安装包,用户选择所需测试的APP对应的安装包后,自动下载、解析其包名和Activity参数,获取运行中App UI界面及其元素的ID、文本、坐标信息,根据元素坐标,自动调用图片管理模块,截取元素样本图片;用户可选择并将所需的安装包名、Activity参数、元素的各种信息存入测试字典,还可根据需要对测试字典中的元素及信息进行增加、删除、修改管理,完成创建或编辑测试字典;
步骤8,在图片管理模块界面,截取需比对界面的样本图片;
步骤9,在CAN报文管理模块界面,用户可编辑待发送CAN报文指令及多媒体导航仪输出的结果报文;
步骤10,在测试案例管理模块界面,用户可制作测试案例,选择测试方式及待执行测试案例,点击测试脚本生成按钮,系统将自动生成测试脚本;也可导入符合系统规定格式的测试案例文档;至此,测试所需的测试脚本、多媒体导航仪界面及元素样本图片准备完毕;
步骤11,用户在测试管理模块界面,选择测试脚本,点击开始按钮开始测试,测试管理模块将自动根据测试脚本执行测试,系统将测试脚本转化成被测多媒体导航仪可理解和执行的命令,多媒体导航仪执行命令并返回执行结果,Appium监听到返回结果后,将该结果返回给Python程序,Python程序记录和分析执行结果,并判断是否符合多媒体导航仪的UI及功能设计,输出测试报告,测试结果通过显示模块显示在显示器屏幕上,转步骤5;
步骤12,若测试前,打开失败停止开关、在邮箱管理模块界面,设置邮件接收地址,则系统在识别到测试脚本命令执行失败时,将暂停测试、保留现场,同时发送邮件通知用户,用户收到邮件后可前往查看和处理,如果经分析需继续往下测试,可点击继续测试按钮,继续执行测试,系统通过邮件将测试报告发送给用户,转步骤5;
步骤13,测试过程中,如遇紧急情况,可点击紧急停止按钮,直接转步骤5;
步骤14,测试中生成的测试案例、测试脚本、测试报告、样本图片、测试字典,保存到测试数据库中;
步骤15,若下次测试时,测试需求无更改,则跳过测试案例编辑与生成、测试脚本编辑与生成步骤,直接在测试管理模块界面,选择所需的测试脚本进行测试;
步骤16,若下次测试时,测试案例无更改,界面颜色及元素ID、坐标、文本变化较大,只需重新生成测试字典,再据此生成新的测试脚本,执行测试;
步骤17,若下次测试时,测试需求改动较小,测试案例和测试字典大部分可沿用,只是小部分需要更改,可进入对应的管理模块界面,进行相应的编辑、管理操作,然后生成测试脚本再执行测试;
步骤18,若下次测试时,测试案例无更改,测试需求有更改,可直接导入测试需求文档,点击测试脚本生成按钮,重新生成测试脚本并执行测试。
进一步地,所述测试脚本包括测试指令和被操作元素ID、文本、坐标、待发送CAN报文,还包括多媒体导航仪界面与元素样本图片、元素结果状态、以及CAN报文测试结果信息。所述图片管理模块界面,可对图片进行截取、删除、比对的管理操作。所述测试报告可在测试报告管理模块界面,进行查看、删除的管理操作。
综上所述,采用本发明的技术方案具有以下有益效果:
本发明解决了现有安卓自动化测试,存在测试案例开发速度较慢,不能快速适应软件开发的不断迭代与持续集成的测试需要,当UI及其元素ID、图片、文本、坐标变化时,此前测试案例不能重用,测试脚本中确定了元素ID、文本、坐标的测试方式,测试时不能改变,测试人员要求有一定的编程基础、了解测试代码的问题。为解决多媒体导航仪自动化测试的难点,衍生与之匹配的自动化测试系统,通过设计和实现基于Appium自动化测试框架的多媒体导航仪自动化测试系统,测试人员只需设计文本测试案例、创建测试字典,便可根据测试需要,灵活选择元素ID、文本、坐标的测试方式,自动生成测试脚本,而不需要了解和编写测试脚本代码。该测试系统,可以对真实多媒体导航仪进行测试,也可以对运行在安卓模拟器上的多媒体导航仪APP进行模拟点击、测试,还可以通过服务器中Jenkins(Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具)配置、触发持续集成、下载、自动升级,并对多媒体导航仪APP进行测试。因此可大大提高自动化测试脚本开发效率,提高自动化测试效率,减少测试的人工投入成本和其他自动化测试方式(如机械臂模拟点击等测试方式)所需的设备投入成本。
本专利实现了车载安卓多媒体导航仪APP的UI和功能的自动化测试,测试命令及其操作对象(UI元素的ID、文本、坐标等)被抽象为简洁的、中文的文本命令关键字和名称等,能创建测试字典、存储和管理被操作对象,当被操作对象变化时,只需重新生成或编辑字典,从而实现测试案例的重用,简化测试设计,大大提高测试设计效率。可灵活选择UI元素的ID、文本、坐标等测试方式。可进行CAN(为Controller Area Network的缩写,中文为控制器局域网络)报文接收与解析、图片比对,丰富了安卓多媒体导航仪的可测试功能类型。可记多媒体录导航仪运行日志,并在日志中标记每个测试案例的测试起始和结束,有助于问题的定位与分析。可实现多媒体导航仪软件集成、升级、测试、结果判断、输出报告的全自动化执行,很大程度地节省人力,提升测试效率。这些优势都是现有的Appium、UIAutomator自动化测试框架所不具备的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还能够根据这些附图获得其他的附图。
图1为本发明一种车载安卓多媒体导航仪自动化测试系统方框图;
图2为本发明一种车载安卓多媒体导航仪自动化测试方法的程序图。
附图标识说明:
1-计算机,2-多媒体导航仪,3-路由器,4-服务器,5-手机,6-U盘,7-USB CAN盒,8-显示器,9-键盘、鼠标,10-测试管理模块,11-存储器,12-安卓模拟器,13-测试字典管理模块,14-图片管理模块,15-CAN报文管理模块,16-测试案例管理模块,17-显示模块,18-测试数据库,19-测试报告管理模块,20-测试字典,21-样本图片,22-测试案例,23-测试报告,24-测试脚本,25-紧急停止按钮,26-邮箱管理模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种车载安卓多媒体导航仪自动化测试系统,包括:
计算机1,为系统控制设备,其内设有测试系统程序;
多媒体导航仪2,为被测设备,与计算机1电连接;
路由器3,其输入端口通过无线(比如WIFI)/有线(比如ETH接口)与网络连接,其输出端口通过TCP/IP与计算机1网络接口连接;
服务器4,用于存储多媒体导航仪2的软件代码,编译并发布多媒体导航仪2软件升级包,服务器4的网络接口与路由器3的输出端口通过TCP/IP连接;
手机5,用于蓝牙音乐及电话功能的测试,手机通过蓝牙与多媒体导航仪2无线连接;
U盘6,存储有测试用的音频、视频和图片测试文件,用于多媒体文件播放功能测试,U盘6与多媒体导航仪2电连接;U盘6也可用SD卡或TF卡来代替。
USB CAN盒7,用于接收或发送报文到CAN BUS(总线),USB CAN盒7的一端与计算机1电连接,USB CAN盒7的另一端通过CAN BUS与多媒体导航仪2电连接。USB CAN盒7为周立功USB CAN盒子。
进一步地,计算机1包括存储器11和安卓模拟器12,存储器11装有Python程序(包括Appium Client)、Appium(Appium Server)软件,安卓模拟器12可模拟多媒体导航仪2系统,并在其中安装、操作和卸载多媒体导航仪2APP(指手机应用程序),对多媒体导航仪2系统进行测试。
进一步地,计算机1分别与显示器8和键盘、鼠标9电连接。显示器8和键盘、鼠标9也可用触摸显示屏来代替。
进一步地,计算机1通过FT232RL芯片转USB接口线,向多媒体导航仪2发出,打开USB调试开关的指令,通过USB或WIFI与多媒体导航仪2建立ADB(ADB的全称为AndroidDebug Bridge,就是起到调试桥的作用)连接,发送测试指令,同时反馈测试结果。多媒体导航仪2通过FT232RL芯片转USB接口线,反馈其运行状态的日志(也就是Log)给计算机1。
进一步地,测试系统(即为本方案一种车载安卓多媒体导航仪自动化测试系统的简称)将Appium命令封装为,简洁的、中文的文本命令关键字,并扩展Appium,以支持串口收发、图片比对、USB CAN盒7管理功能。
进一步地,测试系统,可读取并显示多媒体导航仪2中APP的安卓安装包(也就是APK包),选择并下载、读取安装包名和Activity(即APP入口)参数,扫描和分析当前多媒体导航仪2运行APP的UI元素,选中UI元素后,可自动获取其ID、文本、坐标,截取图片并记录图片路径和名称,形成测试字典20和测试样本图片21库。
进一步地,测试系统,可创建并形成测试案例22库,并可根据需要进行编辑;可根据输入的测试需求文档,自动选择所需的测试案例22、测试字典20和测试方式(包括ID、文本、坐标),生成测试脚本24、发送给被测多媒体导航仪2进行测试。测试过程中,可控制USBCAN盒7发送、接收和解析总线报文,记录并保存测试案例22执行日志、多媒体导航仪2运行日志和图片,与样本图片21库中的图片进行比对,分析执行结果并判断,是否符合多媒体导航仪2的UI及功能设计,输出测试报告23。
进一步地,测试系统,还可选择测试失败暂停、邮件通知选项,在测试失败时暂停测试,发送测试失败和测试结果的通知邮件。
如图2所示,基于上述测试系统的一种车载安卓多媒体导航仪自动化测试方法,按以下步骤进行:
步骤1,开始运行,测试系统初始化;
步骤2,用户选择多媒体导航仪2测试还是安卓模拟器12测试?
若选择安卓模拟器12测试,则转步骤6;
若不选择安卓模拟器12测试,则选择多媒体导航仪2测试;
步骤3,多媒体导航仪2开机否?
开机,则转步骤6;
若未正常开机,则转步骤4;
步骤4,红色指示灯亮;
步骤5,结束运行;
步骤6,多媒体导航仪2或者安卓模拟器12,启动测试管理模块10界面,等待用户做各项测试准备;在测试管理模块10界面,点击各模块功能按钮,可进入相应的模块管理界面;
步骤7,在测试字典管理模块13界面,系统将读取并显示多媒体导航仪2内各APP的安装包,用户选择所需测试的APP对应的安装包后,自动下载、解析其包名和Activity参数,获取运行中App UI界面及其元素的ID、文本、坐标信息,根据元素坐标,自动调用图片管理模块14,截取元素样本图片;用户可选择并将所需的安装包名、Activity参数、元素的各种信息(包括其图片名称及存储路径)存入测试字典20,还可根据需要对测试字典20中的元素及信息进行增加、删除、修改管理,完成创建或编辑测试字典20;
步骤8,在图片管理模块14界面,截取需比对界面的样本图片21;
步骤9,在CAN报文管理模块15界面,用户可编辑待发送CAN报文指令及多媒体导航仪2输出的结果报文;
步骤10,在测试案例管理模块16界面,用户可制作测试案例22,选择测试方式(比如ID、文本、坐标)及待执行测试案例22,点击测试脚本生成按钮,系统将自动生成测试脚本24;也可导入符合系统规定格式的测试案例22文档;至此,测试所需的测试脚本24、多媒体导航仪2界面及元素样本图片21准备完毕;
步骤11,用户在测试管理模块10界面,选择测试脚本24,点击开始按钮开始测试,测试管理模块10将自动根据测试脚本24执行测试,系统将测试脚本24发送给AppiumClient,Appium Client通过WebDriver协议将之发送给Appium Sever,Appium Sever将其转化成被测多媒体导航仪2可理解和执行的命令,多媒体导航仪2执行命令并返回执行结果,Appium监听到返回结果后,将该结果返回给Appium Client,Appium Client再传递给Python程序,Python程序记录和分析执行结果,并判断是否符合多媒体导航仪2的UI及功能设计,输出测试报告23,测试结果通过显示模块17驱动后显示在显示器8屏幕上,转步骤5;
步骤12,若测试前,打开失败(也就是Failed)停止开关、在邮箱管理模块26界面,设置邮件接收地址,则系统在识别到测试脚本24命令执行失败时,将暂停测试、保留现场,同时发送邮件通知用户,用户收到邮件后可前往查看和处理,如果经分析需继续往下测试,可点击继续测试按钮,继续执行测试,系统通过邮件将测试报告23发送给用户,转步骤5;
步骤13,测试过程中,如遇紧急情况,可点击紧急停止按钮25,直接转步骤5;
步骤14,测试中生成的测试案例22、测试脚本24、测试报告23、样本图片21、测试字典20,保存到测试数据库18中;
步骤15,若下次测试时,测试需求无更改,则跳过测试案例22编辑与生成、测试脚本24编辑与生成步骤,直接在测试管理模块10界面,选择所需的测试脚本24进行测试;
步骤16,若下次测试时,测试案例22无更改,界面颜色及元素ID、坐标、文本变化较大,只需重新生成测试字典20,再据此生成新的测试脚本24,执行测试;
步骤17,若下次测试时,测试需求改动较小,测试案例22和测试字典20大部分可沿用,只是小部分需要更改,可进入对应的管理模块界面,进行相应的编辑、管理操作,然后生成测试脚本24再执行测试;
步骤18,若下次测试时,测试案例22无更改,测试需求有更改,可直接导入测试需求文档,点击测试脚本生成按钮,重新生成测试脚本24并执行测试。
进一步地,上述测试脚本24包括测试指令和被操作元素ID、文本、坐标、待发送CAN报文,还包括多媒体导航仪2界面与元素样本图片、元素结果状态、以及CAN报文测试结果信息。测试报告管理模块19界面,可对测试记录及标记(包括图片)、测试报告23进行查看、删除(指精简性的删除编辑)等管理操作。图片管理模块14界面,可对图片进行截取、删除、比对的管理操作。
用户亦可通过安卓模拟器12,将待测试多媒体导航仪2系统及其APP安装在其中,在生成测试字典20、测试脚本24、设置测试失败停止和邮件通知等选项后,对安卓模拟器12中的多媒体导航仪系统进行测试。测试前的准备和测试过程,与测试多媒体导航仪2真机基本一致,只是Appium Sever将测试命令发给了安卓模拟器12,安卓模拟器12中的多媒体导航仪系统执行测试命令、返回测试结果。
服务器4安装了Jenkins软件,并配置了多媒体导航仪2系统集成、推送更新和测试调度脚本,待开发人员上传代码后,Jenkins将根据配置、自动集成并推送新版软件,到被测多媒体导航仪2或安卓模拟器12,待升级完成后触发Python程序,进行测试、输出测试结果。
需要指出的是,现有的Appium、UIAutomator等自动化测试框架,未提供图片分析功能,测试过程中,不能根据捕捉到的多媒体导航仪2界面图片,分析其显示是否正确。Appium、UIAutomator等自动化测试框架,未提供CAN消息通讯的接口及控制功能,不能模拟和测试多媒体导航仪2与其他车载电子产品之间的通讯与交互。Appium、UIAutomator等自动化测试框架,不能发送串口命令、自动与多媒体导航仪2建立ADB连接,亦未提供多媒体导航仪2日志消息接收、显示、测试案例测试开始/结束标记,不利于多媒体导航仪2测试问题的跟踪和定位分析。
综上所述,采用本发明的技术方案具有以下有益效果:
本发明解决了现有安卓自动化测试,存在测试案例开发速度较慢,不能快速适应软件开发的不断迭代与持续集成的测试需要,当UI及其元素ID、图片、文本、坐标变化时,此前测试案例不能重用,测试脚本中确定了元素ID、文本、坐标的测试方式,测试时不能改变,测试人员要求有一定的编程基础、了解测试代码的问题。为解决多媒体导航仪自动化测试的难点,衍生与之匹配的自动化测试系统,通过设计和实现基于Appium自动化测试框架的多媒体导航仪自动化测试系统,测试人员只需设计文本测试案例22、创建测试字典20,便可根据测试需要,灵活选择元素ID、文本、坐标的测试方式,自动生成测试脚本24,而不需要了解和编写测试脚本24代码。该测试系统,可以对真实多媒体导航仪2进行测试,也可以对运行在安卓模拟器12上的多媒体导航仪APP进行模拟点击、测试,还可以通过服务器4中Jenkins(Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具)配置、触发持续集成、下载、自动升级,并对多媒体导航仪APP进行测试。因此可大大提高自动化测试脚本24开发效率,提高自动化测试效率,减少测试的人工投入成本和其他自动化测试方式(如机械臂模拟点击等测试方式)所需的设备投入成本。
本专利实现了车载安卓多媒体导航仪APP的UI和功能的自动化测试,测试命令及其操作对象(UI元素的ID、文本、坐标等)被抽象为简洁的、中文的文本命令关键字和名称等,能创建测试字典20、存储和管理被操作对象,当被操作对象变化时,只需重新生成或编辑字典,从而实现测试案例22的重用,简化测试设计,大大提高测试设计效率。可灵活选择UI元素的ID、文本、坐标等测试方式。可进行CAN(为Controller Area Network的缩写,中文为控制器局域网络)报文接收与解析、图片比对,丰富了安卓多媒体导航仪2的可测试功能类型。可记多媒体录导航仪2运行日志,并在日志中标记每个测试案例的测试起始和结束,有助于问题的定位与分析。可实现多媒体导航仪2软件集成、升级、测试、结果判断、输出报告的全自动化执行,很大程度地节省人力,提升测试效率。这些优势都是现有的Appium、UIAutomator自动化测试框架所不具备的。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。
Claims (10)
1.一种车载安卓多媒体导航仪自动化测试方法,其特征在于,按以下步骤进行:
步骤1,开始运行,测试系统初始化;
步骤2,用户选择多媒体导航仪测试还是安卓模拟器测试?
若选择安卓模拟器测试,则转步骤6;
若不选择安卓模拟器测试,则选择多媒体导航仪测试;
步骤3,多媒体导航仪开机否?开机,则转步骤6;若未正常开机,则转步骤4;
步骤4,红色指示灯亮;
步骤5,结束运行;
步骤6,多媒体导航仪或者安卓模拟器,启动测试管理模块界面,等待用户做各项测试准备;在测试管理模块界面,点击各模块功能按钮,可进入相应的模块管理界面;
步骤7,在测试字典管理模块界面,系统将读取并显示多媒体导航仪内各APP的安装包,用户选择所需测试的APP对应的安装包后,自动下载、解析其包名和Activity参数,获取运行中App UI界面及其元素的ID、文本、坐标信息,根据元素坐标,自动调用图片管理模块,截取元素样本图片;用户可选择并将所需的安装包名、Activity参数、元素的各种信息存入测试字典,还可根据需要对测试字典中的元素及信息进行增加、删除、修改管理,完成创建或编辑测试字典;
步骤8,在图片管理模块界面,截取需比对界面的样本图片;
步骤9,在CAN报文管理模块界面,用户可编辑待发送CAN报文指令及多媒体导航仪输出的结果报文;
步骤10,在测试案例管理模块界面,用户可制作测试案例,选择测试方式及待执行测试案例,点击测试脚本生成按钮,系统将自动生成测试脚本;也可导入符合系统规定格式的测试案例文档;至此,测试所需的测试脚本、多媒体导航仪界面及元素样本图片准备完毕;
步骤11,用户在测试管理模块界面,选择测试脚本,点击开始按钮开始测试,测试管理模块将自动根据测试脚本执行测试,系统将测试脚本转化成被测多媒体导航仪可理解和执行的命令,多媒体导航仪执行命令并返回执行结果,Appium监听到返回结果后,将该结果返回给Python程序,Python程序记录和分析执行结果,并判断是否符合多媒体导航仪的UI及功能设计,输出测试报告,测试结果通过显示模块显示在显示器屏幕上,转步骤5;
步骤12,若测试前,打开失败停止开关、在邮箱管理模块界面,设置邮件接收地址,则系统在识别到测试脚本命令执行失败时,将暂停测试、保留现场,同时发送邮件通知用户,用户收到邮件后可前往查看和处理,如果经分析需继续往下测试,可点击继续测试按钮,继续执行测试,系统通过邮件将测试报告发送给用户,转步骤5;
步骤13,测试过程中,如遇紧急情况,可点击紧急停止按钮,直接转步骤5;
步骤14,测试中生成的测试案例、测试脚本、测试报告、样本图片、测试字典,保存到测试数据库中;
步骤15,若下次测试时,测试需求无更改,则跳过测试案例编辑与生成、测试脚本编辑与生成步骤,直接在测试管理模块界面,选择所需的测试脚本进行测试;
步骤16,若下次测试时,测试案例无更改,界面颜色及元素ID、坐标、文本发生变化,只需重新生成测试字典,再据此生成新的测试脚本,执行测试;
步骤17,若下次测试时,测试需求发生改动,测试案例和测试字典大部分可沿用,只是小部分需要更改,可进入对应的管理模块界面,进行相应的编辑、管理操作,然后生成测试脚本再执行测试;
步骤18,若下次测试时,测试案例无更改,测试需求有更改,可直接导入测试需求文档,点击测试脚本生成按钮,重新生成测试脚本并执行测试。
2.根据权利要求1所述一种车载安卓多媒体导航仪自动化测试方法,其特征在于:所述测试脚本包括测试指令和被操作元素ID、文本、坐标、待发送CAN报文,还包括多媒体导航仪界面与元素样本图片、元素结果状态、以及CAN报文测试结果信息;所述图片管理模块界面,可对图片进行截取、删除、比对的管理操作;所述测试报告可在测试报告管理模块界面,进行查看、删除的管理操作。
3.一种车载安卓多媒体导航仪自动化测试系统,用于实现权利要求1或2所述一种车载安卓多媒体导航仪自动化测试方法,其特征在于:包括
计算机,为系统控制设备,其内设有测试系统程序;
多媒体导航仪,为被测设备,与计算机电连接;
路由器,其输入端口通过无线/有线与网络连接,其输出端口与计算机网络接口连接;
服务器,用于存储多媒体导航仪的软件代码,编译并发布多媒体导航仪软件升级包,服务器的网络接口与路由器的输出端口连接;
手机,用于蓝牙音乐及电话功能的测试,手机通过蓝牙与多媒体导航仪无线连接;
U盘,存储有测试用的音频、视频和图片测试文件,用于多媒体文件播放功能测试,U盘与多媒体导航仪电连接;
USB CAN盒,用于接收或发送报文,USB CAN盒的一端与计算机电连接,USB CAN盒的另一端通过CAN BUS与多媒体导航仪电连接。
4.根据权利要求3所述一种车载安卓多媒体导航仪自动化测试系统,其特征在于:所述计算机包括存储器和安卓模拟器,存储器装有Python程序、Appium软件,安卓模拟器可模拟多媒体导航仪系统,并在其中安装、操作和卸载多媒体导航仪APP,对多媒体导航仪系统进行测试。
5.根据权利要求4所述一种车载安卓多媒体导航仪自动化测试系统,其特征在于:所述计算机分别与显示器和键盘、鼠标电连接。
6.根据权利要求5所述一种车载安卓多媒体导航仪自动化测试系统,其特征在于:所述计算机通过FT232RL芯片转USB接口线,向所述多媒体导航仪发出,打开USB调试开关的指令,通过USB或WIFI与多媒体导航仪建立ADB连接,发送测试指令,同时反馈测试结果;多媒体导航仪通过FT232RL芯片转USB接口线,反馈其运行状态的日志给计算机。
7.根据权利要求6所述一种车载安卓多媒体导航仪自动化测试系统,其特征在于:该测试系统将Appium命令封装为,简洁的、中文的文本命令关键字,并扩展Appium,以支持串口收发、图片比对、USB CAN盒管理功能。
8.根据权利要求7所述一种车载安卓多媒体导航仪自动化测试系统,其特征在于:所述测试系统,可读取并显示多媒体导航仪中APP的安卓安装包,选择并下载、读取安装包名和Activity参数,扫描和分析当前多媒体导航仪运行APP的UI元素,选中UI元素后,可自动获取其ID、文本、坐标,截取图片并记录图片路径和名称,形成测试字典和测试样本图片库。
9.根据权利要求8所述一种车载安卓多媒体导航仪自动化测试系统,其特征在于:所述测试系统,可创建并形成测试案例库,并可根据需要进行编辑;可根据输入的测试需求文档,自动选择所需的测试案例、测试字典和测试方式,生成测试脚本、发送给被测多媒体导航仪进行测试;测试过程中,可控制USB CAN盒发送、接收和解析总线报文,记录并保存测试案例执行日志、多媒体导航仪运行日志和图片,与样本图片库中的图片进行比对,分析执行结果并判断,是否符合多媒体导航仪的UI及功能设计,输出测试报告。
10.根据权利要求9所述一种车载安卓多媒体导航仪自动化测试系统,其特征在于:所述测试系统,还可选择测试失败暂停、邮件通知选项,在测试失败时暂停测试,发送测试失败和测试结果的通知邮件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910778786.2A CN110633209B (zh) | 2019-08-22 | 2019-08-22 | 一种车载安卓多媒体导航仪自动化测试方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910778786.2A CN110633209B (zh) | 2019-08-22 | 2019-08-22 | 一种车载安卓多媒体导航仪自动化测试方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110633209A CN110633209A (zh) | 2019-12-31 |
CN110633209B true CN110633209B (zh) | 2023-01-06 |
Family
ID=68970739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910778786.2A Active CN110633209B (zh) | 2019-08-22 | 2019-08-22 | 一种车载安卓多媒体导航仪自动化测试方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633209B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111474865B (zh) * | 2020-03-31 | 2024-03-12 | 北京经纬恒润科技股份有限公司 | 智能车载终端控制器休眠唤醒测试系统 |
CN112214404A (zh) * | 2020-09-27 | 2021-01-12 | 航天信息股份有限公司 | 移动应用的测试方法、装置、存储介质及电子设备 |
CN112373419B (zh) * | 2020-10-28 | 2023-12-15 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载多媒体下线配置功能自动测试系统及方法 |
CN112378420A (zh) * | 2020-10-30 | 2021-02-19 | 北斗星通智联科技有限责任公司 | 用于汽车导航测试的信号模拟方法、系统及电子设备 |
CN112445703A (zh) * | 2020-11-13 | 2021-03-05 | 伯泰克汽车电子(芜湖)有限公司 | 一种用于车载多媒体设备的测试系统和方法 |
CN112463618A (zh) * | 2020-12-04 | 2021-03-09 | 斑马网络技术有限公司 | 自动化测试方法、装置、介质及设备 |
CN112988492A (zh) * | 2021-02-01 | 2021-06-18 | 武汉光庭信息技术股份有限公司 | 一种tel通话功能的自动化测试装置及测试方法 |
CN113110909A (zh) * | 2021-04-20 | 2021-07-13 | 肇庆小鹏汽车有限公司 | 一种车辆仪表的测试方法和装置 |
CN113904966B (zh) * | 2021-08-31 | 2024-03-19 | 惠州市德赛西威汽车电子股份有限公司 | 一种自动测试车载多媒体手机互联功能的系统与方法 |
CN114755936A (zh) * | 2022-04-20 | 2022-07-15 | 中国第一汽车股份有限公司 | 空气悬架自动测试系统及方法 |
CN114936358A (zh) * | 2022-06-10 | 2022-08-23 | 知迪汽车技术(北京)有限公司 | 基于人机交互的校验方法及校验系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103901307A (zh) * | 2014-04-22 | 2014-07-02 | 上海扬梓投资管理有限公司 | 一种用于车载多媒体装置的测试系统及方法 |
CN109285543A (zh) * | 2018-09-07 | 2019-01-29 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载多媒体导航仪语音自动化测试系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006072193A1 (fr) * | 2005-01-05 | 2006-07-13 | New Noah Technology (Shenzhen) Co., Ltd. | Systeme de transition d'informations a distance pour machine portative d'apprentissage reseau multimedia et procede correspondant |
-
2019
- 2019-08-22 CN CN201910778786.2A patent/CN110633209B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103901307A (zh) * | 2014-04-22 | 2014-07-02 | 上海扬梓投资管理有限公司 | 一种用于车载多媒体装置的测试系统及方法 |
CN109285543A (zh) * | 2018-09-07 | 2019-01-29 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载多媒体导航仪语音自动化测试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110633209A (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110633209B (zh) | 一种车载安卓多媒体导航仪自动化测试方法及系统 | |
CN107704395B (zh) | 一种基于Openstack下云平台自动化测试实施方法与系统 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN109840206B (zh) | 数据测试方法、装置、终端及存储介质 | |
CN111651366B (zh) | Sdk测试方法、装置、设备及存储介质 | |
CN110781085A (zh) | 一种游戏自动化测试方法、装置、终端和计算机存储介质 | |
CN101145982A (zh) | 一种基于对象模型与协议组态配置的通用网关设计方法 | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN110362490B (zh) | 融合iOS与Android移动应用的自动化测试方法及系统 | |
CN110008123A (zh) | 一种自动部署测试软件的方法以及相应的装置 | |
KR20080052341A (ko) | 내장형 시스템 소프트웨어 자동 테스트 시스템 및 방법과테스트 시나리오 작성 방법 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN112732587A (zh) | 一种自动化测试日志的获取方法、装置、电子设备及存储介质 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN112231206A (zh) | 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台 | |
CN111651232A (zh) | 一机多控方法、装置、系统及电子设备 | |
Wang et al. | Research on mobile application automation testing technology based on appium | |
CN112770108B (zh) | 性能的测试方法、装置、系统及计算机可读存储介质 | |
CN116627850B (zh) | 函数调试方法、装置、存储介质以及电子设备 | |
CN113254054A (zh) | 一种智能合约一站式开发系统及方法 | |
CN111444109B (zh) | 一种移动端ui自动化测试方法及系统 | |
CN112765028A (zh) | 基于群控机制的Android应用程序测试方法及系统 | |
CN112099410A (zh) | 一种软件自动化控制系统和方法 | |
CN107480050B (zh) | 一种自动测试更新包的测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |