掌桥专利:专业的专利平台
掌桥专利
首页

大规模人机协同的非侵入式性能体验测试方法及装置

文献发布时间:2023-06-19 19:30:30


大规模人机协同的非侵入式性能体验测试方法及装置

技术领域

本发明涉及性能检测技术领域,尤其涉及大规模人机协同的非侵入式性能体验测试方法及装置。

背景技术

目前,在公司大力发展数字化建设的战略引领下,各类信息平台已初步建成,物联网、人工智能等技术平台全面投入使用,各类数据中台不断完善,用户规模成数十倍增长,网络架构日渐复杂;

现有的传统性能测试工具已经可以应对企业级管理系统的日常测试工作,但在面对大集中部署的系统时体现出功能上还存在片面性。主要原因在于部分公司地域广阔,各地市单位物理网络条件不一样,即使在服务器端进行了充分的性能压测,但仍然无法得知复杂网络环境下的真实用户体验;业界虽然有一些云化性能测试解决方案,但需要在被测系统上面安装代理,调试部署工作复杂,对被测系统又有一定影响,对使用者要求较高,短时间内难以在单位落地。因此仅依靠传统的性能测试工具已无法承担集中的超大型系统测试工作。

发明内容

本发明的目的是为了至少解决现有技术的不足之一,提供大规模人机协同的非侵入式性能体验测试方法及装置。

为了实现上述目的,本发明采用以下的技术方案:

具体的,提出大规模人机协同的非侵入式性能体验测试方法,包括以下:

指令体系设计:

在测试准备阶段,在接收到指令员发布的测试预告指令后,地市单位打开系统登录界面并不进行登录,公司建设单位确认当前测试环境运行正常,等待测试执行,

在测试执行阶段,在接收到指令员发布正式测试指令后,地市单位的测试人员通过DevTools工具分析统计测试结果并进行记录,公司建设单位对当前系统运行状态进行监控,公司运维单位通过网络安全设备,对省地边界网络流量等进行监控,获取相关网络流量数据,数据库厂商通过数据库AWR工具,对在压测时段响应速度低于预设标准的SQL进行抓取;

基于指令体系的测试过程:

按照业务模块划分,各地市单位承担若干系统模块的测试,通过统一安排时间段,组织全省参测人员按指定时间、指定模块,在目标测试平台双轨运行环境开展面向应用性能用户体验测试,同时记录应用性能低于预设标准的业务功能;

测试记录筛查分析过程:

获取所记录的应用性能低于预设标准的业务功能的所抓取的SQL进行分析,具体分析内容包括,API请求响应时间分析以及响应码分析,根据分析结果输出问题类型。

进一步,具体的,进行API请求响应时间分析以及响应码分析,根据分析结果输出问题类型,包括,

API请求响应时间分析过程,

将“交易名称”列中筛选不包含/static/的请求,再筛选“响应时间”列不包含“-”的数据得到有效响应总次数,计算单次响应时长大于2秒的响应次数占有效响应总次数的比例P,若比例P高于第一阈值则表示服务器响应慢;

响应码分析过程,

用户访问同一个URL会出现服务器端返回码为200或者为404,推测负载均衡有潜在问题,导致不稳定并返回404。

进一步,所述方法还包括,在对API请求响应时间分析时,对于指定的API,假设本轮测试对于某API一共调用了n次,每一次的请求响应时间分别为x

找寻出平均响应时间大于8秒的API,计算得出每个平均响应时间大于8秒的API的方差为:

通过排序算法筛选出方差大于第一阈值的API,并定义为异常API予以上报。

进一步,具体的,在进行测试过程中,测试物理位置不少于两处,至少应当在地市单位本部以及基层业务部门开展测试。

进一步,所述方法还包括,在完成测试记录筛查分析过程后,对采集到的数据以图表、文字的形式展示,并进行各业务域通过率计算:通过率=通过功能点数/总功能点数,进行各地市单位完成率计算:完成率=每日累计完成情况/总功能点数。

进一步,所述方法还包括,在完成测试记录筛查分析过程后,对存在异常的缺陷进行修复,并统计修复率:修复率=累计修复缺陷数/累计发现缺陷数。

本发明还提出大规模人机协同的非侵入式性能体验测试装置,包括以下:

指令体系设计模块,

用于在测试准备阶段,在接收到指令员发布的测试预告指令后,地市单位打开系统登录界面并不进行登录,公司建设单位确认当前测试环境运行正常,等待测试执行,

在测试执行阶段,在接收到指令员发布正式测试指令后,地市单位的测试人员通过DevTools工具分析统计测试结果并进行记录,公司建设单位对当前系统运行状态进行监控,公司运维单位通过网络安全设备,对省地边界网络流量等进行监控,获取相关网络流量数据,数据库厂商通过数据库AWR工具,对在压测时段响应速度低于预设标准的SQL进行抓取;

