CN111290897A - 异步存储测试方法、电子装置、计算机设备及存储介质 - Google Patents
异步存储测试方法、电子装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN111290897A CN111290897A CN202010102341.5A CN202010102341A CN111290897A CN 111290897 A CN111290897 A CN 111290897A CN 202010102341 A CN202010102341 A CN 202010102341A CN 111290897 A CN111290897 A CN 111290897A
- Authority
- CN
- China
- Prior art keywords
- asynchronous
- performance
- verifying
- module
- celery
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title abstract description 7
- 238000012545 processing Methods 0.000 claims abstract description 66
- 238000012360 testing method Methods 0.000 claims abstract description 59
- 235000015849 Apium graveolens Dulce Group Nutrition 0.000 claims abstract description 36
- 235000010591 Appio Nutrition 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 19
- 238000011056 performance test Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 73
- 240000007087 Apium graveolens Species 0.000 claims description 35
- 238000012795 verification Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 6
- 241001178520 Stomatepia mongo Species 0.000 claims description 4
- 241000238814 Orthoptera Species 0.000 claims description 3
- 244000101724 Apium graveolens Dulce Group Species 0.000 abstract 1
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000004044 response Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种异步存储测试方法、装置、计算机设备及存储介质,方法包括:获取客户端的HTTP请求数据,并返回ID;对所述HTTP请求数据进行异步处理;调用回调函数API监听处理结果;验证异步功能;验证celery是否塞满;验证celery work端性能;验证gunion服务性能;生成性能测试报告。本方法在异步处理结束之后进行异步测试,并增加回调函数,有利于获得异步的性能和功能,从而对异步架构的测试进行改进。
Description
技术领域
本发明涉及异步处理领域,涉及一种异步处理方法、电子装置、计算机设备及存储介质。
背景技术
在互联网时代服务器是任何产品必不可少的重要组成部分,面对海量用户如何设计高性能并发的网络框架是个经典问题,现有的技术方案大致如下:一个线程专用处理网络,其余线程作为线程池来处理任务,现有技术方案中,并发完全依赖线程数量,严重加大***开销,而且随着连接数的增多,现有方案开销线性增长,处理每个连接都要使用一个线程,而到一定的数量后,效率随着线程数的增加而减少。而现有技术中AI算法涉及的参数较多,计算量大,存储或者算法需要进行异步处理,传统的测试方法只能针对同步处理进行测试,无法对异步处理进行测试,无法获取异步处理的性能指标,无法对异步处理的功能进行适应性改进。
发明内容
本发明要解决的技术问题是为了测试异步的部分,提出了一种异步存储测试方法。
本发明是通过下述技术方案来解决上述技术问题:
一种异步存储测试方法,包括以下步骤:
步骤1、获取客户端的HTTP请求数据,并返回ID;
步骤2、对所述HTTP请求数据进行异步处理;
步骤3、调用回调函数API监听处理结果;
步骤4、验证异步功能,若通过,则进入步骤5;
步骤5、验证celery是否塞满,若通过,则进入步骤6;
步骤6、验证celery work端性能,若通过,则进入步骤7;
步骤7、验证gunion服务性能;
步骤8、生成性能测试报告。
进一步地,步骤5中验证celery是否塞满包括:查看RabbitMQ服务器是否有报错信息或者崩掉,若是,则celery已塞满。
进一步地,步骤6中验证celery work端性能包括:提取celery work的性能指标,通过python提取Locust及top值。
进一步地,步骤3中调用回调函数API监听处理结果包括:调用回调函数并检验回调函数是否成功返回回调内容,若否,则数据还在处理中,若是,则异步存储测试完毕。
进一步地,步骤7中验证gunion服务性能包括:通过python提取top命令中的性能指标以及locust的最优tps。
进一步地,步骤4中验证异步功能包括:
判断异步测试路径是否通畅,具体包括验证日志中是否一直调用回调函数中请求,若是,则进入下一步;
判断work部分能否写入日志,通过进入日志校验数据写入日志是否正确,若是,则进入下一步;
判断work部分能否写入数据库,通过进入mongo校验数据写入数据库是否正确性,若是,则进入下一步。
本发明还公开了一种电子装置,包括:
数据采集模块,用于采集客户端发送的HTTP请求数据,并返回ID至客户端;
异步处理模块,用于对所述HTTP请求数据进行异步处理;
回调模块,用于在异步处理结束之后,调用回调函数并检验回调函数是否成功返回回调内容;
异步功能验证模块,用于判断异步功能是否满足,包括验证异步测试路径是否通畅、work部分写入日志是否成功、work部分写入数据库是否成功;
Celery验证模块,用于验证celery组件的性能是否满足;
gunion性能验证模块,用于验证服务器端的gunion性能是否满足;
报告生成模块,用于将提取的性能指标生成测试报告。
进一步地,Celery验证模块包括celery塞满验证子模块和celery work端性能验证子模块,celery塞满验证子模块用于验证celery是否已塞满,celery work端性能验证子模块用于验证celery work端性能指标是否满足。
本发明还公开了一种计算机设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如上所述的异步存储测试方法的步骤。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以实现如上所述的异步存储测试方法的步骤。
本发明的积极进步效果在于:通过在异步处理结束之后进行异步测试,并增加回调函数,解决了现有技术只能测试同步的性能不能测试异步性能的问题,有利于获得异步测试的性能指标,从而对异步测试架构进行改进以获得更好的测试效果。
附图说明
图1示出了本发明异步存储测试方法实施例一的流程图;
图2示出了本发明异步存储测试方法实施例二的流程图;
图3示出了本发明异步存储测试装置第一实施例的结构图。
图4示出了本发明异步存储测试装置第二实施例的结构图。
图5示出了本发明计算机设备一实施例的硬件架构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
首先,本发明提出一种异步存储测试方法。
在实施例一中,如图1-2所示,所述异步存储测试方法包括如下步骤:
步骤1、获取客户端的HTTP请求数据,并返回ID;
客户端发送HTTP请求至服务端,服务端返回ID至客户端,客户端可以根据该ID查询异步存储测试进展。HTTP请求指从客户端到服务器的请求消息,包括消息首行中,对资源的请求方法、资源的标识符以及使用协议,当客户端通过浏览器向web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,HTTP请求信息由3部分组成,包括请求方法URL协议/版本、请求头、请求正文。以微表情反欺诈大数据***为例,用户通过客户端发送验证请求至微表情反欺诈平台,***返回用户ID,供用户查询处理进展,***对该请求进行异步处理,处理结束后,返回用户风险欺诈值。
步骤2、对所述HTTP请求数据进行异步处理;
异步处理就是按照不同步的程序处理问题,异步处理的好处就是提高设备使用率,从而在宏观上提升程序运行效率。***收到客户端的HTTP请求之后,对所述请求数据进行异步处理,包括异步存储入参和请求返回的response值,即通过celery call发送异步处理任务给celery组件,celery组件将任务发送给RabbitMQ,并从RabbitMQ提取消息,RabbitMQ将数据给work1、work2处理,work1从celery中取出数据进行存储处理操作,work2从celery中取出数据进行存储处理操作,具体包括如下子步骤:
输入HTTP请求数据和response数据进入RabbitMQ消息队列;
celery从RabbitMQ中提取任务处理消息;
work1、work2分别从celery中取出数据进行存储处理操作。
对HTTP请求数据进行异步处理可以立即给调用方返回初步的处理结果,并且可以延迟给调用方最终的结果数据,在此期间可以做更多额外的工作,异步流程在执行过程中,可以释放占用的线程等资源,避免阻塞,等到结果产生再重新获取线程处理,同时异步流程可以等多次调用的结果出来后,再统一返回一次结果集合,提高响应效率。
Celery是一个基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,Celery在执行任务时需要通过一个消息中间件来接收和发送任务消息,以及存储任务结果,一般使用RabbitMQ,即使用者通过Celery发送任务至RabbitMQ,RabbitMQ将获取的任务分配给不同的Celery work1、work2、work3、…、workn进行处理。
步骤3、调用回调函数API监听处理结果;
回调函数就是一个通过函数指针调用的函数,如果把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,即这是回调函数,回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外一方调用的,用于对该事件或条件进行响应。在对异步处理进行异步测试之前,在回调查询数据库中编写回调函数代码,即定义一个回调函数,提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者,当特定的时间或条件发生的时候,如在异步处理结束后,***调用回调函数并检验回调函数是否成功返回回调内容,若否,则表明数据还在处理中,若是,则表明异步存储测试完毕。
在异步处理完成后,增加API回调函数,通知服务端,起到监听作用,检验回调函数是否成功返回回调内容,通过在celery日志中查看,若日志中回调的url一直在请求,则代表数据还在处理中,若回调函数返回标识码,则代表异步存储测试完成,回调内容包括查询接口,也可以根据需求进行添加,将需要的回调内容写入到回调函数中。异步任务执行后任务发起方或调用方有感知,比如发出一个事件或通知,通过API回调函数监听方式测试。
现有技术中对事件通知的监听一般通过轮询方式,但轮询测试的可靠性取决于待测试***的可靠性,一旦在两次轮询中间***状态因为某些原因出现抖动,下一次轮询时轮询方式可能会误以为异步操作还未完成或出现了异常,从而导致测试结果误判,而本实施例中采用API回调函数监听方式不存在这样问题,只要***状态发生改变,监听中的测试能立马感知到,并作出可靠的测试结果。
步骤4、验证异步功能,若通过,则进入步骤5;
在编写完回调函数代码后,需要验证异步功能是否满足,包括以下三步判断:
步骤4-1、判断异步测试路径是否通畅,具体包括验证日志中是否一直调用回调函数中请求,若是,则表明整条测试路径是通的,进入步骤4-2;
步骤4-2、判断work部分能否写入日志,通过进入日志校验数据写入日志是否正确,若是,则work部分能够写入日志,进入步骤4-3;
步骤4-3、判断work部分能否写入数据库,通过进入mongo校验数据写入数据库是否正确性,若是,则work部分写入数据库是成功的,进入步骤5。
步骤5、验证celery是否塞满,若通过,则进入步骤6;
查看RabbitMQ服务器是否有报错信息或者崩掉,若是,则表明celery已塞满。
具体包括:若内存占满,RabbitMQ服务器有报错信息或者崩掉,说明celery已塞满,则使用工具调大并发量,内存大增,通过web管理插件查看RabbitMQ的内存和消息个数以及消息的使用率,其中,ready表示celery可以读到的条数,unacked表示未被应答数,total表示队列中消息总条数。当内存使用达到100%,消息队列写入会报错,整个RabbitMQ服务器会挂掉,塞满也是通过jmeter/locust工具大并发量跑,使得进入RabbitMQ的数据比work消费的数据大很多,这种情况很难实现塞满。模拟塞满情况采用只往RabbitMQ中写入,celery work消费的服务未启用,方才实现塞满的情况。
RabbitMQ作为一个消息代理,主要和消息打交道,负责接收并转发消息,RabbitMQ提供了可靠的消息机制、跟踪机制和灵活的消息路由,支持消息集群和分布式部署。
步骤6、验证celery work端性能,若验证通过,则进入步骤7;
提取celery work的性能指标,通过python提取Locust及top值。
具体包括:提取celery work端的部分性能指标,如cpu,gpu,memory,响应时间等,通过python提取top命令中的性能指标,如cpu,gpu,memory,响应时间,用python提取Locust的最优tps,其中最优选择条件为:tps上涨到一定值后下降,该峰值点为最优值。若峰值一样,选择响应时间短的为tps最优,提取后的性能指标生成性能测试报告。大并发量时,celery从消息队列rabbitmg中取出,celery work进行处理,根据异步处理的内容,算法或存储,即执行要处理任务的代码。
步骤7、验证gunion服务性能;若验证通过,则生成性能测试报告。
通过python提取top命令中的性能指标以及locust的最优tps。
具体包括:提取服务器端gunicorn的性能指标,如cpu,memory,gpu,显存,内存,响应时间,通过python提取top命令中的性能指标,如cpu,gpu,memory,显存,内存,响应时间,以及用python提取Locust的最优tps,其中,最优选择条件:tps上涨到一定值后下降,该峰值点为最优值。若峰值一样,选择响应时间短的为tps最优,提取后的性能指标生成性能测试报告。
步骤8、生成性能测试报告。
提取完毕前述的性能指标后,根据需要选择生成性能测试报告的内容,形成异步测试的测试报告。
其次,本发明提出了一种异步存储测试装置,所述装置20可以被分割为一个或者多个模块。
例如,图3示出了所述异步存储测试装置20第一实施例的结构图,该实施例中,所述装置20可以被分割为数据采集模块201、异步处理模块202、回调模块203、异步功能验证模块204和Celery验证模块205、gunion性能验证模块206、报告生成模块207。以下描述将具体介绍所述模块201-207的具体功能。
数据采集模块201,用于采集客户端发送的HTTP请求数据,并返回ID至客户端;客户端发送http请求至服务端,服务端返回ID至客户端,客户端可以根据该ID查询异步存储测试进展。数据采集模块201采集所述HTTP请求数据,并返回ID至客户端。
异步处理模块202,用于对所述HTTP请求数据进行异步处理;***收到客户端的HTTP请求之后,异步处理模块202对所述请求数据进行异步处理,包括异步存储入参和请求返回的response值,即通过celery call发送异步处理任务给celery组件,celery组件将任务发送给RabbitMQ,并从RabbitMQ提取消息,RabbitMQ将数据给work1、work2处理,work1从celery中取出数据进行存储处理操作,work2从celery中取出数据进行存储处理操作,具体包括如下子步骤:
输入HTTP请求数据和response数据进入RabbitMQ消息队列;
celery从RabbitMQ中提取任务处理消息;
work1、work2分别从celery中取出数据进行存储处理操作。
回调模块203,用于在异步处理结束之后,回调模块203调用回调函数并检验回调函数是否成功返回回调内容;在对异步处理进行异步测试之前,在回调查询数据库中编写回调函数代码,在异步处理结束后,***调用回调函数并检验回调函数是否成功返回回调内容,若否,则表明数据还在处理中,若是,则表明异步存储测试完毕。在异步处理完成后,增加API回调函数,通知服务端,起到监听作用,检验回调函数是否成功返回回调内容,通过在celery日志中查看,若日志中回调的url一直在请求,则代表数据还在处理中,若回调函数返回标识码,则代表异步存储测试完成,回调内容包括查询接口,也可以根据需求进行添加,将需要的回调内容写入到回调函数中。
异步功能验证模块204,用于判断异步功能是否满足,包括验证异步测试路径是否通畅、work部分写入日志是否成功、work部分写入数据库是否成功;在编写完回调函数代码后,异步功能验证模块204验证异步功能是否满足,包括一下三步判断:
判断异步测试路径是否通畅,具体包括验证日志中是否一直调用回调函数中请求,若是,则表明整条测试路径是通的,进入步骤4-2;
判断work部分能否写入日志,通过进入日志校验数据写入日志是否正确,若是,则work部分能够写入日志,进入步骤4-3;
判断work部分能否写入数据库,通过进入mongo校验数据写入数据库是否正确性,若是,则work部分写入数据库是成功的,进入步骤5。
Celery验证模块205,用于验证celery组件的性能是否满足;
gunion性能验证模块206,用于验证服务器端的gunion性能是否满足;
报告生成模块207,用于将提取的性能指标生成测试报告。报告生成模块207提取服务器端gunicorn的性能指标,如cpu,memory,gpu,显存,内存,响应时间,通过python提取top命令中的性能指标,如cpu,gpu,memory,显存,内存,响应时间,以及用python提取Locust的最优tps,其中,最优选择条件:tps上涨到一定值后下降,该峰值点为最优值。若峰值一样,选择响应时间短的为tps最优,提取后的性能指标生成性能测试报告。
图4示出了所述异步存储测试装置20第二实施例的结构图。
Celery验证模块205包括celery塞满验证子模块2051和celery work端性能验证子模块2052,celery塞满验证子模块2051用于验证celery是否已塞满,celery work端性能验证子模块2052用于验证celery work端性能指标是否满足。
再次,本发明还提出来一种计算机设备。
参阅图5所示,是本发明计算机设备一实施例的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过***总线相互通信连接存储器21、处理器22以及网络接口23。其中:
所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述计算机设备2的操作***和各类应用软件,例如用于实现所述异步存储测试方法的计算机程序等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他异步存储测试芯片。该处理器22通常用于控制所述计算机设备2的总体操作,例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行用于实现所述异步存储测试方法的计算机程序等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他计算机设备之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯***(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图5仅示出了具有组件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,存储于存储器21中的用于实现所述异步存储测试方法的计算机程序可以被一个或多个处理器(本实施例为处理器22)所执行,以完成以下步骤的操作:
步骤1、获取客户端的HTTP请求数据,并返回ID;
步骤2、对所述HTTP请求数据进行异步处理;
步骤3、调用回调函数API监听处理结果;
步骤4、验证异步功能,若通过,则进入步骤5;
步骤5、验证celery是否塞满,若通过,则进入步骤6;
步骤6、验证celery work端性能,若通过,则进入步骤7;
步骤7、验证gunion服务性能;
步骤8、生成性能测试报告。
此外,本发明一种计算机可读存储介质,所述计算机可读存储介质为非易失性可读存储介质,其内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以实现上述异步存储测试方法或装置的操作。
其中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作***和各类应用软件,例如前述用于实现所述异步存储测试方法的计算机程序等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种异步存储测试方法,其特征在于,包括以下步骤:
步骤1、获取客户端的HTTP请求数据,并返回ID;
步骤2、对所述HTTP请求数据进行异步处理;
步骤3、调用回调函数API监听处理结果;
步骤4、验证异步功能,若通过,则进入步骤5;
步骤5、验证celery是否塞满,若通过,则进入步骤6;
步骤6、验证celery work端性能,若通过,则进入步骤7;
步骤7、验证gunion服务性能;
步骤8、生成性能测试报告。
2.根据权利要求1所述的方法,其特征在于,步骤5中验证celery是否塞满包括:查看RabbitMQ服务器是否有报错信息或者崩掉,若是,则celery已塞满。
3.根据权利要求1所述的方法,其特征在于:步骤6中验证celery work端性能包括:提取celery work的性能指标,通过python提取Locust及top值。
4.根据权利要求1所述的方法,其特征在于:步骤3中调用回调函数API监听处理结果包括:调用回调函数并检验回调函数是否成功返回回调内容,若否,则数据还在处理中,若是,则异步存储测试完毕。
5.根据权利要求1所述的方法,其特征在于:步骤7中验证gunion服务性能包括:通过python提取top命令中的性能指标以及locust的最优tps。
6.根据权利要求1所述的方法,其特征在于,步骤4中验证异步功能包括:
判断异步测试路径是否通畅,具体包括验证日志中是否一直调用回调函数中请求,若是,则进入下一步;
判断work部分能否写入日志,通过进入日志校验数据写入日志是否正确,若是,则进入下一步;
判断work部分能否写入数据库,通过进入mongo校验数据写入数据库是否正确性,若是,则进入下一步。
7.一种异步存储测试装置,其特征在于,包括:
数据采集模块,用于采集客户端发送的HTTP请求数据,并返回ID至客户端;
异步处理模块,用于对所述HTTP请求数据进行异步处理;
回调模块,用于在异步处理结束之后,调用回调函数并检验回调函数是否成功返回回调内容;
异步功能验证模块,用于判断异步功能是否满足,包括验证异步测试路径是否通畅、work部分写入日志是否成功、work部分写入数据库是否成功;
Celery验证模块,用于验证celery组件的性能是否满足;
gunion性能验证模块,用于验证服务器端的gunion性能是否满足;
报告生成模块,用于将提取的性能指标生成测试报告。
8.根据权利要求7所述的装置,其特征在于:Celery验证模块包括celery塞满验证子模块和celery work端性能验证子模块,celery塞满验证子模块用于验证celery是否已塞满,celery work端性能验证子模块用于验证celery work端性能指标是否满足。
9.一种计算机设备,包括存储器和处理器,其特征在于:所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-6中任一项所述的异步存储测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以实现如权利要求1-6中任一项所述的异步存储测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102341.5A CN111290897A (zh) | 2020-02-19 | 2020-02-19 | 异步存储测试方法、电子装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102341.5A CN111290897A (zh) | 2020-02-19 | 2020-02-19 | 异步存储测试方法、电子装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111290897A true CN111290897A (zh) | 2020-06-16 |
Family
ID=71021787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010102341.5A Pending CN111290897A (zh) | 2020-02-19 | 2020-02-19 | 异步存储测试方法、电子装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290897A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370216A (zh) * | 2023-12-08 | 2024-01-09 | 天津华来科技股份有限公司 | 一种基于python语言的回调接口性能测试方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110302454A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Performing asynchronous testing of an application occasionally connected to an online services system |
US20130046878A1 (en) * | 2011-08-15 | 2013-02-21 | Lukas Fryc | Asynchronous request interception for testing a request life-cycle |
CN107070735A (zh) * | 2016-12-30 | 2017-08-18 | 上海亿账通互联网科技有限公司 | 异步接口测试的方法、测试终端及*** |
CN107918572A (zh) * | 2016-10-08 | 2018-04-17 | 中兴通讯股份有限公司 | 一种大批量硬盘检测方法、装置及平台 |
CN108595331A (zh) * | 2018-04-24 | 2018-09-28 | 杭州朗和科技有限公司 | 异步接口的测试方法、介质、装置和计算设备 |
CN109254854A (zh) * | 2018-08-15 | 2019-01-22 | 中国平安人寿保险股份有限公司 | 异步调用方法、计算机装置及存储介质 |
CN109284216A (zh) * | 2018-09-27 | 2019-01-29 | 深圳市佰仟金融服务有限公司 | ***监控的方法及终端设备 |
-
2020
- 2020-02-19 CN CN202010102341.5A patent/CN111290897A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110302454A1 (en) * | 2010-06-07 | 2011-12-08 | Salesforce.Com, Inc. | Performing asynchronous testing of an application occasionally connected to an online services system |
US20130046878A1 (en) * | 2011-08-15 | 2013-02-21 | Lukas Fryc | Asynchronous request interception for testing a request life-cycle |
CN107918572A (zh) * | 2016-10-08 | 2018-04-17 | 中兴通讯股份有限公司 | 一种大批量硬盘检测方法、装置及平台 |
CN107070735A (zh) * | 2016-12-30 | 2017-08-18 | 上海亿账通互联网科技有限公司 | 异步接口测试的方法、测试终端及*** |
CN108595331A (zh) * | 2018-04-24 | 2018-09-28 | 杭州朗和科技有限公司 | 异步接口的测试方法、介质、装置和计算设备 |
CN109254854A (zh) * | 2018-08-15 | 2019-01-22 | 中国平安人寿保险股份有限公司 | 异步调用方法、计算机装置及存储介质 |
CN109284216A (zh) * | 2018-09-27 | 2019-01-29 | 深圳市佰仟金融服务有限公司 | ***监控的方法及终端设备 |
Non-Patent Citations (3)
Title |
---|
李一风;: "基于Celery和Django的分布式自动化测试***设计", 信息技术, no. 05, 22 May 2019 (2019-05-22) * |
李玲勇;高春鸣;文华南;: "Web服务组合执行引擎中服务异步调用机制研究", 计算机应用研究, no. 02, 15 February 2010 (2010-02-15) * |
胡磊;乐鹏;龚健雅;张锡宁;: "异步地理信息网络处理服务方法研究", 武汉大学学报(信息科学版), no. 05, 5 May 2016 (2016-05-05) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370216A (zh) * | 2023-12-08 | 2024-01-09 | 天津华来科技股份有限公司 | 一种基于python语言的回调接口性能测试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107341098B (zh) | 软件性能测试方法、平台、设备及存储介质 | |
CN111083225B (zh) | 在物联网平台中的数据处理方法、装置及物联网平台 | |
CN108563567B (zh) | 自动化测试方法、装置、设备及计算机可读存储介质 | |
CN111897724B (zh) | 一种适用于云平台的自动化测试方法及装置 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理*** | |
CN112306567B (zh) | 集群管理***和容器管控方法 | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN112650676A (zh) | 软件测试方法、装置、设备及存储介质 | |
CN111966653A (zh) | 微服务调用链路数据处理方法、装置、服务器及存储介质 | |
CN111290897A (zh) | 异步存储测试方法、电子装置、计算机设备及存储介质 | |
CN111475388A (zh) | 数据推送的测试方法、装置、计算机设备及存储介质 | |
CN111756594B (zh) | 压力测试的控制方法、计算机设备和计算机可读存储介质 | |
CN109670952B (zh) | 一种代收付交易平台 | |
CN116431731A (zh) | 数据异步导出方法、装置、设备及其存储介质 | |
CN111597020A (zh) | 一种应用程序编程接口api调试方法以及调试终端 | |
CN103019927B (zh) | 一种性能测试方法和*** | |
CN114567571A (zh) | 性能测试方法、装置、电子设备和计算机可读存储介质 | |
CN113961632A (zh) | 消息数据处理方法、装置及电子设备 | |
CN114416420A (zh) | 设备问题反馈方法和*** | |
CN110362464B (zh) | 软件分析方法及设备 | |
CN112948195A (zh) | 接口测试的方法、装置、电子设备和存储介质 | |
CN111752786A (zh) | 压力测试过程中的数据存储方法、汇总方法、设备及介质 | |
CN117670236A (zh) | 一种基于移动端的待办流程审批方法、装置、设备及介质 | |
CN113742226B (zh) | 一种软件性能测试方法、装置、介质及电子设备 | |
CN115994098B (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 |