CN112699040A - 压力测试方法、装置、设备及计算机可读存储介质 - Google Patents

压力测试方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112699040A
CN112699040A CN202011644119.4A CN202011644119A CN112699040A CN 112699040 A CN112699040 A CN 112699040A CN 202011644119 A CN202011644119 A CN 202011644119A CN 112699040 A CN112699040 A CN 112699040A
Authority
CN
China
Prior art keywords
test
data
background
page
test case
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.)
Granted
Application number
CN202011644119.4A
Other languages
English (en)
Other versions
CN112699040B (zh
Inventor
骆春光
王惠惠
曾庆熙
曾波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202011644119.4A priority Critical patent/CN112699040B/zh
Publication of CN112699040A publication Critical patent/CN112699040A/zh
Application granted granted Critical
Publication of CN112699040B publication Critical patent/CN112699040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及金融科技技术领域,公开了一种压力测试方法、装置、设备及计算机可读存储介质,该方法包括:监听浏览器的页面操作事件获得操作步骤;基于将所述操作步骤创建测试用例,并基于预先构建的分布式框架分配、执行将所述测试用例以触发前端操作并调用后台,获得具体执行信息;基于所述具体执行信息获得压力测试结果。由此监听浏览器的用户真实操作的页面操作事件,再基于页面操作事件的操作步骤创建的测试用例,并基于分布式框架分配、并发执行测试用例,以获得前端和后台的压力测试结果。由此,通将用户真实操作的测试用例输入前端,由前端操作触发后台响应,实现了前端与后台在高并发场景下的真实压力测试,提高了压力测试的真实性。

Description

压力测试方法、装置、设备及计算机可读存储介质
技术领域
本发明涉及金融科技(Fintech)中的测试技术领域,尤其涉及一种压力测试方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
当前的压力测试方法是绕过前端页面,直接对后台接口进行压力测试。一般地压力测试流程为:分析压力测试的业务场景,抽取对应的业务接口,准备测试用例,设置并发请求,获得压力测试数据并进行分析。这种模拟前端用户请求的方式,需要耗费人力去设计测试用例,并且只能测试后台的系统性能,不适用于对前端性能也敏感的系统,此外当前的压力测试方法也不是完整地从前端到后台的并发真实模拟测试。
发明内容
本发明提供一种压力测试方法、装置、设备及计算机可读存储介质,旨在实现前端与后台在高并发场景下的真实压力测试,提高压力测试的真实性。
为实现上述目的,本发明提供一种压力测试方法,所述方法包括:
监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;
基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息;
将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。
可选地,所述监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤,包括:
通过浏览器提供的页面监听事件接口,监听浏览器的页面操作事件,所述页面操作事件包括发送码操作和点击操作;
将所述页面操作事件中连续的发送码操作合并成一个组合发送码操作并将连续的按键编码合并成一个组合按键编码,和/或将所述页面操作事件中预设时长内连续的点击操作合并成一个组合点击操作;
将各个非连续的发送码操作及其按键编码、非连续的点击操作,组合发送码操作及其对应的组合按键编码,以及各个组合点击操作放入步骤列表中,将所述步骤列表中的操作进行拼接整合,获得所述操作步骤。
可选地,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息,之前还包括:
基于分布式开源协调服务组件构建分布式框架,所述分布式框架包括调度模块和执行模块;
所述基于预先构建的分布式框架分配、执行所述测试用例以获得具体执行信息,包括:
通过所述调度模块按预设的分配策略和并发量为所述测试用例分配执行模块,以通过所述执行模块执行所述测试用例以触发前端操作并调用后台,并获得具体执行信息。
可选地,所述通过所述执行模块执行所述测试用例触发前端操作并调用后台,并获得具体执行信息,包括:
由所述执行模块将预设个数的所述测试用例解析成对应的测试步骤,将所述测试步骤通过自动化测试框架提供的接口并发接入浏览器,以触发前端操作并调用后台;
通过前端的性能监控接口获取前端的原始性能数据,并通过代理获取后台的系统数据,将所述原始性能数据和所述系统数据保存为具体执行信息。
可选地,所述将所述测试步骤通过自动化测试框架提供的接口并发接入浏览器,之后包括:
遍历所述测试步骤,判断是否存在逻辑操作;
若存在逻辑操作,则确定所述逻辑操作的逻辑类型及值,以供依次所述逻辑操作的各个分支。
可选地,所述将所述预设个数的测试步骤通过自动化测试框架提供的接口并发接入浏览器,之后还包括:
判断当前页面是否需要输入变量;
若需要输入变量,则获取变量名,并基于所述变量名从存放变量值的临时变量池中获取目标变量值,并将所述目标变量值输入所述当前页面。
可选地,所述通过所述执行模块执行所述测试用例,包括:
判断所述测试用例是否需要进行数据验证;
若需要进行数据验证,在所述测试用例的操作步骤中新增结构化查询语言,将返回的第一个数据与对应的后台数据进行对比;
若所述第一个数据与所述对应的后台数据一致,则判定通过所述数据验证。
可选地,所述通过所述执行模块执行所述测试用例,包括:
当需要对目标元素进行识别时,对所述浏览器的当前页面进行截图,获得第一图像;
基于模板匹配函数将所述第一图像与源码修改前的第二图像进行对比,获得坐标对比结果;
基于预设处理函数从所述坐标对比结果中确定标准相关参数值最小的坐标确定为所述第一图像的坐标;
基于所述第一图像的坐标确定所述页面操作事件对应的目标元素的目标元素坐标,以在所述目标元素坐标的对应位置执行相关操作。
可选地,所述将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果,包括:
将所述具体执行信息中的前端的各个测试数据与对应的前端测试基准数据进行比较;
若所述各个测试数据与对应前端测试基准数据的差值都符合预设要求,则判定前端能承受所述测试数据对应的并发量;和/或
将所述具体执行信息中的后台的各个测试数据与对应的后台测试基准数据进行比较;
基于比较结果确定后台的每秒处理事务的上限、中央处理器CPU资源占用量、输入输出IO负载量。
此外,为实现上述目的,本发明还提供一种压力测试装置,所述压力测试装置包括:
整合模块,用于监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;
测试模块,用于基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以获得具体执行信息;
比较模块,用于将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。
此外,为实现上述目的,本发明还提供一种压力测试设备,所述压力测试设备包括处理器,存储器以及存储在所述存储器中的压力测试程序,所述压力测试程序被所述处理器运行时,实现如上所述的压力测试方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有压力测试程序,所述压力测试程序被处理器运行时实现如上所述压力测试方法的步骤。
相比现有技术,本发明提供一种压力测试方法、装置、设备及计算机可读存储介质,该方法包括:监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息;将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。本方案监听浏览器接收到的用户真实操作的页面操作事件,再基于页面操作事件的操作步骤创建的测试用例,并基于分布式框架分配、并发执行测试用例,以获得前端和后台的压力测试结果。由此,通将用户真实操作的测试用例输入前端,由前端操作触发后台响应,实现了前端与后台在高并发场景下的真实压力测试,提高了压力测试的真实性。
附图说明
图1是本发明各实施例涉及的压力测试设备的硬件结构示意图;
图2是本发明压力测试方法第一实施例的流程示意图;
图3是本发明压力测试方法第一实施例的一场景示意图;
图4是本发明压力测试方法第二实施例的流程示意图;
图5是本发明压力测试方法第二实施例涉及的分布式框架示意图;
图6是本发明压力测试装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例主要涉及的压力测试设备是指能够实现网络连接的网络连接设备,所述压力测试设备可以是服务器、云平台等。
参照图1,图1是本发明各实施例涉及的压力测试设备的硬件结构示意图。本发明实施例中,压力测试设备可以包括处理器1001(例如中央处理器Central ProcessingUnit、CPU),通信总线1002,输入端口1003,输出端口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;输入端口1003用于数据输入;输出端口1004用于数据输出,存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系统、网络通信模块、应用程序模块以及压力测试程序。在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的压力测试程序,并执行本发明实施例提供的压力测试方法。
本发明实施例提供了一种压力测试方法。
参照图2,图2是本发明压力测试方法第一实施例的流程示意图。
本实施例中,所述压力测试方法应用于压力测试设备,所述方法包括:
步骤S101,监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;
所述压力测试是指给软件不断加压,强制其在极限的情况下运行,观察软件可以运行到何种程度,从而发现性能缺陷。具体地,搭建与实际环境相似的测试环境,在该测试环境下在同一时间段内或某一段时间内,向被测试软件所在的测试系统发送预期数量的请求、测试系统在不同压力情况下的性能数据,以及系统可以承受的压力情况。然后做针对性的进行测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的处理效率,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整,并对系统资源进行优化。
所述页面操作事件是指用户在浏览器提供的页面上进行的操作,所述操作事件包括敲击键盘发送文本的发送码操作,以及通过鼠标触发的点击操作。此外所述操作事件还包括用户通过触摸屏、智能笔、智能画板等编辑设备触发的操作。
本实施例中,所述步骤S101包括:
通过浏览器提供的页面监听事件接口,监听浏览器的页面操作事件,所述页面操作事件包括发送码操作和点击操作;
当前,Google chrome(谷歌浏览器)、火狐浏览器等提供了页面监听事件接口,所述页面监听事件接口用于监听浏览器接收到的页面事件。一般地,所述页面监听事件接口可以是API(Application Programming Interface,应用程序接口)。基于此,本实施例通过浏览器提供的页面监听事件接口,监听浏览器的页面操作事件。
对于页面操作事件中的发送码(sendkey)操作来说:输入一个字符所需要触发的动作是三个:(keyDown(按下按键),keyPress(按键响应),keyUp(按键弹起)),其值都是该字符,因此(keyDown,keyPress,keyUp)三个动作的实质是一个完整的sendkey操作。具体地参照图3,图3是本发明压力测试方法第一实施例的一场景示意图。如图3(a)所示,输入字符a所要触发的action动作及对应的code(按键编码)分别是:action:keyDown,code:a;action:keyPress,code:a;action:keyUp,code:a;将其合并成一个完整的发送码操作:action:sendkey,code:a。
对于页面操作事件中的点击操作来说,一个完整的点击操作的动作包括mouseDown(按下鼠标)、mouseMove(移动鼠标)、mouseup(松开鼠标)。如图3(b)所示,将mouseDown、mouseMove、mouseup合并成一个action(动作):click(点击)。
进一步地,若所述页面操作事件中存在连续的两个或两个以上的发送码操作,则将所述连续的发送码操作合并成一个组合发送码操作并将连续的按键编码合并成一个组合按键编码。其中,连续的发送码操作是指多个发送码操作是连续执行的,未被点击操作或其它操作打断。可以理解地,若是连续的发送码操作则可以看做是文本、数字、字符等的编辑操作,因此可以进行合并获得最终的组合按键编码,以节约操作步骤,节省存储空间,并且在后续将对应的页面操作事件生成测试用例时还能节约操作步骤和执行时间。如图3(c)所示,将值分别为a,b,c,d,e的发送码操作合并成一个发送码操作,其对应的组合按键编码为abcde。若不进行组合,由于每个发送码操作都需要执行(keyDown,keyPress,keyUp)这三个动作,因此若不合并则需要触发的动作操作是3*5=15个键盘操作,但是合并后当作一个操作sendkey处理,组合后的值是abcde。所以将连续的sendkey操作进行合并,保存合并后的组合按键编码可以极大地节约操作步骤和存储空间。
和/或,若所述页面操作事件中预设时长内存在连续的点击操作,则将所述预设时长内连续的点击操作合并成一个组合点击操作;所述预设时长可以根据需要设置,例如将所述预设时长设置为500ms。如图3(d)所示,将预设时长内连续发生的两次click合并成为doubleclick(双击)。
将各个非连续的发送码操作及其按键编码、非连续的点击操作,组合发送码操作及其对应的组合按键编码,以及各个组合点击操作放入步骤列表中,将所述步骤列表中的操作进行拼接整合,获得所述操作步骤。具体地,遍历监听到的页面操作事件,判断所述页面操作事件中是否还有动作,若有,则判定是否为sendkey,若是sendkey,则将对应的code存入codelist(按键编码列表);继续判断是否为连续的sendkey并获取各个sendkey对应的code;将连续的sendkey合并成一个组合sendkey,并保存对应的组合按键编码至所述步骤列表中;若不是连续的sendkey,则将非连续的sendkey及其按键编码保存至所述步骤列表中;判断下一个页面操作事件是不是click,若预设时长内只有一个click,则直接将这一个click操作保存至所述步骤列表中,若预设时长内有两个连续的click,则将这两个连续的click组合成doubleclick,并将doubleclick保存至所述步骤列表中。当完全遍历所述页面操作事件后,则获得了完整的操作步骤。
本实施例中,基于Chrome插件监听浏览器的页面操作事件,Chrome插件支持录制的开始与暂停。具体地,添加标志位isStopEvent(停止事件),通过if判断是否启动监听事件。点击开始,isStopEvent=true,启动页面操作事件的监听和处理,启动暂停时isStopEvent=false,暂停操作事件的监听和处理。如此可以实现监听操作的控制,获得更加有用的素材,并节约监听资源。
可以理解地,为了获得尽可能多的大规模的用户真实操作的操作步骤,需要监听不同用户在不同时间不同地点进行的真实操作,甚至需要获得成千上万套完整的操作步骤,如此可以获得更加丰富的素材,可以提高压力测试的真实性。
步骤S102,基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息;
本实施例中,基于步骤S101中获得的操作步骤创建测试用例。可以理解地,由于是基于大规模的用户获取到的非常大量的操作步骤,因此,可以创建非常多的测试用例。本实施例可以从用户、页面、时间的维度创建测试用例。例如根据用户A于12月22日在页面A的操作对应的操作步骤创建测试用例1,再例如根据用户B在12月22日在页面A的操作对应的操作步骤创建测试用例2。
本实施例中基于预先构建的分布式框架中的分配模块将各个测试用例分别分配给对应的执行模块,当执行模块接收到分配过来的测试用例时,则启动前端,开始按所述测试用例中的操作步骤进行网页操作,由前端的网页操作调用后台,使被测试的程序和/或系统试运行,并记录包括前端、后台的具体执行信息。
步骤S103,将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。
所述具体执行信息包括前端的测试数据和后台的测试数据。
本实施例中,所述步骤S103包括:
将所述具体执行信息中的前端的各个测试数据与对应的前端测试基准数据进行比较;
若所述各个测试数据与对应前端测试基准数据的差值都符合预设要求,则判定前端能承受所述测试数据对应的并发量;基于二者的比较结果确定前端的压力测试结果。
本实施例中,由所述执行模块通过selenium(网页自动化工具)页面返回所述前端的测试数据,通过执行window.performance可以获取到精确的前端的前端的测试数据。
其中,所述前端的测试数据包括DNS(DomainNameSystem,域名系统)寻址时间、TCP(Transmission Control Protocol,传输控制协议)连接耗时、首包时间、request请求耗时、白屏时间、解析DOM树结构的时间以及页面加载完成的时间。
将所述前端的测试数据与预设的对应的前端测试基准数据进行比较,便可以获得前端的压力测试结果,也即根据比较结果确定前端的性能。一般的前端的压力测试结果主要在于前端所能承受的并发量。
其中,最能反映前端性能的是页面加载完成的时间,页面加载完成的时间可以反映出用户体验,可以获知指定某时间段的页面加载速度值,以及与预设基本加载速度值的对比状况。如果发现页面加载速度与预设基本加载速度值相比较有增加或减少,则可以分项查询关联参数,以找出原因所在。所述关联参数包括:dom开始加载前所有花费时间、pageLoadTime(页面加载时间)、allLoadTime(页面完全加载时间)、resourcesLoadedTime(资源加载时间),各个关联参数与的关系如下:
dom开始加载前所有花费时间=重定向时间+域名解析时间+建立连接花费时间+请求花费时间+接收数据花费时间;
pageLoadTime=域名解析时间+建立连接花费时间+请求花费时间+接收数据花费时间+解析dom花费时间+加载dom花费时间;
allLoadTime=重定向时间+域名解析时间+建立连接花费时间+请求花费时间+接收数据花费时间+解析dom花费时间+加载dom花费时间+执行onload事件花费时间;
resourcesLoadedTime=解析dom花费时间+加载dom花费时间。
可以理解地,在固定并发量的情况下,所述前端的各个测试数据在各个时间段与前端测试基准数据的差值都满足要求,则说明前端能承受对应的并发量,也即系统性能较好。
和/或,所述步骤S103包括:
将所述具体执行信息中的后台的各个测试数据与对应的后台测试基准数据进行比较,基于比较结果确定后台的每秒处理事务的上限、中央处理器CPU资源占用量、输入输出IO负载量。后台的压力测试结果主要包括TPS、CPU资源占用量、IO负载量。
本实施例中通过代理(agent)获取测试时的后台的测试数据。所述后台的测试数据包括TPS(TransactionPerSecond,每秒事务处理量)、CPU(Central Processing Unit,中央处理器)资源占用量、网络、IO((Input/Output,输入/输出)负载量等。当获取所述后台的测试数据后,则可以基于所述后台的测试数据定位后台的性能瓶颈。
在压力测试过程中,agent以30s的间隔数据收集数据并保存至后台数据库。从数据库中取出各个测试时间段内的后台系统数据,按照时间的顺序排序,形成折现图实时查看数据的变化。基于该折线图可获知TPS每秒处理事务的上限,以及系统CPU和IO的数据;
如果CPU资源占用量过高,例如超过80%,则表示后台在处理大量的计算任务,需要分析系统的业务处理复杂度是否过于复杂;
如果IO负载量过高,例如超过80%,则表示系统在处理大量数据本地存储、访问数据库等操作,此时应继续查看数据库的结构化查询语言(Structured Query Language,SQL)的处理数据,是否出现了峰值。如果是则表示很大可能数据库操作导致的上限。否则就是其他的IO操作导致的瓶颈。
本实施例通过上述方案,监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息;将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。本方案监听浏览器接收到的用户真实操作的页面操作事件,再基于页面操作事件的操作步骤创建的测试用例,并基于分布式框架分配、并发执行测试用例,以获得前端和后台的压力测试结果。由此,通将用户真实操作的测试用例输入前端,由前端操作触发后台响应,实现了前端与后台在高并发场景下的真实压力测试,提高了压力测试的真实性。
如图4所示,本发明第二实施例提出一种压力测试方法,基于上述图2所示的第一实施例,所述基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息,之前还包括:
步骤S102-1:基于分布式开源协调服务组件构建分布式框架,所述分布式框架包括调度模块和执行模块。
本实施例基于分布式开源协调服务zookeeper组件构建分布式框架,其中zookeeper具有强一致性和选举算法的特性,可以很好的实现高性能高可用的分布式执行框架,以供基于所述分布式框架实现大规模的并发压力测试。
如图5所示,图5是本发明压力测试方法第二实施例涉及的分布式框架示意图。如图5所示,所述调度模块包括多个dispatcher(调度器),其中又包括dispatcher主节点(leader,领导)和dispatcher备用节点。所述执行模块包括多个。
基于所述调度模块可以实现调度的高可用。具体地,利用Zookeeper实现的选举算法进行Leader选举。Zookeeper通过这种节点唯一的特性,可以创建一个Dispatcher主节点和若干个备选的Dispatcher备用节点。各个节点均用于创建Dispatcher节点并监听是否有新增或删除的Dispatcher节点,还用于选举leader节点,并进行任务调度。其中Dispatcher备用节点还用于监控当前leader节点是否存活,一旦Dispatcher主节点挂了,Dispatcher备用节点再选举新的leader节点,由此保证调度的高可用。
继续参照图5,所述执行模块包括若干个执行(Executor)节点,各个执行节点皆用于创建Executor节点并监听数据,获得前端、后端的具体执行信息;还用于监听分配的Task任务队列,并基于Selenium执行UI(user interface,用户界面)自动化。
所述基于预先构建的分布式框架分配、执行所述测试用例以获得具体执行信息,包括:
通过所述调度模块按预设的分配策略和并发量为所述测试用例分配执行模块,以通过所述执行模块执行所述测试用例以触发前端操作并调用后台,并获得具体执行信息。
具体地,由所述执行模块将预设个数的所述测试用例解析成对应的测试步骤,将所述测试步骤通过自动化测试框架提供的接口并发接入浏览器,以触发前端操作并调用后台;
通过前端的性能监控接口获取前端的原始性能数据,并通过代理获取后台的系统数据,将所述原始性能数据和所述系统数据保存为具体执行信息。具体地,由所述执行模块通过selenium(网页自动化工具)页面返回所述前端的测试数据,通过执行window.performance可以获取到精确的前端的前端的测试数据。通过代理(agent)获取测试时的后台的测试数据。
基于所述分布式框架,正常的压力测试流程为:已提交—>已分配—>准备—>开始—>执行中—>完成。异常的压力测试流程可能为:正在终止任务—>已终止—>重新提交;或者,正在取消中—>已取消。
进一步地,所述调度模块向执行模块分配测试用例的预设分配策略包括:轮询平均分配、随机分配、HASH(哈希)一致性、最近最久未使用等。
所述执行模块中的Executor节点接收所述调度模块分配过来的测试用例,多所述协商用例进行接续,获得测试步骤,便可以驱动浏览器打开网页进行页面的自动化操作。前端执行登录等操作,相应地会触发调用后台登录接口。此时基于分布式框架,同时会有成千上万的测试用例同时运行,便可以模拟到用户从真实的浏览器打开页面大量并发的真实场景。
执行模块执行的一般操作包括:元素定位→运行执行命令操作元素→验证操作结果是否符合预期→记录具体执行信息。一般地,可以通过Selenium提供的API接口找到页面元素(WebElement):
WebElement element=driver.findElementByXpath("xxx/xxx/xxx")
一般地,可以通过element.action(value)命令进行命令操作元素的执行。
进一步地,所述将所述测试步骤通过自动化测试框架提供的接口并发接入浏览器,之后包括:
遍历所述测试步骤,判断是否存在逻辑操作;若存在逻辑操作,则确定所述逻辑操作的逻辑类型及值,以供依次所述逻辑操作的各个分支。
所述逻辑操作包括if、else、while、end等。具体地,遍历所述测试步骤,判断是否存在逻辑操作;若存在逻辑操作,则判定该逻辑操作是否为if,若该逻辑操作是if,则执行if步骤,并判定对应的值是否为true,若是则执行后续步骤直至end;若该逻辑操作不是if,则执行while对应的峰值操作。
本实施例根据if条件判断处理复杂的页面操作事件,本实施例支持if判断输入的比较条件,if判断元素是否存在,if判断元素上的值是否和预期值相同。以上逻辑步骤使用分别是if…end;if…else…end;while…end。通过end来判断当前用例步骤的逻辑处理是否结束。
如此基于上述逻辑判断步骤,可以实现复杂场景下包含逻辑判断步骤的页面操作事件处理,使压力测试更加真实有效。
进一步地,所述将所述预设个数的测试步骤通过自动化测试框架提供的接口并发接入浏览器,之后还包括:
判断当前页面是否需要输入变量;若需要输入变量,则获取变量名,并基于所述变量名从存放变量值的临时变量池中获取目标变量值,并将所述目标变量值输入所述当前页面。
具体地,在监听浏览器的页面操作事件的过程中,将页面上的值输出作为变量,记录对应的变量名和变量值,并存放至临时变量池(variableMap)。当需要输入变量时,则从所述临时变量池中取出目标变量值,并将所述目标变量值输入所述当前页面。例如,浏览器页面上显示卡号文本,调用命令:variableMap.put(var1,8089978)把卡号8089978输出作为变量,在变量值的一栏,将变量名配置为var1;当步骤执行时定位到文本元素,调用命令variableMap.get(var1),以获取基于变量名var1将该文本8089978作为目标变量值,并输入所述目标变量值。
由此,可以快速获取到准确的变量,使得压力测试更加顺畅准确,不会由于无变量可输入或者变量输入错误导致压力测试不成功。
进一步地,所述通过所述执行模块执行所述测试用例,包括:
判断所述测试用例是否需要进行数据验证;一般地,当前页面有数据输入时,则需要进行数据验证。所述数据验证包括验证码验证,用户名验证等。
若需要进行数据验证,在所述测试用例的操作步骤中新增结构化查询语言,将返回的第一个数据与对应的后台数据进行对比;结构化查询语言(Structured QueryLanguage,SQL)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。基于所述结构化查询语言可以获得返回数据,将返回的第一个数据与后台数据进行对比;若所述第一个数据与所述对应的后台数据一致,则判定通过所述数据验证。
数据验证可以即时验证前端、后台数据的一致性,避免由于前端、后台数据不一致导致的压力测试无效,提高压力测试的有效性。
进一步地,所述通过所述执行模块执行所述测试用例,包括:
当需要对目标元素进行识别时,对所述浏览器的当前页面进行截图,获得第一图像;
基于模板匹配函数将所述第一图像与源码修改前的第二图像进行对比;获得坐标对比结果;
基于预设处理函数从所述坐标对比结果中确定标准相关参数值最小的坐标,确定为所述第一图像的坐标;
基于所述第一图像的坐标确定所述页面操作事件对应的目标元素的目标元素坐标以在所述目标元素坐标的对应位置执行相关操作。
OpenCV中的cvMatchTemplate用于在两个待对比的图像之间寻找匹配,获得匹配结果。
本实施例中,调用OpenCV库的图像匹配算法进行两个图像的比对,具体地,加载所述第一图像和所述第二图像,调用OpenCV中的模板匹配函数cvMatchTemplate将所述第一图像和所述第二图像进行对比。
具体地,调用cvMatchTemplate函数的命令代码如下:
OpencvMatch opencvMatch=new OpencvMatch(path);
Point point=opencvMatch.match(photo.getPath());
OpenCV函数cvMatchTemplate函数可以在所述第一图像和所述第二图像之间进行对比匹配,获得匹配结果图像,也即在所述第二图像中寻找与所述第一图像最相似的图像。
当所述cvMatchTemplate函数运行完毕后,获取输出结果:其中,所述输出结果包括很多矩阵数据以及匹配出的图像,还可以包括匹配出的图像的坐标。
调用cvMatchTemplate进行匹配的命令代码如下:
cvMatchTemplate(source,this.image,result,CV_TM_CCORR_NORMED);
其中,source(资源)是指所述第二图像,this.image是指所述第一图像,CV_TM_CCORR_NORMED是标准相关匹配算法,所述CV_TM_CCORR_NORMED可以表示为:
Figure BDA0002875457230000151
其中,(x,y)是指所述cvMatchTemplate函数运行后获取的输出结果中各个匹配出的图像的坐标;T是指所述第二图像,I是指所述第一图像;(x’,y’)是指所述第二图像的坐标;R(x,y)是所述标准相关参数。
在其它实施例中,还可以选用平方差匹配算法、标准平方差匹配算法代替所述标准相关匹配算法。
OpenCV函数cvMinMaxLoc用于给定的矩阵中寻找最大值和最小值(包括它们的坐标)。
进一步地,通过调用cvMinMaxLoc预处理函数,从所述输出结果中确定最小值,调用cvMinMaxLoc的命令代码如下:
cvMinMaxLoc(result,minVal,maxVal,minLoc,maxLoc,null);
其中,result也即所述cvMatchTemplate函数获得的result;
当matchLoc=minLoc时,也即将矩阵中的最小值确定为相似度最高最匹配的图像,并将对应的图像确定为所述第一图像,将对应的坐标确定为所述第一图像的坐标。
进一步地,基于所述第一图像的坐标确定所述页面操作事件对应的目标元素的目标元素坐标。具体地,通过selenium提供的JavascriptExecutor(Js引擎)执行js脚本定位元素,输入获得目标元素坐标。命令如下:
JavascriptExecutor jsExecutor=(JavascriptExecutor)driver;
String js="return document.elementFromPoint(arguments[0],arguments[1]);";
return(WebElement)jsExecutor.executeScript(js,point.x,point.y);
如此即可获得并输入目标元素坐标,以供在所述目标位置执行相关操作。例如需要获取目标元素控件A所在的位置,则先获得所述控件A的坐标,再在该坐标处进行操作,如此可以模拟真实的用户操作。
一般地,网页源码修改后,则难以基于源码进行元素定位。本实施例基于openCV实现目标元素定位,增强了压力测试的真实性。
本实施例通过上述方案,通过所述调度模块按预设的分配策略和并发量为所述测试用例分配执行模块,以通过所述执行模块执行所述测试用例以触发前端操作并调用后台,以获得具体执行信息,并且新增逻辑判断、变量输入、数据验证、元素识别的功能,可以实现基于复杂测试用例的压力测试,并且可模拟最真实的并发场景,实现了前端与后台在高并发场景下的真实压力测试,提高了压力测试的真实性。
此外,本实施例还提供一种压力测试装置。参照图6,图6为本发明压力测试装置第一实施例的功能模块示意图。
本实施例中,所述压力测试装置为虚拟装置,存储于图1所示的压力测试设备的存储器1005中,以实现压力测试程序的所有功能:用于监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;用于基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以获得具体执行信息;用于将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。
具体地,参照图6,所述压力测试装置包括:
整合模块10,用于监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;
测试模块20,用于基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以获得具体执行信息;
比较模块30,用于将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。
进一步地,所述整合模块还用于:通过浏览器提供的页面监听事件接口,监听浏览器的页面操作事件,所述页面操作事件包括发送码操作和点击操作;
将所述页面操作事件中连续的发送码操作合并成一个组合发送码操作并将连续的按键编码合并成一个组合按键编码,和/或将所述页面操作事件中预设时长内连续的点击操作合并成一个组合点击操作;
将各个非连续的发送码操作及其按键编码、非连续的点击操作,组合发送码操作及其对应的组合按键编码,以及各个组合点击操作放入步骤列表中,将所述步骤列表中的操作进行拼接整合,获得所述操作步骤。
进一步地,所述测试模块还用于:
基于分布式开源协调服务组件构建分布式框架,所述分布式框架包括调度模块和执行模块。
进一步地,所述测试模块还用于:
通过所述调度模块按预设的分配策略和并发量为所述测试用例分配执行模块,以通过所述执行模块执行所述测试用例以触发前端操作并调用后台,并获得具体执行信息。
进一步地,所述测试模块还用于:
由所述执行模块将预设个数的所述测试用例解析成对应的测试步骤,将所述测试步骤通过自动化测试框架提供的接口并发接入浏览器,以触发前端操作并调用后台;
通过前端的性能监控接口获取前端的原始性能数据,并通过代理获取后台的系统数据,将所述原始性能数据和所述系统数据保存为具体执行信息。
进一步地,所述测试模块还用于:
遍历所述测试步骤,判断是否存在逻辑操作;
若存在逻辑操作,则确定所述逻辑操作的逻辑类型及值,以供依次所述逻辑操作的各个分支。
进一步地,所述测试模块还用于:
判断当前页面是否需要输入变量;
若需要输入变量,则获取变量名,并基于所述变量名从存放变量值的临时变量池中获取目标变量值,并将所述目标变量值输入所述当前页面。
进一步地,所述测试模块还用于:
判断所述测试用例是否需要进行数据验证;
若需要进行数据验证,在所述测试用例的操作步骤中新增结构化查询语言,将返回的第一个数据与对应的后台数据进行对比;
若所述第一个数据与所述对应的后台数据一致,则判定通过所述数据验证。
进一步地,所述测试模块还用于:
当需要对目标元素进行识别时,对所述浏览器的当前页面进行截图,获得第一图像;
基于模板匹配函数将所述第一图像与源码修改前的第二图像进行对比,获得坐标对比结果;
基于预设处理函数从所述坐标对比结果中确定标准相关参数值最小的坐标确定为所述第一图像的坐标;
基于所述第一图像的坐标确定所述页面操作事件对应的目标元素的目标元素坐标,以在所述目标元素坐标的对应位置执行相关操作。
进一步地,所述比较模块还用于:
将所述具体执行信息中的前端的各个测试数据与对应的前端测试基准数据进行比较;
若所述各个测试数据与对应前端测试基准数据的差值都符合预设要求,则判定前端能承受所述测试数据对应的并发量;和/或
将所述具体执行信息中的后台的各个测试数据与对应的后台测试基准数据进行比较;
基于比较结果确定后台的每秒处理事务的上限、中央处理器CPU资源占用量、输入输出IO负载量。
此外,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有压力测试程序,所述压力测试程序被处理器运行时实现如上所述压力测试方法的步骤,此处不再赘述。
相比现有技术,本发明提出的一种压力测试方法、装置、设备及计算机可读存储介质,该方法包括:监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息;将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。本方案监听浏览器接收到的用户真实操作的页面操作事件,再基于页面操作事件的操作步骤创建的测试用例,并基于分布式框架分配、并发执行测试用例,以获得前端和后台的压力测试结果。由此,通将用户真实操作的测试用例输入前端,由前端操作触发后台响应,实现了前端与后台在高并发场景下的真实压力测试,提高了压力测试的真实性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (12)

1.一种压力测试方法,其特征在于,所述方法包括:
监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;
基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息;
将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。
2.根据权利要求1所述的方法,其特征在于,所述监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤,包括:
通过浏览器提供的页面监听事件接口,监听浏览器的页面操作事件,所述页面操作事件包括发送码操作和点击操作;
将所述页面操作事件中连续的发送码操作合并成一个组合发送码操作并将连续的按键编码合并成一个组合按键编码,和/或将所述页面操作事件中预设时长内连续的点击操作合并成一个组合点击操作;
将各个非连续的发送码操作及其按键编码、非连续的点击操作,组合发送码操作及其对应的组合按键编码,以及各个组合点击操作放入步骤列表中,将所述步骤列表中的操作进行拼接整合,获得所述操作步骤。
3.根据权利要求1所述的方法,其特征在于,基于预先构建的分布式框架分配、执行所述测试用例以触发前端操作并调用后台,获得具体执行信息,之前还包括:
基于分布式开源协调服务组件构建分布式框架,所述分布式框架包括调度模块和执行模块;
所述基于预先构建的分布式框架分配、执行所述测试用例以获得具体执行信息,包括:
通过所述调度模块按预设的分配策略和并发量为所述测试用例分配执行模块,以通过所述执行模块执行所述测试用例以触发前端操作并调用后台,并获得具体执行信息。
4.根据权利要求3所述的方法,其特征在于,所述通过所述执行模块执行所述测试用例触发前端操作并调用后台,并获得具体执行信息,包括:
由所述执行模块将预设个数的所述测试用例解析成对应的测试步骤,将所述测试步骤通过自动化测试框架提供的接口并发接入浏览器,以触发前端操作并调用后台;
通过前端的性能监控接口获取前端的原始性能数据,并通过代理获取后台的系统数据,将所述原始性能数据和所述系统数据保存为具体执行信息。
5.根据权利要求4所述的方法,其特征在于,所述将所述测试步骤通过自动化测试框架提供的接口并发接入浏览器,之后包括:
遍历所述测试步骤,判断是否存在逻辑操作;
若存在逻辑操作,则确定所述逻辑操作的逻辑类型及值,以供依次所述逻辑操作的各个分支。
6.根据权利要求4所述的方法,其特征在于,所述将所述预设个数的测试步骤通过自动化测试框架提供的接口并发接入浏览器,之后还包括:
判断当前页面是否需要输入变量;
若需要输入变量,则获取变量名,并基于所述变量名从存放变量值的临时变量池中获取目标变量值,并将所述目标变量值输入所述当前页面。
7.根据权利要求3所述的方法,其特征在于,所述通过所述执行模块执行所述测试用例,包括:
判断所述测试用例是否需要进行数据验证;
若需要进行数据验证,在所述测试用例的操作步骤中新增结构化查询语言,将返回的第一个数据与对应的后台数据进行对比;
若所述第一个数据与所述对应的后台数据一致,则判定通过所述数据验证。
8.根据权利要求3所述的方法,其特征在于,所述通过所述执行模块执行所述测试用例,包括:
当需要对目标元素进行识别时,对所述浏览器的当前页面进行截图,获得第一图像;
基于模板匹配函数将所述第一图像与源码修改前的第二图像进行对比,获得坐标对比结果;
基于预设处理函数从所述坐标对比结果中确定标准相关参数值最小的坐标确定为所述第一图像的坐标;
基于所述第一图像的坐标确定所述页面操作事件对应的目标元素的目标元素坐标,以在所述目标元素坐标的对应位置执行相关操作。
9.根据权利要求1所述的方法,其特征在于,所述将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果,包括:
将所述具体执行信息中的前端的各个测试数据与对应的前端测试基准数据进行比较;
若所述各个测试数据与对应前端测试基准数据的差值都符合预设要求,则判定前端能承受所述测试数据对应的并发量;和/或
将所述具体执行信息中的后台的各个测试数据与对应的后台测试基准数据进行比较;
基于比较结果确定后台的每秒处理事务的上限、中央处理器CPU资源占用量、输入输出IO负载量。
10.一种压力测试装置,其特征在于,所述压力测试装置包括:
整合模块,用于监听浏览器的页面操作事件,对所述页面操作事件进行整合获得操作步骤;
测试模块,用于基于所述操作步骤创建测试用例,基于预先构建的分布式框架分配、执行所述测试用例以获得具体执行信息;
比较模块,用于将所述具体执行信息中的各个前端、后台的测试数据与对应的预设基准数值进行比较获得压力测试结果。
11.一种压力测试设备,其特征在于,所述压力测试设备包括处理器,存储器以及存储在所述存储器中的压力测试程序,所述压力测试程序被所述处理器运行时,实现如权利要求1-9中任一项所述的压力测试方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有压力测试程序,所述压力测试程序被处理器运行时实现如权利要求1-9中任一项所述压力测试方法的步骤。
CN202011644119.4A 2020-12-30 2020-12-30 压力测试方法、装置、设备及计算机可读存储介质 Active CN112699040B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011644119.4A CN112699040B (zh) 2020-12-30 2020-12-30 压力测试方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011644119.4A CN112699040B (zh) 2020-12-30 2020-12-30 压力测试方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112699040A true CN112699040A (zh) 2021-04-23
CN112699040B CN112699040B (zh) 2024-02-23

Family

ID=75514298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011644119.4A Active CN112699040B (zh) 2020-12-30 2020-12-30 压力测试方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112699040B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113722240A (zh) * 2021-11-02 2021-11-30 麒麟软件有限公司 一种linux操作系统管理平台的稳定性测试方法及系统
CN114968756A (zh) * 2021-06-21 2022-08-30 中移互联网有限公司 一种在线会议服务的优化方法、装置及电子设备
CN115357501A (zh) * 2022-08-24 2022-11-18 中国人民解放军32039部队 航天测控软件的自动化测试方法和系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070115860A1 (en) * 2005-11-11 2007-05-24 Antonio Samele End-to-end test and diagnostic management system
US20130067298A1 (en) * 2011-09-08 2013-03-14 Microsoft Corporation Automatically allocating clients for software program testing
CN104346276A (zh) * 2013-08-08 2015-02-11 腾讯科技(深圳)有限公司 软件测试的方法及装置
US20150082239A1 (en) * 2013-09-13 2015-03-19 Curious Olive, Inc. Remote Virtualization of Mobile Apps with Transformed Ad Target Preview
CN107506294A (zh) * 2017-07-04 2017-12-22 深圳市小牛在线互联网信息咨询有限公司 可视化自动化测试方法、装置、存储介质和计算机设备
CN108563571A (zh) * 2018-04-11 2018-09-21 车巴达(苏州)网络科技有限公司 软件接口测试方法及系统、计算机可读存储介质、终端
CN109062780A (zh) * 2018-06-25 2018-12-21 深圳市远行科技股份有限公司 自动化测试用例的开发方法及终端设备
CN110162457A (zh) * 2019-04-12 2019-08-23 深圳壹账通智能科技有限公司 用户界面的测试方法、装置、设备及存储介质
CN110297767A (zh) * 2019-06-03 2019-10-01 平安科技(深圳)有限公司 测试用例自动执行方法、装置、设备及存储介质
US20190303278A1 (en) * 2018-04-02 2019-10-03 Hamilton Sundstrand Corporation Testing autonomous reconfiguration logic for an electromechanical actuator
CN111104315A (zh) * 2019-11-29 2020-05-05 京东数字科技控股有限公司 一种测试脚本生成方法及装置、计算机可读存储介质
CN111367802A (zh) * 2020-02-29 2020-07-03 中国平安财产保险股份有限公司 web自动化测试方法、装置及计算机可读存储介质
CN111831536A (zh) * 2019-04-17 2020-10-27 北京京东尚科信息技术有限公司 一种自动化测试方法和装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070115860A1 (en) * 2005-11-11 2007-05-24 Antonio Samele End-to-end test and diagnostic management system
US20130067298A1 (en) * 2011-09-08 2013-03-14 Microsoft Corporation Automatically allocating clients for software program testing
CN104346276A (zh) * 2013-08-08 2015-02-11 腾讯科技(深圳)有限公司 软件测试的方法及装置
US20150082239A1 (en) * 2013-09-13 2015-03-19 Curious Olive, Inc. Remote Virtualization of Mobile Apps with Transformed Ad Target Preview
CN107506294A (zh) * 2017-07-04 2017-12-22 深圳市小牛在线互联网信息咨询有限公司 可视化自动化测试方法、装置、存储介质和计算机设备
US20190303278A1 (en) * 2018-04-02 2019-10-03 Hamilton Sundstrand Corporation Testing autonomous reconfiguration logic for an electromechanical actuator
CN108563571A (zh) * 2018-04-11 2018-09-21 车巴达(苏州)网络科技有限公司 软件接口测试方法及系统、计算机可读存储介质、终端
CN109062780A (zh) * 2018-06-25 2018-12-21 深圳市远行科技股份有限公司 自动化测试用例的开发方法及终端设备
CN110162457A (zh) * 2019-04-12 2019-08-23 深圳壹账通智能科技有限公司 用户界面的测试方法、装置、设备及存储介质
CN111831536A (zh) * 2019-04-17 2020-10-27 北京京东尚科信息技术有限公司 一种自动化测试方法和装置
CN110297767A (zh) * 2019-06-03 2019-10-01 平安科技(深圳)有限公司 测试用例自动执行方法、装置、设备及存储介质
CN111104315A (zh) * 2019-11-29 2020-05-05 京东数字科技控股有限公司 一种测试脚本生成方法及装置、计算机可读存储介质
CN111367802A (zh) * 2020-02-29 2020-07-03 中国平安财产保险股份有限公司 web自动化测试方法、装置及计算机可读存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AHMED MATEEN: "Optimization of model based functional test case generation for android applications", 《2017 IEEE INTERNATIONAL CONFERENCE ON POWER, CONTROL, SIGNALS AND INSTRUMENTATION ENGINEERING (ICPCSI)》, pages 1 - 9 *
于希敏: "一个基于Web日志的用户操作序列及网站可用性分析方法", 《第5届全国人机交互学术会议(CHCI2009)》, pages 1 - 5 *
叨唠: "你不知道的copy、cut、paste事件——实现页面内容禁止复制,实现复制内容添加额外字段,比如复制请注明出处", pages 1 - 6, Retrieved from the Internet <URL:《https://blog.csdn.net/zyz00000000/article/details/110398811 》> *
孙全: "安卓应用数据竞争的检测与再现", 《万方》, pages 1 - 56 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968756A (zh) * 2021-06-21 2022-08-30 中移互联网有限公司 一种在线会议服务的优化方法、装置及电子设备
CN113722240A (zh) * 2021-11-02 2021-11-30 麒麟软件有限公司 一种linux操作系统管理平台的稳定性测试方法及系统
CN115357501A (zh) * 2022-08-24 2022-11-18 中国人民解放军32039部队 航天测控软件的自动化测试方法和系统
CN115357501B (zh) * 2022-08-24 2024-04-05 中国人民解放军32039部队 航天测控软件的自动化测试方法和系统

Also Published As

Publication number Publication date
CN112699040B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN112699040B (zh) 压力测试方法、装置、设备及计算机可读存储介质
US8209702B1 (en) Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks
US8041790B2 (en) Dynamic definition for concurrent computing environments
CN104834599B (zh) Web安全检测方法和装置
US9836330B2 (en) Virtual resource management tool for cloud computing service
EP2629205A1 (en) Multi-entity test case execution workflow
CN109560996B (zh) 物联网终端自动化测试系统及方法
US8863130B2 (en) Exception handling in a concurrent computing process
CN112650676A (zh) 软件测试方法、装置、设备及存储介质
CN111190753A (zh) 分布式任务处理方法、装置、存储介质和计算机设备
CN113010286A (zh) 并行任务调度方法、装置、计算机设备和存储介质
CN113434265A (zh) 工作流调度方法、服务器和介质
CN112631577B (zh) 一种模型的调度方法、模型调度器以及模型安全测试平台
CN115168509A (zh) 风控数据的处理方法及装置、存储介质、计算机设备
WO2021121130A1 (zh) 信息采集方法、装置、计算机设备及存储介质
CN113485810A (zh) 一种任务的调度执行方法、装置、设备及存储介质
CN114968505A (zh) 任务处理系统、方法、装置、设备、存储介质及程序产品
CN111160403A (zh) 一种api接口复用发现的方法及装置
CN111324472B (zh) 对待检测信息作垃圾项目判断的方法和装置
CN114816433A (zh) 基于异步编程在项目中的编码方法、系统、设备及介质
CN116232940A (zh) 基于quic协议的性能测试系统、方法及装置
CN116319331A (zh) 一种dns解析配置信息的批量下发方法、装置、介质及设备
CN117762587A (zh) 任务调度方法、装置、终端设备以及存储介质
CN117950760A (zh) 基于日志染色的接口调用情况分析方法、装置及设备
CN114661509A (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
GR01 Patent grant
GR01 Patent grant