测试过程设计模块:

用于按照业务模块划分,各地市单位承担若干系统模块的测试,通过统一安排时间段,组织全省参测人员按指定时间、指定模块,在目标测试平台双轨运行环境开展面向应用性能用户体验测试,同时记录应用性能低于预设标准的业务功能;

测试记录筛查分析模块,

用于获取所记录的应用性能低于预设标准的业务功能的所抓取的SQL进行分析,具体分析内容包括,API请求响应时间分析以及响应码分析,根据分析结果输出问题类型。

进一步,具体的,所述测试记录筛查分析模块包括,

API请求响应时间分析单元,

用于将“交易名称”列中筛选不包含/static/的请求,再筛选“响应时间”列不包含“-”的数据得到有效响应总次数,计算单次响应时长大于2秒的响应次数占有效响应总次数的比例P,若比例P高于第一阈值则表示服务器响应慢;

响应码分析单元,

多个用户集中访问同一个URL有时返回200或者有时返回404或者有时500,有些节点正常的话会返回200,比如节点挂了找不到相关页面可能会出现404,比如由于访问的性能压力过大导致系统出现500的情况也有可能是数据库存储过程或者语句性能调优不足(未建索引等情况)。

进一步,所述API请求响应时间分析单元还用于,

对于指定的API,假设本轮测试对于某API一共调用了n次,每一次的请求响应时间分别为x

找寻出平均响应时间大于8秒的API,计算得出每个平均响应时间大于8秒的API的方差为:

通过排序算法筛选出方差大于第一阈值的API,并定义为异常API予以上报。

本发明的有益效果为:

本发明提供的大规模人机协同的非侵入式性能体验测试方法,在已有众测模式基础上,创造出一套面向全省大规模众测的性能压测指令体系,实现了众测任务的灵活实时调度。同时,基于大规模众测用户产生的压测流量,充分利用部署在省地边界的流量监控工具,进行网络流量同步实时监测,应用数理统计学方法对采集的压测流量数据进行分析,使用python程序计算出压测时段每一个被调用API方法的平均耗时及方差,再通过关联分析用户端体验数据和网络边界流量分析数据,在短时间内发现了大量的典型应用性能问题,实现了压测结果自动采集分析、可视可控。全程无需开发人员配合,无需在被测系统上做侵入式部署。大大提高了测试工作效率,本发明所提出的方法简单易用,结合众测工作开展,在XX平台上线保障的特殊时期发挥了重要作用。

附图说明

通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的输出电压,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:

图1所示为本发明大规模人机协同的非侵入式性能体验测试方法的流程图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。附图中各处使用的相同的附图标记指示相同或相似的部分。

参照图1,实施例1,本发明提出大规模人机协同的非侵入式性能体验测试方法,包括以下:

指令体系设计:

在测试准备阶段,在接收到指令员发布的测试预告指令后,地市单位打开系统登录界面并不进行登录,公司建设单位确认当前测试环境运行正常,等待测试执行,

在测试执行阶段,在接收到指令员发布正式测试指令后,地市单位的测试人员通过DevTools工具分析统计测试结果并进行记录,公司建设单位对当前系统运行状态进行监控,公司运维单位通过网络安全设备,对省地边界网络流量等进行监控,获取相关网络流量数据,数据库厂商通过数据库AWR工具,对在压测时段响应速度低于预设标准的SQL进行抓取;

基于指令体系的测试过程:

按照业务模块划分,各地市单位承担若干系统模块的测试,通过统一安排时间段,组织全省参测人员按指定时间、指定模块,在目标测试平台双轨运行环境开展面向应用性能用户体验测试,同时记录应用性能低于预设标准的业务功能;

测试记录筛查分析过程:

获取所记录的应用性能低于预设标准的业务功能的所抓取的SQL进行分析,具体分析内容包括,API请求响应时间分析以及响应码分析,根据分析结果输出问题类型。

本实施例1,

第一方面,基于网络边界流量监控工具的非侵入式性能检测技术

创造了一种非侵入式性能检测技术,基于网络边界流量监控工具,在大规模真实用户压测同时,进行网络流量同步实时分析。运用科来网络回溯分析系统监测特定时间段内,目标应用ip地址的网络流量数据,根据统计学方差分析原理,应用自主的python脚本开发,实现网络流量统计分析、用户数据多维度统计分析、API请求响应分析、报错分析、请求响应分析等,实现了压测结果自动采集分析、实时可视可控。

第二方面,基于DevTools技术的性能数据捕捉与分析

