一种测试方法和设备 【技术领域】
本发明涉及通信技术领域, 尤其是涉及一种测试方法和设备。背景技术 随着通信网络的快速发展, 数据业务层出不穷, 如何评估运营商的网络和相关的 数据业务质量, 为用户提供最优质的服务, 成为了当前运营商提高业务质量的重要方面。 即 如何在保证网络建设的同时, 迅速提升数据业务的质量, 满足用户日益增长对数据业务多 样性和高可靠性的需求, 成为运营商需要解决的问题。
其中, 由于数据业务的使用对象为运营商的用户, 则运营商为了提高数据业务质 量, 需要针对市场的商用终端的各种指标 ( 例如, 产品功能、 产品性能等指标 ) 进行测试, 并 根据测试结果为用户提供最优质的服务。
现有技术中, 运营商在远程自动测试领域中, 测试方式包括 :
(1) 采用测试终端 + 测试软件 ( 路测软件 ) 的模式, 由测试终端针对网络、 信号强 弱进行测试, 并由测试软件对测试终端收集到的数据进行分析, 这种方式下, 很少直接针对 数据业务质量本身进行监控。
(2) 人工拨测模式, 即测试人员重复地使用普通的商用终端进行业务使用测试, 然 后人工记录各种测试数据。
在实现本发明的过程中, 发明人发现现有技术中至少存在以下问题 :
其中, 对于 “测试终端 + 路测软件” 模式的测试终端, 一般为特制的终端, 通常不是 基于市场上常见智能操作系统的, 在这样的终端上进行测试时, 当测试基础数据业务时, 可 以根据协议进行测试开发 ; 而通常不能对自带客户端的业务进行测试。
对于人工拨测模式, 需要人工参与, 不利于网络与业务质量测试, 测试过程会由于 人工参与导致测试准确度的降低。
发明内容
本发明实施例提供一种测试方法和设备, 以在测试终端上准确的进行业务测试。
为了达到上述目的, 本发明实施例提供一种测试方法, 包括 :
测试终端获取屏幕信息 ;
所述测试终端将所述屏幕信息与预设标准图像进行匹配 ;
所述测试终端根据匹配结果确定测试结果。
所述测试终端获取屏幕信息, 包括 :
将所述测试终端的整个屏幕预先划分为一到多个区域, 所述测试终端从所述一到 多个区域中获取指定区域内的屏幕信息。
所述测试终端将所述屏幕信息与预设标准图像进行匹配, 包括 :
所述测试终端在指定时间点将所述屏幕信息与预设标准图像进行匹配 ; 或者,
所述测试终端在到达预设测试总时长后, 将所述屏幕信息与预设标准图像进行匹配; 或者,
所述测试终端在自身性能指标低于预设阈值时, 将所述屏幕信息与预设标准图像 进行匹配 ; 或者,
所述测试终端在每次获取屏幕信息后, 将所述屏幕信息与预设标准图像进行匹 配。
所述测试终端根据匹配结果确定测试结果, 包括 :
当所述屏幕信息与预设标准图像匹配不成功时, 所述测试终端确定测试结果为所 述预设标准图像对应的业务事件没有发生 ;
当所述屏幕信息与预设标准图像匹配成功时, 所述测试终端确定测试结果为所述 预设标准图像对应的业务事件发生。
所述测试终端获取屏幕信息, 包括 :
所述测试终端在预设测试总时长内, 根据预设周期定时获取所述屏幕信息 ; 并将 所述预设测试总时长内每次获取的屏幕信息与所述屏幕信息对应的时间信息存储在所述 测试终端上 ;
所述测试终端根据匹配结果确定测试结果, 包括 :
当存储的所有屏幕信息与预设标准图像匹配均不成功时, 所述测试终端确定测试 结果为所述预设标准图像对应的业务事件没有发生 ;
当存储的所有屏幕信息中有屏幕信息与预设标准图像匹配成功时, 所述测试终端 确定测试结果为所述预设标准图像对应的业务事件时延为最早与预设标准图像匹配成功 的屏幕信息对应的时间信息减去测试开始时间。
所述测试终端获取指定区域内的屏幕信息, 之前还包括 :
所述测试终端通过无线网络从服务器获取测试脚本, 并通过所述测试脚本模拟用 户按键信息或者执行业务协议指令进行业务测试。
本发明实施例提供一种测试设备, 包括 :
获取模块, 用于获取屏幕信息 ;
匹配模块, 用于将所述获取模块获取的所述屏幕信息与预设标准图像进行匹配 ;
确定模块, 用于根据所述匹配模块的匹配结果确定测试结果。
所述获取模块, 具体用于将所述测试终端的整个屏幕预先划分为一到多个区域, 并从所述一到多个区域中获取指定区域内的屏幕信息。
所述匹配模块, 具体用于在指定时间点将所述屏幕信息与预设标准图像进行匹 配; 或者,
在到达预设测试总时长后, 将所述屏幕信息与预设标准图像进行匹配 ; 或者,
在自身性能指标低于预设阈值时, 将所述屏幕信息与预设标准图像进行匹配 ; 或 者,
在每次获取屏幕信息后, 将所述屏幕信息与预设标准图像进行匹配。
所述确定模块, 具体用于当所述屏幕信息与预设标准图像匹配不成功时, 确定测 试结果为所述预设标准图像对应的业务事件没有发生 ;
当所述屏幕信息与预设标准图像匹配成功时, 确定测试结果为所述预设标准图像 对应的业务事件发生。所述获取模块, 具体用于在预设测试总时长内, 根据预设周期定时获取所述屏幕 信息 ; 并将所述预设测试总时长内每次获取的屏幕信息与所述屏幕信息对应的时间信息存 储在所述测试终端上 ;
所述确定模块, 还用于当存储的所有屏幕信息与预设标准图像匹配均不成功时, 确定测试结果为所述预设标准图像对应的业务事件没有发生 ;
当存储的所有屏幕信息中有屏幕信息与预设标准图像匹配成功时, 确定测试结果 为所述预设标准图像对应的业务事件时延为最早与预设标准图像匹配成功的屏幕信息对 应的时间信息减去测试开始时间。
该设备还包括 :
接收模块, 用于通过无线网络从服务器获取测试脚本, 并通过所述测试脚本模拟 用户按键信息或者执行业务协议指令进行业务测试。
与现有技术相比, 本发明实施例至少具有以下优点 :
采用测试终端屏幕分割技术, 使得只需要将指定区域内的屏幕图像与预设标准图 像进行匹配, 大大减少了测试任务占用测试终端的计算量。 附图说明 为了更清楚地说明本发明的技术方案, 下面将对实施例描述中所需要使用的附图 作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于本领域普 通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
图 1 是本发明实施例提供的一种测试方法流程图 ;
图 2A-2C 是本发明实施例应用场景下飞信测试示意图 ;
图 3 是本发明实施例应用场景下彩信测试示意图 ;
图 4 是本发明实施例提供的一种测试设备的结构示意图。
具体实施方式
现有技术中, 测试方法包括 : (1)“测试终端 + 路测软件” 模式 ; (2) 人工拨测模式 ; (3) 业务质量自动化拨测工具, 模拟终端用户发起业务进行自动化业务测试, 并进行自动化 的业务测试, 依靠将手机上的图像准实时的方式复制到 pc 端进行图像识别的方式来进行。
上述测试方法中, 方法 (1) 一般为特殊定制的终端, 不利于各种类型业务的测试 ; 方法 (2) 需要人工参与 ; 方法 (3) 无法对底层的业务或网络参数测试、 无法脱离后台控制平 台进行随时随地测试。
针对上述问题, 本发明实施例提供一种测试方法和设备, 以在商用终端上进行业 务测试, 即在基于智能商用操作系统的终端上安装测试客户端软件, 通过终端屏幕分割和 延时识别技术, 在不影响正在测试的业务执行的前提下, 实现了在终端侧直接通过图像识 别和匹配进行业务测试的能力, 达到脱离后端控制平台的目标。
下面将结合本发明中的附图, 对本发明中的技术方案进行清楚、 完整地描述, 显 然, 所描述的实施例仅仅是本发明的一部分实施例, 而不是全部的实施例。 基于本发明中的 实施例, 本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例, 都 属于本发明保护的范围。本发明实施例提供一种测试方法, 该方法应用于包括测试终端和服务器的系统 中。本发明实施例中, 针对当前网络与业务质量测试的特点, 测试终端不是一种特制的终 端, 而是基于智能操作系统的测试终端 ( 商用终端 ), 只要在该测试终端上安装测试客户端 软件即可。该测试终端能够实现从远程服务器上自动获取并执行测试计划, 通过无线网络 上报测试结果, 并是随时随地进行网络与业务质量测试的终端。
为了实现本发明实施例提供的技术方案, 需要在服务器和测试终端上分别实现以 下功能 :
(1) 服务器侧 : 主要涉及测试计划 ( 即测试脚本 ) 的录制、 版本控制等功能。 其中, 服务器侧的功能包括 :
手机屏幕录制功能 : 对于每一项业务质量的测试计划, 均需要在服务器侧录制测 试脚本 ( 该测试脚本用于使测试终端执行手机屏幕的抓屏操作 ), 通过将测试脚本发送给 测试终端, 由测试终端在执行业务测试时根据该测试脚本执行手机屏幕的抓屏操作。 其中, 在业务执行的过程中, 测试终端需要将每一个判断节点 ( 即判断业务的预设标准图像 ) 对 应的终端侧屏幕进行抓屏并分割, 并可将相关区域内的部分图像同步到服务器侧。
测试流程逻辑控制功能 : 服务器侧可以编辑测试脚本, 该测试脚本除了用于使测 试终端执行手机屏幕的抓屏操作之外, 还可以使相应程序模拟一系列的测试终端侧的操 作, 例如 : 模拟按键信息等。 其中, 每一个操作对应一个或多个模拟按键操作之类的动作, 测 试脚本也可以控制每一个动作的执行的时间点, 该测试脚本可以在测试终端侧由测试客户 端程序负责执行。 脚本管理和发布功能 : 在服务器侧编辑测试脚本后, 测试终端可以远程通过无线 方式连接到服务器侧, 获取指定的测试脚本, 并自动在测试终端本机执行相应的测试脚本, 此时, 脚本管理和发布功能需要将测试脚本发布给测试终端。
测试结果统计分析功能 : 在测试终端的测试完毕之后, 测试终端还可以自动将测 试结果通过无线网络上传给服务器, 此时, 服务器的测试结果统计分析功能需要对测试结 果进行统计分析。
可见, 本发明实施例中, 在服务器侧编辑测试脚本, 该测试脚本中可携带判断节点 ( 即业务对应的预设标准图像信息 )、 测试起点 ( 即测试终端开始测试的信息 )、 终止节点 ( 即测试终端终止测试的信息 ), 通过将测试脚本下发并安装到测试终端上, 由测试终端模 拟按键, 进行用户行为模拟测试 ; 并将测试结果发送给服务器侧。
(2) 测试终端侧, 其中, 测试终端侧的功能包括 :
测试脚本管理功能 : 在测试终端侧的客户端程序可以自动登录到远程服务器, 获 取最新版本的测试脚本, 并通过无线网络下载到测试终端侧进行存储。
测试结果回传功能 : 在测试终端侧的客户端程序可以自动登录到远程服务器, 将 本机的测试结果通过无线网络上传给服务器。
测试脚本执行功能 : 客户端程序可以执行本机的测试脚本, 并控制终端模拟用户 按键信息或者执行业务协议指令进行业务测试。
屏幕图像捕获功能 : 在测试脚本执行的过程中, 定时获取指定区域内的屏幕信息 ( 或者, 截取当前终端屏幕, 并将屏幕大小分割成指定的网格部分 ), 将测试脚本中指定的 区域部分图像保存到测试终端的存储介质中。
图像识别匹配功能 : 在测试脚本执行过程中, 根据测试脚本指定时间点将指定区 域内保存的图像与测试脚本录制时的预设标准图像进行识别或匹配。其中, 匹配的时间点 可由测试脚本控制 ; 例如, 可以在测试结束时统一对保存的所有的图像进行匹配 ; 可以延 时 ( 等到测试终端闲时 ) 对图像进行匹配 ; 可以每次抓屏后立即进行实时匹配等。
基于上述功能, 本发明实施例提供的测试方法, 如图 1 所示, 该方法包括以下步 骤:
步骤 101, 测试终端从服务器侧获取测试脚本。
其中, 该测试脚本中携带的内容包括但不限于 : 指定区域的信息、 预设标准图像的 信息 ( 某业务对应的标准图像 )、 测试时间信息 ( 例如, 预设测试总时长、 测试周期等 )、 模 拟用户按键信息等。
步骤 102, 测试终端开始执行测试脚本, 模拟用户按键信息。
其中, 当获取到测试脚本后, 测试终端中的客户端程序可开始执行测试脚本, 并模 拟用户按键信息, 开始执行业务测试。
步骤 103, 在业务测试过程中, 测试终端获取屏幕信息。 其中, 该屏幕信息为屏幕内 的图像信息。 具体的, 该测试终端可获取指定区域内的屏幕信息。 本发明实施例中, 该指定区域 可以为整个屏幕的区域, 也可以为整个屏幕的部分区域, 可以根据实际需要 ( 例如, 测试脚 本中指定的区域 ) 进行选择。
具体的, 可将测试终端的整个屏幕预先划分为一到多个区域 ( 例如, 将测试终端 的整个屏幕预先划分成 n*m 的网格 ), 本步骤中, 测试终端可从一到多个区域中获取指定区 域内的屏幕信息。例如, 将测试终端的整个屏幕预先划分成 6*6 的网格时, 测试终端可获取 第 3 行第 3 列的屏幕信息。
需要说明的是, 在预设测试总时长内, 测试终端可以根据预设周期定时获取指定 区域内的屏幕信息。例如, 预设测试总时长为 1 分钟, 预设周期为 10s, 则每经过 10s, 测试 终端获取一次屏幕信息, 即共需要获取 6 次指定区域内的屏幕信息。
步骤 104, 测试终端存储指定区域内的屏幕信息。其中, 测试终端可将指定区域内 的屏幕信息存储到自身的存储介质上。
其中, 当测试终端获取整个屏幕的屏幕信息时, 则测试终端可以将整个屏幕的屏 幕信息分割为多个区域, 并可根据实际需要只将部分区域的屏幕信息存储到自身的存储介 质上。
在预设测试总时长内, 测试终端根据预设周期定时获取指定区域内的屏幕信息 时, 测试终端需要将每次获取的屏幕信息均存储到自身的存储介质上。在将每次获取的屏 幕信息存储到自身的存储介质时, 还需要将各个屏幕信息对应的时间信息存储到对应的记 录中。 例如, 存储屏幕信息 1 与时间信息 1 的记录、 存储屏幕信息 2 与时间信息 2 的记录等。
步骤 105, 测试终端将屏幕信息与预设标准图像进行匹配。
其中, 测试终端获取指定区域的屏幕信息后, 可直接将该指定区域的屏幕信息与 预设标准图像进行匹配 ; 也可以将部分区域的屏幕信息与预设标准图像进行匹配 ( 例如, 指定区域为整个屏幕时, 则可以只选择其中需要区域的屏幕信息与预设标准图像进行匹 配 )。由于只匹配了整个屏幕的部分区域, 则可以减少了计算量。
本步骤中, 将屏幕信息与预设标准图像进行匹配的过程包括但不限于 :
(1) 测试终端在指定时间点 ( 测试脚本指定的时间点 ) 将屏幕信息与预设标准图 像进行匹配。
(2) 测试终端在到达预设测试总时长后, 将屏幕信息与预设标准图像进行匹配。
(3) 测试终端在自身性能指标低于预设阈值时, 将屏幕信息与预设标准图像进行 匹配。
例如, 当自身性能指标为 CPU 使用率时, 则当 CPU 使用率低于某阈值表示测试终端 空闲时, 则可以将屏幕信息与预设标准图像进行匹配 ; 又例如, 当自身性能指标为内存使用 率时, 则当内存使用率低于某阈值表示测试终端空闲时, 则可以将屏幕信息与预设标准图 像进行匹配。
(4) 测试终端在每次获取屏幕信息后, 将屏幕信息与预设标准图像进行匹配。
步骤 106, 测试终端根据匹配结果确定测试结果。
其中, 当屏幕信息与预设标准图像匹配不成功时, 测试终端确定测试结果为预设 标准图像对应的业务事件没有发生 ; 当屏幕信息与预设标准图像匹配成功时, 测试终端确 定测试结果为预设标准图像对应的业务事件发生。
另外, 将预设测试总时长内每次获取的屏幕信息与屏幕信息对应的时间信息存储 在测试终端上时, 当存储的所有屏幕信息与预设标准图像匹配均不成功时, 测试终端确定 测试结果为预设标准图像对应的业务事件没有发生 ; 当存储的所有屏幕信息中有屏幕信息 与预设标准图像匹配成功时, 测试终端确定测试结果为预设标准图像对应的业务事件时延 为最早与预设标准图像匹配成功的屏幕信息对应的时间信息减去测试开始时间。
步骤 107, 测试终端通过无线网络将测试结果发送给服务器。
综上所述, 本发明实施例中, 通过采用测试终端屏幕分割技术, 使得只需要将指定 区域内的屏幕图像与预设标准图像进行匹配, 大大减少了测试任务占用测试终端的计算 量。 而采用延时图像匹配计算, 避免在业务运行过程中占用大量的测试终端资源, 只需要定 时存储少量图像数据, 避免了执行测试任务对测试终端正在进行的业务的影响。
为了更加清楚的阐述本发明实施例提供的技术方案, 以下结合具体的应用场景进 行详细说明。
应用场景 1 : 飞信测试, 即测试 “飞信登陆成功率和登陆时延” , 如图 2A 所示的飞信 登陆成功标定图像示意图、 图 2B 所示的模拟点击飞信图标进行登录示意图、 图 2C 所示的定 时截屏示意图。
(1) 测试用例录制
首先确定测试计划 : 使用测试软件依次模拟飞信登陆 100 次, 每次飞信登陆超时 定为 1 分钟 ( 即超过 1 分钟登陆不成功定为本次登陆失败 ), 抓屏间隔设置为 500ms, 登陆 成功的标志为手机屏幕中间偏下部分出现” 首页” 的标定图像 ( 预设标准图像 )。
(2) 测试脚本执行
测试脚本下载到测试终端后, 客户端程序开始执行脚本, 模拟用户按键信息, 在应 用程序页面上点击 “飞信” 的图标, 然后开始计时。
(3) 定时截屏
飞信登陆过程中, 客户端程序定时 ( 每隔 500ms) 进行一次抓屏操作, 直到到达超时时间 (1 分钟 )。
(4) 延时识别
1 分钟后, 本次测试结束, 客户端程序将自动将保存的所有截屏与标准图像进行匹 配, 其中第一次匹配上的图片是第 10 幅图片, 因此, 测试结果为本次登陆成功, 登陆时延 : 500ms*(10-1) = 4.5 秒。
依次进行 100 次这样的测试, 计算成功率和平均登陆时延即为最后的业务质量测 试结果, 并可以通过无线网络将测试结果发送给服务器。
需要注意的是, 本应用场景下, 为全屏幕的截图示意图, 实际测试时使用分割技术 只需要截取屏幕中下部部分相关区域即可。
应用场景 2 : 彩信测试, 即测试终端发送彩信是否成功, 如图 3 所示的测试发送彩 信成功示意图。
其中, 模拟用户的操作依次为 : 手机控制终端进行彩信发送测试, 1、 选择新建彩 信; 2、 选择选取指定图片为附件 ; 3、 发送彩信。
在测试过程中, 分别有 2 个步骤判断发送彩信是否成功 : (1)、 在上述第二步的左 下角 ( 中图 ) 出现 “发送” 的字样 ; (2)、 在上述第三步的后半分钟内屏幕出现 “发送成功” 的字样, 如出现 “无法发送信息” 为失败” 。 其中, 在该测试中, 整个手机屏幕被划分割成了 24*16 块大小, 而判断发送成功或 者失败只需要匹配屏幕中很小的部分即可。即第二张图片中下角出现的 “发送” 图标、 以及 第三涨图片左中部出现的 “无法发送信息” 相关的区域的图像即可。
综上所述, 本发明实施例中, (1) 不需要对现有的测试终端硬件做任何改动, 只需 安装客户端软件即可, 可以测试的业务范围广, 对于终端运行的绝大部分业务 ( 非底层信 令测试 ) 均可进行测试。 (2) 采用手机屏幕分割识别技术, 使得只需要将指定区域内的图像 进行识别和匹配工作, 大大减少了测试任务占用手机的计算量。 (3) 采用延时图像识别和匹 配计算, 避免在业务运行过程中占用大量的手机 CPU, 只需要定时存储少量抓屏图像数据, 避免了执行测试任务对手机正在进行的业务的影响。(4) 终端测试过程脱离 PC 端, 可以做 到随时随地进行业务测试。
基于与上述方法同样的发明构思, 本发明实施例中还提供了一种测试设备, 如图 4 所示, 包括 :
获取模块 41, 用于获取屏幕信息 ;
匹配模块 42, 用于将所述获取模块 41 获取的所述屏幕信息与预设标准图像进行 匹配 ;
确定模块 43, 用于根据所述匹配模块 42 的匹配结果确定测试结果。
所述获取模块 41, 具体用于将所述测试终端的整个屏幕预先划分为一到多个区 域, 并从所述一到多个区域中获取指定区域内的屏幕信息。
所述匹配模块 42, 具体用于在指定时间点将所述屏幕信息与预设标准图像进行匹 配; 或者,
在到达预设测试总时长后, 将所述屏幕信息与预设标准图像进行匹配 ; 或者,
在自身性能指标低于预设阈值时, 将所述屏幕信息与预设标准图像进行匹配 ; 或 者,
在每次获取屏幕信息后, 将所述屏幕信息与预设标准图像进行匹配。
所述确定模块 43, 具体用于当所述屏幕信息与预设标准图像匹配不成功时, 确定 测试结果为所述预设标准图像对应的业务事件没有发生 ;
当所述屏幕信息与预设标准图像匹配成功时, 确定测试结果为所述预设标准图像 对应的业务事件发生。
本发明实施例中,
所述获取模块 41, 具体用于在预设测试总时长内, 根据预设周期定时获取所述屏 幕信息 ; 并将所述预设测试总时长内每次获取的屏幕信息与所述屏幕信息对应的时间信息 存储在所述测试终端上 ;
所述确定模块 43, 还用于当存储的所有屏幕信息与预设标准图像匹配均不成功 时, 确定测试结果为所述预设标准图像对应的业务事件没有发生 ;
当存储的所有屏幕信息中有屏幕信息与预设标准图像匹配成功时, 确定测试结果 为所述预设标准图像对应的业务事件时延为最早与预设标准图像匹配成功的屏幕信息对 应的时间信息减去测试开始时间。
本发明实施例中, 该设备还包括 : 接收模块 44, 用于通过无线网络从服务器获取测试脚本, 并通过所述测试脚本模 拟用户按键信息或者执行业务协议指令进行业务测试。
其中, 本发明装置的各个模块可以集成于一体, 也可以分离部署。 上述模块可以合 并为一个模块, 也可以进一步拆分成多个子模块。
通过以上的实施方式的描述, 本领域的技术人员可以清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现, 当然也可以通过硬件, 但很多情况下前者是更 佳的实施方式。基于这样的理解, 本发明的技术方案本质上或者说对现有技术做出贡献的 部分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括若 干指令用以使得一台计算机设备 ( 可以是个人计算机, 服务器, 或者网络设备等 ) 执行本发 明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图, 附图中的模块或流 程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中, 也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以合并为一个模块, 也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述, 不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例, 但是, 本发明并非局限于此, 任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。