Skip to content
🎨 作者:张龙、mikigo、李涛 📔 阅读量:

一种机器分离的应用响应性能自动化测试方案技术交底书

0、缩略语和关键术语定义

术语全称解释
埋点埋点分析是一种常用的数据采集方法。
分帧视频分帧将视频分解为连续静止的图片。
串口设备USB串口转USB键鼠协议线一种将串口数据基于 HID 协议规范打包通过 USB 口上传给计算机的硬件设备
视频采集设备Video Capture card用以将模拟摄像机、录像机LD视盘机、电视机输出的视频信号等输出的视频数据或者视频和音频的混合数据输入电脑,并转换成电脑可辨别的数字数据,存储在电脑中,成为可编辑处理的视频数据文件

1、相关技术背景(背景技术),与本发明最相近似的现有实现方案(现有技术)

软件响应性能是衡量应用综合性能的重要指标之一。每个应用发布之前,我们需要对其启动速度、页面响应速度做全方位的测试。本专利主要通过机器分离的方法,通过USB串口设备发送键鼠指令,模拟真实的鼠标键盘操作,并通过视频采集设备完成测试机录屏;在测试机不运行脚本,真实还原用户使用场景的情况下,对应用启动响应速度、界面切换响应速度、文件拷贝速度、文件保存速度等指标进行自动化测试。

实际生产环境中,为了获得更加准确的数据,我们常使用外部设备录制操作过程,然后将录制的视频进行分帧处理,然后手动寻找首帧和尾帧,再计算整个过程的耗时。

1.1、与本发明相关的现有技术

1.1.1、现有技术的技术方案

日常生产环境中,我们采用录屏分帧的测试方法。以应用启动为例:在电脑开机后,等待系统资源加载完成,然后使用外部设备(如手机)对准屏幕录制视频;录制开始后,我们需要使用鼠标键盘执行一次应用启动的过程,待应用加载完成后结束录制;视频录制完成后,再对保存的视频进行分帧操作,然后人工查找应用启动的第一帧和最后一帧,根据帧数差值,计算应用启动耗时。整个过程如下图 (一) 所示:

图(一) 常规测试方法

1.1.2、现有技术的缺点

(1)外部设备拍摄的视频不稳定。因为拍摄人员、拍摄角度、拍摄手法、视频清晰度都会不同。同时外界光线等因素的干扰,也会对视频质量产生严重影响,最终影响结果的准确性。

(2) 视频录制、视频分帧、首尾帧查找等需要大量的人力成本,整个过程费时费力。

1.2、与本发明相关的现有技术二

1.2.1、现有技术二的技术方案

在程序中增加埋点,通过埋点触发的时间差来计算时长。这个方法也就是在应用的代码上增加一个埋点,代码运行到埋点处打一个时间戳,再运行到下一个埋点处又打一个时间戳,这两个时间戳的差值,就是时间差值,整个流程如图(二)所示:

图(二) 数据埋点

1.2.2、现有技术二的缺点

(1) 需要在代码中提前做好埋点,然后才能进行测试;而在代码中增加很多个埋点,对性能肯定是有影响的。其次上线后,不能保留埋点代码,所以导致测试版本和用户使用版本不一致。

(2) 此方案是站在计算机的角度去测试时长,并没有站在用户使用眼睛感受的角度。根据实际经验来看,此方案测试结果与实际结果误差也超过了100ms。****

2、本发明技术方案的详细阐述

2.1、本发明所要解决的技术问题

(1)在测试机上直接执行性能测试用例脚本,脚本本身需要占用系统资源,对性能测试造成影响。

(2)解决其他测试方案中人力投入大、耗时耗力、测试结果不准确的问题。

2.2、本发明提供的完整技术方案

通过串口设备,在服务端模拟鼠标键盘操作,通过USB接口发送给测试机,使测试机执行响应的指令;另外,通过视频采集设备,将测试机的视频信号输入到服务端,由服务端录制整个操作过程,并完成视频解析;最后通过机器学习,自动查找首尾帧并计算结果,将结果汇总并呈现出来。

图(三) 自动化测试流程图

2.2.1、设备连接

(1) 将USB串口设备主控端连接于服务器USB接口,被控端连接于测试机USB接口。

(2) 从测试机显卡接口或主板接口(含有集成显卡的主机)连接视频线,将视频线连接到视频采集设备上,再将视频采集设备连接于服务端。由此服务端可以获取到测试机的桌面视频信号。

2.2.2、测试执行

以应用启动指标为例,我们需要执行以下过程:

(1) 服务端执行代码,将生成的鼠标移动指令集、键盘输入指令集通过串口设备发送给测试机。

(2) 测试机从USB接口获取到指令集。

(3) 服务端获取测试机桌面视频信号,开启录屏。

(4) 测试机执行接受到的鼠标键盘操作,在菜单栏点击应用图标,执行启动过程。

(5) 服务端停止录屏,生成记录整个操作过程的视频。

(6) 重复测试过程,录制多个视频。

2.2.3、视频解析与数据计算

通过视频解析工具,将录制的视频分解为连续的图片。并通过计算前后图片的相似度,将所有图片划分为多个稳定阶段(静止画面)和不稳定阶段(连续变化过程),如图(四)所示:

图(四) 视频解析与阶段分类

以应用启动指标为例,启动过程包含鼠标右键点击应用图标-鼠标点击打开按钮-等待应用加载完成。在视频解析和阶段划分完成后,从鼠标点击到应用打开,会处于两个不稳定阶段——即上图的unstable,利用这样的规律,我们可以自动获取到启动过程的首帧和尾帧,然后通过计算首尾帧之前的图片帧数来计算耗时。例如:首帧和尾帧之前有10张图片,由于视频分解的帧率为33帧/秒,即每一帧图片的耗时为1000/33毫秒(ms),因此启动耗时为10 x 33 = 330(ms)。

2.3、本发明技术方案带来的有益效果

(1)解决了测试应用响应性能过程中需要投入大量人力、时间的问题。

(2)所有脚本均在服务端执行,测试机仅通过USB串口设备控制,排除对于测试机性能的干扰,确保性能测试数据稳定可靠。

2.4、针对上述技术方案,是否还有替代方案同样能完成发明目的

3、本发明的技术关键点和欲保护点是什么

(1)本技术方案可应用于所有架构;通过机器分离的方式,排除对于测试机性能的干扰项,完成全流程自动化测试。

(2)采用机器学习的技术方案,智能识别应用响应性能数据,解放人力物力。

4、附件:

参考文献(如专利/论文/标准等)

l Stagesepx视频解析工具:

https://github.com/williamfzc/stagesepx

l USB键盘鼠标协议:

https://download.csdn.net/download/qq_33779211/9408498

l USB串口设备开发文档:

https://blog.csdn.net/longor1991/article/details/81095896