首次在全省众测工作中运用前端开发工具DevTools获取测试性能数据。各地市单位测试人员运用前端开发工具DevTools监控页面操作响应时间。工具简单易用,页面可视化操作减少了复杂场景下的性能测试脚本的编写、安装和调试工作,使业务人员更高效的进行测试,众测工作得以大规模广泛的实施。

第三方面,全省大规模系统众测指令体系设计与应用

集成众测模式,设计了一套面向全省大规模众测的性能压测调度指令体系。通过灵活的调度方式,实现实时的分布式并发访问压力,在测试过程中获得用户最真实的性能体验,弥补了传统测试工具的不足。

非侵入式性能检测技术以人机协同方式,整体操作简单、方便,培训成本低,无需在被测系统上做侵入式部署,有助于在公司内推广自主性能测试,保障大集中部署系统的软件质量。

作为本发明的优选实施方式,具体的,进行API请求响应时间分析以及响应码分析,根据分析结果输出问题类型,包括,

API请求响应时间分析过程,

将“交易名称”列中筛选不包含/static/的请求,再筛选“响应时间”列不包含“-”的数据得到有效响应总次数,计算单次响应时长大于2秒的响应次数占有效响应总次数的比例P,若比例P高于第一阈值则表示服务器响应慢;

在本过程中,原理是将“交易名称”列中筛选不包含/static/的请求,再筛选“响应时间”列不包含“-”的数据,再将“响应时间”中的时间统一转换成ms并且去除单位,最后使用生成数据透视图生成图表再将“平均响应时间(>2s)”列中数据除以1000转换成秒,将请求总次数为1的方差替换为“/”,将“平均响应时间(>2s)”列降序并且筛选大于4即可得到如下示例表。其中服务器端无响应次数是指“响应时间”列中为“-”的数据,示例如下表1:

表1

响应码分析过程,

用户访问同一个URL会出现服务器端返回码为200或者为404,推测负载均衡有潜在问题,导致不稳定并返回404。如下表2,

表2

用户访问同一个URL会出现服务器端返回码为200或者为500,推测代码性能有所欠缺、服务器资源不足或者负载存在不均衡的情况,怀疑是代码或数据库调优不足,

作为本发明的优选实施方式,所述方法还包括,在对API请求响应时间分析时,对于指定的API,假设本轮测试对于某API一共调用了n次,每一次的请求响应时间分别为x

找寻出平均响应时间大于8秒的API,计算得出每个平均响应时间大于8秒的API的方差为:

方差反映了API请求响应时间的波动程度。方差越小,说明微服务越稳定。因此通过排序算法筛选出方差大于第一阈值的API,并定义为异常API予以上报,从而可以排查出真正的服务端响应缓慢的问题。

作为本发明的优选实施方式,具体的,在进行测试过程中,测试物理位置不少于两处,至少应当在地市单位本部以及基层业务部门开展测试。

作为本发明的优选实施方式,所述方法还包括,在完成测试记录筛查分析过程后,对采集到的数据以图表、文字的形式展示,并进行各业务域通过率计算:通过率=通过功能点数/总功能点数,进行各地市单位完成率计算:完成率=每日累计完成情况/总功能点数。

作为本发明的优选实施方式,所述方法还包括,在完成测试记录筛查分析过程后,对存在异常的缺陷进行修复,并统计修复率:修复率=累计修复缺陷数/累计发现缺陷数。

本发明还提出大规模人机协同的非侵入式性能体验测试装置,包括以下:

指令体系设计模块,

用于在测试准备阶段,在接收到指令员发布的测试预告指令后,地市单位打开系统登录界面并不进行登录,公司建设单位确认当前测试环境运行正常,等待测试执行,

在测试执行阶段,在接收到指令员发布正式测试指令后,地市单位的测试人员通过DevTools工具分析统计测试结果并进行记录,公司建设单位对当前系统运行状态进行监控,公司运维单位通过网络安全设备,对省地边界网络流量等进行监控,获取相关网络流量数据,数据库厂商通过数据库AWR工具,对在压测时段响应速度低于预设标准的SQL进行抓取;

测试过程设计模块:

用于按照业务模块划分,各地市单位承担若干系统模块的测试,通过统一安排时间段,组织全省参测人员按指定时间、指定模块,在目标测试平台双轨运行环境开展面向应用性能用户体验测试,同时记录应用性能低于预设标准的业务功能;

测试记录筛查分析模块,

用于获取所记录的应用性能低于预设标准的业务功能的所抓取的SQL进行分析,具体分析内容包括,API请求响应时间分析以及响应码分析,根据分析结果输出问题类型。

具体的,一个测试过程为,

首先进行指令体系设计

(1)测试准备阶段(T-2分钟)

