CN114546743A - 设备接口性能的测试方法及装置 - Google Patents
设备接口性能的测试方法及装置 Download PDFInfo
- Publication number
- CN114546743A CN114546743A CN202210173080.5A CN202210173080A CN114546743A CN 114546743 A CN114546743 A CN 114546743A CN 202210173080 A CN202210173080 A CN 202210173080A CN 114546743 A CN114546743 A CN 114546743A
- Authority
- CN
- China
- Prior art keywords
- test
- request
- generating
- threads
- 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.)
- Pending
Links
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/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开涉及一种设备接口性能的测试方法、装置、电子设备及计算机可读介质。该方法包括:生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;基于所述测试线程集合生成测试请求集合;将所述测试请求集合中的测试请求依次发送至目标设备接口中;监测所述目标设备接口的特征参数以生成压力测试结果。本申请涉及的设备接口性能的测试方法、装置、电子设备及计算机可读介质,通过压力测试找到设备接口的性能瓶颈,以此对接口设备服务器进行优化,提高上层平台到设备配置的下发速度,提升设备服务器性能和用户的体验。
Description
技术领域
本公开涉及计算机信息处理领域,具体而言,涉及一种设备接口性能的测试方法、装置、电子设备及计算机可读介质。
背景技术
在软硬件开发的测试环境中,需要尽可能的去模拟用户使用情况,而在设备网络中,需要配置大量的包过滤策略,NAT,同时也会有大量的用户流量经过,如果是按照一般测试方法,对于数据的创建和测试显得过于繁琐。于是在这种背景下,对于防火墙设备页面可以正常收到上层平台下发的大量参数并成功生成配置,就需要对防火墙设备服务器进行性能测试,保证在防火墙在特定环境下可以正常工作。
现有的并发测试是Rally测试,通过插件端,也就是上游系统下发配置测试。而在实际场景中,Rally也是只是测试NSP的API响应时间,无法测试出NSP给Service-engine下发消息的时间,也无法测试出Service-engine组件调用AC接口创建相关网络资源的时间。
因此,需要一种新的设备接口性能的测试方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种设备接口性能的测试方法、装置、电子设备及计算机可读介质,通过压力测试找到设备接口的性能瓶颈,以此对接口设备服务器进行优化,提高上层平台到设备配置的下发速度,提升设备服务器性能和用户的体验。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提出一种设备接口性能的测试方法,该方法包括:生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;基于所述测试线程集合生成测试请求集合;将所述测试请求集合中的测试请求依次发送至目标设备接口中;监测所述目标设备接口的特征参数以生成压力测试结果。
在本申请的一种示例性实施例中,还包括:基于所述测试请求获取所述目标设备接口的返回参数;基于所述返回参数生成所述测试请求的请求结果。
在本申请的一种示例性实施例中,基于所述返回参数生成所述测试请求的请求结果,包括:通过断言函数对所述返回参数进行判断,以确定所述测试请求的成功或失败。
在本申请的一种示例性实施例中,生成测试线程集合,包括:通过第三方插件在Jmeter测试平台上生成所述测试线程集合。
在本申请的一种示例性实施例中,通过第三方插件在Rally测试平台上生成所述测试线程集合,包括:设定初始线程的数量;基于阶梯式增量方式生成多个时间段的多个测试线程组;基于初始线程和所述多个测试线程组生成所述测试线程集合。
在本申请的一种示例性实施例中,设定初始线程的数量,包括:基于设备接口历史线程处理数量确定所述初始线程的数量。
在本申请的一种示例性实施例中,基于阶梯式增量方式生成多个时间段的多个测试线程组,包括:基于历史线程数量数量和用户需求确定最大线程的数量;基于测试时间生成多个时间段;基于初始线程的数量、最大线程的数量、多个时间段生成所述多个测试线程组。
在本申请的一种示例性实施例中,基于所述测试线程集合生成测试请求集合,包括:构造请求头、请求行、请求体;基于所述测试线程集合中的线程和请求头、请求行、请求体生成多个HTTP请求;基于所述多个HTTP请求生成所述测试请求集合。
在本申请的一种示例性实施例中,构造请求体,包括:基于随机变量构造请求体中的传入参数。
在本申请的一种示例性实施例中,监测所述目标设备接口的特征参数以生成压力测试结果,包括:基于Jmeter测试平台监测所述目标设备接口的最小响应时间、吞吐率、异常率;基于第三方插件监测所述目标设备的服务器CPU性能、服务器内存性能、服务器接口IO状态;基于最小响应时间、吞吐率、异常率、服务器CPU性能、服务器内存性能、服务器接口IO状态生成压力测试结果。
根据本申请的一方面,提出一种设备接口性能的测试装置,该装置包括:线程模块,用于生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;请求模块,用于基于所述测试线程集合生成测试请求集合;发送模块,用于将所述测试请求集合中的测试请求依次发送至目标设备接口中;监测模块,用于监测所述目标设备接口的特征参数以生成压力测试结果。
根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本申请的设备接口性能的测试方法、装置、电子设备及计算机可读介质,通过生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;基于所述测试线程集合生成测试请求集合;将所述测试请求集合中的测试请求依次发送至目标设备接口中;监测所述目标设备接口的特征参数以生成压力测试结果的方式,通过压力测试找到设备接口的性能瓶颈,以此对接口设备服务器进行优化,提高上层平台到设备配置的下发速度,提升设备服务器性能和用户的体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种设备接口性能的测试方法及装置的系统框图。
图2是根据一示例性实施例示出的一种设备接口性能的测试方法的流程图。
图3是根据另一示例性实施例示出的一种设备接口性能的测试方法的示意图。
图4是根据另一示例性实施例示出的一种设备接口性能的测试方法的流程图。
图5是根据另一示例性实施例示出的一种设备接口性能的测试方法的示意图。
图6是根据另一示例性实施例示出的一种设备接口性能的测试方法的流程图。
图7是根据一示例性实施例示出的一种设备接口性能的测试装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
本申请涉及的技术缩略语解释如下:
吞吐量:指在单位时间内CPU从存储设备读取,处理,存储信息的量。
并发连接数:指的是客户端向设备服务器发起请求,并建立了TCP连接,每秒钟设备服务器链接的总TCP数量。
断言:判断请求是否成功。
压力测试:在一定的软件、硬件及网络环境下,通过模拟大量的请求设备服务器,使设备服务器的资源处于极限状态下长时间连续运行,以测试设备服务器在高负载情况下是否能够稳定工作。
Openstack:公有云。
Rally测试:用于测试openstack在并发下API的相应时间和请求成功率,从而测试出openstack规模和性能。
Rally测试数据主要是根据REST API的请求和响应时间进行统计时间,由于OpenStack的API是异步的,当API返回时,其请求的资源未必真正完成创建,因此Rally没有办法测试出资源从开始创建到最后创建完成整个流程需要的时间。而在实际场景中,Rally也是只是测试NSP的API响应时间,无法测试出NSP给Service-engine下发消息的时间,也无法测试出Service-engine组件调用AC接口创建相关网络资源的时间。
本案申请人发现,从改善用户体验角度来说,测试API的响应时间非常关键,科学研究表明,对于人机交互系统来说,用户等待时间>4s而不给任何响应则会给人的体验非常差。从这个意义上来说,Rally的测试非常有必要,也很有价值。但是API返回结果,未必意味着用户的资源已经准备好,且设备cpu处于一个高负荷的状态,需要较长的时间才对处理完上游平台下发的配置,如果此时继续下发配置,很可能造成配置下发失败,设备死机等。
所以需要对设备服务器性能进行测试,并根据测试结果对其进行调优是一个非常重要的改善用户体验的方法。
图1是根据一示例性实施例示出的一种设备接口性能的测试方法、装置的系统框图。
如图1所示,系统架构10可以包括防火墙服务器101、102、103,网络104和测试服务器105。网络104用以在防火墙服务器101、102、103和测试服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
防火墙服务器101、102、103可通过网络104与测试服务器105交互,以接收或发送消息等。防火墙服务器101、102、103上可以安装有各种流量安全风险识别类的应用。
测试服务器105可以是提供各种服务的服务器,例如对防火墙服务器101、102、103提供数据支持的后台管理服务器。后台管理服务器可以对防火墙的处理能力进行测试,并根据识别结果改善防火墙的性能。
测试服务器105可例如生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;测试服务器105可例如基于所述测试线程集合生成测试请求集合;测试服务器105可例如将所述测试请求集合中的测试请求依次发送至目标设备接口中;测试服务器105可例如监测所述目标设备接口的特征参数以生成压力测试结果。
测试服务器105还可例如基于所述测试请求获取所述目标设备接口的返回参数;基于所述返回参数生成所述测试请求的请求结果。
测试服务器105可以是一个实体的服务器,还可例如为多个服务器组成,需要说明的是,本申请实施例所提供的设备接口性能的测试方法可以由测试服务器105执行,相应地,设备接口性能的测试装置可以设置于测试服务器105中。
图2是根据一示例性实施例示出的一种设备接口性能的测试方法的流程图。设备接口性能的测试方法20至少包括步骤S202至S208。
如图2所示,在S202中,生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程。通过第三方插件在Jmeter测试平台上生成所述测试线程集合。
Apache Jmeter是Apache组织开发的基于Java的压力测试工具,在一个具体的实施例中,可基于Jmeter对防火墙设备服务器接口进行阶梯式加压测试,并根据测试结果对防火墙设备服务器进行优化。
因为在性能测试中,除了简单的并发情况,有时还需要模拟一种实际中经常出现的情况,即:设备服务器接受到的请求在某个时刻起不断增加,趋于平稳一段时间后在下降。在一个具体的实施例中,可通过Jmeter的第三方jp@gc插件来生成测试线程集合。
“生成测试线程集合”的具体内容将在图4对应的实施例中详细描述。
在S204中,基于所述测试线程集合生成测试请求集合。可例如,构造请求头、请求行、请求体;基于所述测试线程集合中的线程和请求头、请求行、请求体生成多个HTTP请求;基于所述多个HTTP请求生成所述测试请求集合。
“基于所述测试线程集合生成测试请求集合”的具体内容将在图6对应的实施例中详细描述。
在S206中,将所述测试请求集合中的测试请求依次发送至目标设备接口中。可先进行一次预压测,一般是少量并发(一个用户)来压测环境是否能通。在测试环境连接畅通的情况下,进行后续的压力测试。
在S208中,监测所述目标设备接口的特征参数以生成压力测试结果。可基于Jmeter测试平台监测所述目标设备接口的最小响应时间、吞吐率、异常率;基于第三方插件监测所述目标设备的服务器CPU性能、服务器内存性能、服务器接口IO状态;基于最小响应时间、吞吐率、异常率、服务器CPU性能、服务器内存性能、服务器接口IO状态生成压力测试结果。
在一个具体的实施例中,可添加监听器,如聚合报告,图形结果等等。测试的数据都会在监听器中体现,可以在监听器中看见最小响应时间,吞吐率,异常率等等。
在一个实施例中,还可添加一个第三方jp@gc的监听器,即PerfMon MetricsCollector,如图3所示。可以在PerfMon Metrics Collector中选择监听设备服务器CPU,内存及IO口情况等等,在并发测试完成后生成相应的统计结果,并结合聚合报告使得用户可对系统的性能有更直观的了解。
在图3中,可通过设置需要监听的服务器地址,选择CPU、内存等来进行实时监测,其中,Host/Ip:服务器的地址;Port:服务器的端口;Metric to collect:检测的资源。
在一个实施例中,还可基于所述测试请求获取所述目标设备接口的返回参数;基于所述返回参数生成所述测试请求的请求结果。
更具体的,可通过断言函数对所述返回参数进行判断,以确定所述测试请求的成功或失败。添加断言,通过设备返回参数判断请求是成功还是请求失败,比如post请求中,当通用的http状态码为200时表示情况成功,状态码为400的时候可能提示参数错误,当然这个状态码也是可以由开发人员自行更改的。
根据本申请的设备接口性能的测试方法,通过生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;基于所述测试线程集合生成测试请求集合;将所述测试请求集合中的测试请求依次发送至目标设备接口中;监测所述目标设备接口的特征参数以生成压力测试结果的方式,通过压力测试找到设备接口的性能瓶颈,以此对接口设备服务器进行优化,提高上层平台到设备配置的下发速度,提升设备服务器性能和用户的体验。
根据本申请的设备接口性能的测试方法,能够模拟现实场景的请求情况进行贴近现实的测试;还可对rally测试不能接触到的点进行测试,更加全面的了解整个系统的性能;通过阶梯式加压测试的方式,能够测试设备服务器的找到性能瓶颈,以便对服务器进行有的放矢的优化。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
图4是根据另一示例性实施例示出的一种设备接口性能的测试方法的流程图。图4所示的流程40是对图2所示的流程中S202“生成测试线程集合”的详细描述。
如图4所示,在S402中,设定初始线程的数量。基于设备接口历史线程处理数量确定所述初始线程的数量。
在S404中,基于阶梯式增量方式生成多个时间段的多个测试线程组。基于历史线程数量数量和用户需求确定最大线程的数量;基于测试时间生成多个时间段;基于初始线程的数量、最大线程的数量、多个时间段生成所述多个测试线程组。
在S406中,基于初始线程和所述多个测试线程组生成所述测试线程集合。
如图1所示。可添加一个线程组:jp@gc-Stepping Thread Group,可根据客户的需求,以及目前测试出来的设备服务器的性能,去尽可能模拟一个实际情况,来设置SteppingThread Group的参数,比如总共执行多少个并发,一开始执行多少个,然后每多少秒增加多少个,持续一定时间后请求数减少等等。
如图5所示,在图中可以看见启动的线程数,运行的时间等。
This group will start N threads:设置线程组启动的线程总数为N个;
First wait for N seconds:启动第一个线程之前,需要等待N秒;
Then start N threads:设置最开始时启动N个线程;
Next add O threads every N seconds using ramp-up M seconds:每隔N秒,在M秒内启动O个线程;
Then hold load for S seconds:启动的线程总数达到最大值之后,再持续运行S秒;
Finally stop N threads every S seconds:每S秒停止N个线程;
根据上文中的设置开始进行测试,从HTTP请求发送开始,逐步增加请求数据,一步一步的排查,例如cpu、内存、磁盘io、网络等,找到性能瓶颈,以此对防火墙设备端的接口设备服务器进行优化,提高上层平台到设备配置的下发速度,提升设备服务器性能和用户的体验。
图6是根据另一示例性实施例示出的一种设备接口性能的测试方法的流程图。图6所示的流程60是对图2所示的流程中S204“基于所述测试线程集合生成测试请求集合”的详细描述。
如图6所示,在S602中,构造请求头、请求行。
在S604中,基于随机变量构造请求体中的传入参数。
在S606中,基于所述测试线程集合中的线程和请求头、请求行、请求体生成多个HTTP请求。
在S608中,基于所述多个HTTP请求生成所述测试请求集合。
可添加取样器引入HTTP请求,在本申请中模拟一个对设备服务器的接口的请求。还可天剑authorization即HTTP授权管理器,模拟的客户端请求需要有请求头、请求行、请求体,请求成功后服务器会返回相应的信息,在响应头中可以看见具体的信息。
更进一步不的,由于接口参数中的某些字段一定是唯一的,例如name,为了便于后续监测错误请求的返回信息,需要保证每一次请求传入的参数都是不唯一的,在本申请中,通过随机变量random生成请求体的内容,以便使得每个请求的内容均不相同。
根据本申请的设备接口性能的测试方法,测试设备端接口接受上层平台下发配置的性能,可以达到的最大并发数以及一定时间内性能表现优秀的并发数情况,并根据测试情况对设备服务器进行优化。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图7是根据一示例性实施例示出的一种设备接口性能的测试装置的框图。如图7所示,设备接口性能的测试装置70包括:线程模块702,请求模块704,发送模块706,监测模块708。
线程模块702用于生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;线程模块702还用于通过第三方插件在Jmeter测试平台上生成所述测试线程集合。
请求模块704用于基于所述测试线程集合生成测试请求集合;请求模块704还用于构造请求头、请求行、请求体;基于所述测试线程集合中的线程和请求头、请求行、请求体生成多个HTTP请求;基于所述多个HTTP请求生成所述测试请求集合。
发送模块706用于将所述测试请求集合中的测试请求依次发送至目标设备接口中;
监测模块708用于监测所述目标设备接口的特征参数以生成压力测试结果。监测模块708还用于基于Jmeter测试平台监测所述目标设备接口的最小响应时间、吞吐率、异常率;基于第三方插件监测所述目标设备的服务器CPU性能、服务器内存性能、服务器接口IO状态;基于最小响应时间、吞吐率、异常率、服务器CPU性能、服务器内存性能、服务器接口IO状态生成压力测试结果。
根据本申请的设备接口性能的测试装置,通过生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;基于所述测试线程集合生成测试请求集合;将所述测试请求集合中的测试请求依次发送至目标设备接口中;监测所述目标设备接口的特征参数以生成压力测试结果的方式,通过压力测试找到设备接口的性能瓶颈,以此对接口设备服务器进行优化,提高上层平台到设备配置的下发速度,提升设备服务器性能和用户的体验。
图8是根据一示例性实施例示出的一种电子设备的框图。
下面参照图8来描述根据本申请的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2,图3,图6中所示的步骤。
所述存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
所述存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备800’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备800交互的设备通信,和/或该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器860可以通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图9所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
总体而言,本公开是为了测试设备端接口接受上层平台下发配置的性能,可以达到的最大并发数以及一定时间内性能表现优秀的并发数情况,并根据测试情况对设备服务器进行优化。具体而言,
为客户提供的是一个底层平台,上层平台下发的配置传到我们底层,也就是设备接口,然后才会在设备中生成配置。我们主要测试的就是设备服务器接口的性能。ApacheJmeter是Apache组织开发的基于Java的压力测试工具,我们基于Jmeter对防火墙设备服务器接口进行阶梯式加压测试,并根据测试结果对防火墙设备服务器进行优化。设备服务器接受到的请求在某个时刻起不断增加,趋于平稳一段时间后在下降。所以我们需要用到Jmeter的第三方jp@gc插件。首先添加一个线程组:jp@gc-Stepping Thread Group,如图1所示。第一步,根据客户的需求,以及目前测试出来的设备服务器的性能,去尽可能模拟一个实际情况,来设置Stepping Thread Group的参数,比如总共执行多少个并发,一开始执行多少个,然后每多少秒增加多少个,持续一定时间后请求数减少等等。在图中可以看见启动的线程数,运行的时间等。第二步,需要添加取样器,也就是HTTP请求,因为我们需要模拟一个对设备服务器的接口的请求。还有一个authorization即HTTP授权管理器,模拟的客户端请求需要有请求头、请求行、请求体,请求成功后服务器会返回相应的信息,在响应头中可以看见具体的信息。第三步,因为我们是对接口做一个并发,而接口参数中的某些字段一定是唯一的,例如name,所以这个时候我们又需要用到一个随机变量random,来保证每一次请求传入的参数都是不唯一的。第四步,需要先进行一次预压测,一般是少量并发(一个用户)来压测环境是否能通。第五步,添加断言,通过设备返回参数判断请求是成功还是请求失败,比如post请求中,当通用的http状态码为200时表示情况成功,状态码为400的时候可能提示参数错误,当然这个状态码也是可以由开发人员自行更改的。第六步,添加监听器,如聚合报告,图形结果等等。测试的数据都会在监听器中体现,我们可以在监听器中看见最小响应时间,吞吐率,异常率等等。当然这点数据对我我们来说是不够的,所以还需要在添加一个第三方jp@gc的监听器,即PerfMon Metrics Collector,如图2所示。最后我们可以在PerfMon Metrics Collector中选择监听设备服务器CPU,内存及IO口情况等等,在并发测试完成后生成相应的统计结果,并结合聚合报告让我们对系统的性能有更直观的了解。根据测试结果,从请求开始,一步一步的排查,例如cpu、内存、磁盘io、网络等,找到性能瓶颈,以此对防火墙设备端的接口设备服务器进行优化,提高上层平台到设备配置的下发速度,提升设备服务器性能和用户的体验。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;基于所述测试线程集合生成测试请求集合;将所述测试请求集合中的测试请求依次发送至目标设备接口中;监测所述目标设备接口的特征参数以生成压力测试结果。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (11)
1.一种设备接口性能的测试方法,其特征在于,包括:
生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;
基于所述测试线程集合生成测试请求集合;
将所述测试请求集合中的测试请求依次发送至目标设备接口中;
监测所述目标设备接口的特征参数以生成压力测试结果。
2.如权利要求1所述的方法,其特征在于,还包括:
基于所述测试请求获取所述目标设备接口的返回参数;
基于所述返回参数生成所述测试请求的请求结果。
3.如权利要求2所述的方法,其特征在于,基于所述返回参数生成所述测试请求的请求结果,包括:
通过断言函数对所述返回参数进行判断,以确定所述测试请求的成功或失败。
4.如权利要求1所述的方法,其特征在于,生成测试线程集合,包括:
通过第三方插件在Jmeter测试平台上生成所述测试线程集合。
5.如权利要求4所述的方法,其特征在于,通过第三方插件在Rally测试平台上生成所述测试线程集合,包括:
设定初始线程的数量;
基于阶梯式增量方式生成多个时间段的多个测试线程组;
基于初始线程和所述多个测试线程组生成所述测试线程集合。
6.如权利要求5所述的方法,其特征在于,设定初始线程的数量,包括:
基于设备接口历史线程处理数量确定所述初始线程的数量。
7.如权利要求5所述的方法,其特征在于,基于阶梯式增量方式生成多个时间段的多个测试线程组,包括:
基于历史线程数量数量和用户需求确定最大线程的数量;
基于测试时间生成多个时间段;
基于初始线程的数量、最大线程的数量、多个时间段生成所述多个测试线程组。
8.如权利要求1所述的方法,其特征在于,基于所述测试线程集合生成测试请求集合,包括:
构造请求头、请求行、请求体;
基于所述测试线程集合中的线程和请求头、请求行、请求体生成多个HTTP请求;
基于所述多个HTTP请求生成所述测试请求集合。
9.如权利要求8所述的方法,其特征在于,构造请求体,包括:
基于随机变量构造请求体中的传入参数。
10.如权利要求1所述的方法,其特征在于,监测所述目标设备接口的特征参数以生成压力测试结果,包括:
基于Jmeter测试平台监测所述目标设备接口的最小响应时间、吞吐率、异常率;
基于第三方插件监测所述目标设备的服务器CPU性能、服务器内存性能、服务器接口IO状态;
基于最小响应时间、吞吐率、异常率、服务器CPU性能、服务器内存性能、服务器接口IO状态生成压力测试结果。
11.一种设备接口性能的测试装置,其特征在于,包括:
线程模块,用于生成测试线程集合,所述测试线程集合中包括阶梯式分布的多个线程;
请求模块,用于基于所述测试线程集合生成测试请求集合;
发送模块,用于将所述测试请求集合中的测试请求依次发送至目标设备接口中;
监测模块,用于监测所述目标设备接口的特征参数以生成压力测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210173080.5A CN114546743A (zh) | 2022-02-24 | 2022-02-24 | 设备接口性能的测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210173080.5A CN114546743A (zh) | 2022-02-24 | 2022-02-24 | 设备接口性能的测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114546743A true CN114546743A (zh) | 2022-05-27 |
Family
ID=81677166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210173080.5A Pending CN114546743A (zh) | 2022-02-24 | 2022-02-24 | 设备接口性能的测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114546743A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277477A (zh) * | 2022-07-24 | 2022-11-01 | 杭州迪普科技股份有限公司 | 基于简单对象访问协议的流量检测方法及装置 |
-
2022
- 2022-02-24 CN CN202210173080.5A patent/CN114546743A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277477A (zh) * | 2022-07-24 | 2022-11-01 | 杭州迪普科技股份有限公司 | 基于简单对象访问协议的流量检测方法及装置 |
CN115277477B (zh) * | 2022-07-24 | 2024-03-01 | 杭州迪普科技股份有限公司 | 基于简单对象访问协议的流量检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360087B2 (en) | Web API recommendations based on usage in cloud-provided runtimes | |
US9612821B2 (en) | Predicting the success of a continuous software deployment pipeline | |
US10268571B2 (en) | System and method for automated thin client contact center agent desktop testing | |
US10116534B2 (en) | Systems and methods for WebSphere MQ performance metrics analysis | |
CN111045911B (zh) | 性能测试方法、性能测试装置、存储介质与电子设备 | |
EP3920469A1 (en) | Method and apparatus for stress testing, electronic device and computer readable medium | |
CN113726607B (zh) | 一种网络探测方法、装置、电子设备及存储介质 | |
CN113127356A (zh) | 压测方法、装置、电子设备及存储介质 | |
CN114564374A (zh) | 算子性能评估方法、装置、电子设备及存储介质 | |
CN111954240A (zh) | 网络故障处理方法、装置及电子设备 | |
CN114546743A (zh) | 设备接口性能的测试方法及装置 | |
CN110677307A (zh) | 一种服务监测方法、装置、设备和存储介质 | |
CN111913861A (zh) | 物联网系统的性能测试方法、装置、设备及介质 | |
CN109308243B (zh) | 数据处理方法、装置、计算机设备和介质 | |
CN114827157A (zh) | 集群任务处理方法、装置、系统、电子设备及可读介质 | |
CN112131095B (zh) | 压力测试方法和装置 | |
CN113656391A (zh) | 数据检测方法及装置、存储介质及电子设备 | |
CN113179317A (zh) | 内容重写设备的测试系统及方法 | |
US20150222505A1 (en) | Business transaction resource usage tracking | |
CN113747506A (zh) | 一种资源调度方法、装置和网络系统 | |
CN111309575A (zh) | 启动和停止测试工具的方法、装置、服务器及存储介质 | |
CN115277506B (zh) | 负载均衡设备测试方法及系统 | |
CN113282471B (zh) | 设备性能测试方法、装置、终端设备 | |
CN113485902B (zh) | 测试业务平台的方法、装置、设备和计算机可读介质 | |
US11381496B1 (en) | Testing a two-phase commit protocol conformance of a cloud based online transaction processing platform |
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 |