指令员:发布测试预告指令——“准备测试”;

地市单位:接收指令,打开系统登录界面(无需登录),执行完毕后,在测试elink群回复指令——“XX单位已准备完毕”;

公司建设单位:确认当前测试环境运行正常(微服务运行正常、数据库运行正常),并在测试elink群回复指令——“XX单位准备完毕”。

(2)测试执行阶段(T时间)

指令员:发布正式测试指令——“开始测试”;

地市单位:接收指令,根据3测试用例说明中的“测试用例”,测试人员通过DevTools等工具分析统计测试结果并进行记录;

公司建设单位:对当前系统运行状态进行监控;

公司运维单位:通过网络安全设备,对省地边界网络流量等进行监控,获取相关网络流量数据;

数据库厂商:通过数据库AWR工具,对在压测时段响应较慢的SQL进行抓取。

接着对异地分布式用户真实性能体验的测试方法为:

基于已设计的全省大规模众测指令体系,调度全省300多人在异地并发实时开展系统性能压测。包括以下,

(1)测试方式

按照业务模块划分,各地市单位承担若干系统模块的测试,通过统一安排时间段,组织全省参测人员按指定时间、指定模块,在XX平台双轨运行环境开展面向应用性能用户体验测试,同时记录应用性能不佳的业务功能。

(2)测试人员

各地市以信息中心系统管理员为主,业务部门协同开展,每个地市单位安排不少于3名人员参与(系统管理员应参与)。

(3)测试地点

各单位在属地开展测试工作。测试物理位置不少于两处。为充分验证不同网络条件下的系统性能,应至少在地市单位本部(或信息中心)所在地、基层业务部门(尤其应注重偏远地区用户感受)开展测试。

最后对海量测试记录快速筛查分析方法:

针对地市单位众测人员反馈的海量测试记录,通过以下方法来进行快速分析,精确掌握系统存在主要质量问题。

(1)问题数据搜集

在开展众测工作过程中,需要对各地市单位测试的功能点执行情况及问题记录信息进行规范化填写。

(2)抽样分析

收集数据后,需对所有缺陷进行二次整理分类,需重新定义缺陷类型、典型分类是否对应缺陷描述类型,再根据业务域以及使用频率、业务重要性进行抽样分析。

(3)全量多维度分析

在抽样分析后,需要对信息表格进行数据整理及分类,分析维度如下表:功能性、性能效率、兼容性、易用性、稳定性等。

(4)生成数据统计表

对收集到的数据进行图表、文字等形式进行,也可根据需要扩展内容,内容包括如下:

各业务域通过率统计表:通过率=通过功能点数/总功能点数

各地市单位完成率统计表及趋势图:完成率=每日累计完成情况/总功能点数

各模块业务验证情况汇总表:修复率=累计修复缺陷数/累计发现缺陷数。

进行上述测试后,所能达到的性能指标如下,

本成果在2021年XX平台生产环境标准集群配置下的性能表现如下:

众测数据收集到分析出结果最短≤4小时。

最大支持压测10万的并发数。

网络监控工具支持最大导出的表的条目≤50万条。

在2021年XX平台试点期间的十二轮全省众测工作中,通过采用本技术,迅速且精准掌握了系统质量情况,推动XX平台测试通过率由19%提升至61%。

以第二轮众测工作为例,本次已测试总数为1786个功能点,通过测试的功能点333个,未通过测试的功能点有1453个,通过率为18.65%。

测试所发现的缺陷问题如下表3,

表3

作为本发明的优选实施方式,具体的,所述测试记录筛查分析模块包括,

API请求响应时间分析单元,

用于将“交易名称”列中筛选不包含/static/的请求,再筛选“响应时间”列不包含“-”的数据得到有效响应总次数,计算单次响应时长大于2秒的响应次数占有效响应总次数的比例P,若比例P高于第一阈值则表示服务器响应慢;

响应码分析单元,

用于在用户访问同一个URL会出现服务器端返回码为200或者为404,推测负载均衡有潜在问题,导致不稳定并返回404。

作为本发明的优选实施方式,所述API请求响应时间分析单元还用于,

对于指定的API,假设本轮测试对于某API一共调用了n次,每一次的请求响应时间分别为x

找寻出平均响应时间大于8秒的API,计算得出每个平均响应时间大于8秒的API的方差为:

通过排序算法筛选出方差大于第一阈值的API,并定义为异常API予以上报。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例中的方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储的介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。

尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

相关技术
  • 基于协同训练的非侵入式负荷识别方法及其测试系统
  • 非侵入式智能合约性能检测方法和装置
  • 非侵入式机床动态性能检测方法、系统、终端及装置
技术分类

06120115930703