CN112269744A - 系统异常测试方法、装置、计算机设备和存储介质 - Google Patents
系统异常测试方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112269744A CN112269744A CN202011192642.8A CN202011192642A CN112269744A CN 112269744 A CN112269744 A CN 112269744A CN 202011192642 A CN202011192642 A CN 202011192642A CN 112269744 A CN112269744 A CN 112269744A
- Authority
- CN
- China
- Prior art keywords
- abnormal
- preset
- code
- exception
- scene
- 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/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)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例属于自动化测试技术领域,涉及一种系统异常测试方法,包括从前端、后端代码中获取异常对应方案的异常编码和处理页面,生成实际异常表,然后根据实际异常表生成各服务器对应的预设异常脚本并写入系统对应的服务器中,然后接收测试请求,以指示后端判断所述测试请求中是否包括预设异常标识;若有则执行与所述预设异常标识对应的预设异常脚本,根据执行结果向前端发送异常编码,以指示前端查找与异常编码对应的异常页面进行显示,得到实际异常场景;对比实际异常场景与对应的预设异常场景是否一致;若一致,则测试通过,否则,测试不通过。采用本方法解决了现有技术中无法穷举测试,导致的测试遗漏、测试结果不准确的技术问题。
Description
技术领域
本申请涉及自动化测试技术领域,特别是涉及一种系统异常测试方法、装置、计算机设备和存储介质。
背景技术
随着自动化测试技术的发展,自动化测试技术应用到越来越多的软件测试中,如何将自动化测试技术应用到数据库管理系统功能测试称为一个新的客体,自动化测试也是目前软件研发公司的测试趋势。目前大多数自动化都是UI及后端接口的一些自动化,很少有前端与后端接口、服务器之间进行自动化测试的,但往往前后端接口、服务之间的自动化测试最难实现,因此经常会存在部分异常因测试条件不允许,或者场景模拟困难而无法完全遍历到。测试人员面对异常测试往往是采用穷举法,费时费力,而且测试结果不准确,同时又因此类问题、测试人员惯性思维或者漏测而造成的测试遗漏的技术问题。
发明内容
基于此,针对上述技术问题,本申请提供一种系统异常测试方法、装置、计算机设备及存储介质,以解决现有技术中无法穷举测试,导致的测试遗漏、测试结果不准确的技术问题。
一种系统异常测试方法,应用于包括至少一个服务器的系统,每个服务器上都有对应的前端和后端功能接口,其中,所述服务器上包括预设异常脚本,所述方法包括:
提取所述后端的后端代码中所有异常对应方案的异常编码;
提取所述前端的前端代码中所有异常对应方案对应的处理页面;
对所述异常编码、所述处理页面做映射处理,得到实际异常表;
根据所述实际异常表生成各服务器对应的预设异常脚本,并将所述预设异常脚本写入所述系统中的对应的服务器中;
接收测试请求,以指示后端判断所述测试请求中是否包括预设异常标识;
若有,则执行与所述预设异常标识对应的预设异常脚本,并根据执行结果向前端发送异常编码,以指示所述前端查找与所述异常编码对应的异常页面进行显示,得到实际异常场景;
对比所述实际异常场景与对应的预设异常场景是否一致;
若一致,则测试通过,否则,测试不通过。
一种系统异常测试装置,应用于包括至少一个服务器的系统,每个服务器上都有对应的前端和后端功能接口,其中,所述服务器上包括预设异常脚本,所述装置包括:
第一提取模块,用于提取后端的后端代码中所有异常对应方案的异常编码;
第二提取模块,用于提取前端的前端代码中所有异常对应方案对应的处理页面;
第二映射模块,用于对异常编码、处理页面做映射处理,得到实际异常表;
写入模块,用于根据实际异常表生成各服务器对应的预设异常脚本,并将预设异常脚本写入系统中的对应的服务器中。
请求模块,用于接收测试请求,以指示后端判断所述测试请求中是否包括预设异常标识;
执行模块,用于若有,则执行与所述预设异常标识对应的预设异常脚本,并根据执行结果向前端发送异常编码,以指示所述前端查找与所述异常编码对应的异常页面进行显示,得到实际异常场景;
对比模块,用于对比所述实际异常场景与对应的预设异常场景是否一致;
输出模块,用于若一致,则测试通过,否则,测试不通过。
一种计算机设备,包括存储器和处理器,以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述系统异常测试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述系统异常测试方法的步骤。
上述系统异常测试方法、装置、计算机设备和存储介质,通过根据测试请求中的预设异常标识对写入预设异常脚本的后端进行测试,得到已经写入到代码中异常编码,然后再指示前端根据异常编码生成对应的异常页面,将整个的测试节点作为实际异常场景,并将其与预设异常场景进行对比,得到测试结果。通过本申请不需要再对前后端每个异常做穷举测试,无需再检查每个接口的异常在前端是否处理正确,也不需要像UI自动化那样担心页面变化带来的测试用例脚本的维护,只需要将提前生成的预设异常脚本写入每个需要测试的服务器上,在通过已有的工具进行调用测试,无需再通过各种方式去模拟各种异常场景,即可快速实现各个异常场景的遍历测试,解决了现有技术中测试遗漏、测试结果不准确的技术问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为系统异常测试方法的应用环境示意图;
图2为系统异常测试方法的流程示意图;
图3系统异常测试装置的示意图;
图4为一个实施例中计算机设备的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的系统异常测试方法,可以应用于如图1所示的应用环境中。其中,该应用环境可以包括终端102、网络以及服务端104,网络用于在终端102和服务端104之间提供通信链路介质,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端102通过网络与服务端104交互,以接收或发送消息等。终端102上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端102可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务端104可以是提供各种服务的服务器,例如对终端102上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的系统异常测试方法一般由服务端/终端执行,相应地,系统异常测试装置一般设置于服务端/终端设备中。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
应该理解,图1中的终端、网络和服务端的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
其中,终端102通过网络与服务端104进行通信。服务104接收终端102的测试请求,并根据其中的预设异常标识对写入预设异常脚本的后端进行测试,得到已经写入到代码中异常编码,然后再指示系统中的前端根据异常编码生成对应的异常页面,将整个的测试节点作为实际异常场景,并将其与预设异常场景进行对比,得到测试结果。其中,终端102和服务端104之间通过网络进行连接,该网络可以是有线网络或者无线网络,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务端104可以用独立的服务器或者是多个组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种系统异常测试方法,以该方法应用于图1中的服务端为例进行说明,包括以下步骤:
步骤202,提取后端的后端代码中所有异常对应方案的异常编码。
在一些实施例中,本申请的技术方案应用于包括至少一个服务器的系统上,该服务器包括对应前端和后端的功能接口,其中,服务器上包括预设异常脚本,预设异常脚本是在测试之前通过提取前端代码、后端代码中写入的异常场景而生成的测试脚本。在一些实施例中,以系统异常测试工具为例对本提案的技术方案进行说明。
因为本申请提到的系统往往是由不同的服务器组件去实现不同的功能,各服务器组件是指我们系统部署在哪些服务上,例如:实现文件传送是通过FTP服务实现的,存储文件是通过NAS服务存储的,数据存储是在数据库服务等。这是FTP、NAS以及数据库就是三个独立的服务器组件,就有可能存在单独的某个服务出现异常的情况。
对于某前端、后端有数据交互的测试系统,前端和后端上分别部署有实现功能服务的代码,在一些实施例中,为了实现对服务器进行测试,需要预先从后端代码中提取所有异常对应方案的异常编码,然后与前端代码中的同一异常对应方案对应的处理页面进行映射处理。
步骤204,提取前端的前端代码中所有异常对应方案对应的处理页面。
前端代码中也预先写有对应各种异常对应方案的处理页面,处理页面中包括对应测试用户某测试请求的响应数据。
步骤206,对异常编码、处理页面做映射处理,得到实际异常表。
实际异常表中的某条数据可以如图1示:
异常编码 | 处理页面 |
Code:000999,数据库连接失败 | 系统繁忙,请稍后再试。 |
表1
步骤208,根据所述实际异常表生成各服务器对应的预设异常脚本,并将所述预设异常脚本写入所述系统中的对应的服务器中。
步骤210,接收测试请求,以指示后端判断测试请求中是否包括预设异常标识。
预设异常标识时已知在正常情况下输入该预设异常标识,根据相应的异常场景,系统中负责处理请求的后端会根据对某服务的处理返回一个异常提示或者异常数据的数据标识。后端是对输入的预设异常标识进行处理的服务器、或者服务器上的某个功能接口,例如:系统登录时连接数据库失败而导致登录失败,预期结果是后端返回“code:000999,数据库连接输出白”,然后前端页面根据返回结果提示“系统繁忙,请稍后再试”的前端页面。
步骤212,若有,则执行与预设异常标识对应的预设异常脚本,并根据执行结果向前端发送异常编码,以指示前端查找与异常编码对应的异常页面进行显示,得到实际异常场景。
在一些实施例中,如要实现对预设异常标识的判断,需要先提取后端的后端代码中所有异常对应方案的异常编码,以及前端的前端代码中所有异常对应方案对应的处理页面;然后对异常编码、处理页面做映射处理,得到实际异常表;最后再根据实际异常表生成各服务器对应的预设异常脚本,并将预设异常脚本写入系统中的对应的服务器中。
例如:异常场景需求是:要测试的NAS服务异常,文件无法存入。那么定义的预设异常脚本可以是:获取预先写好导致NSA服务错误的异常脚本,或者跟NAS服务约定,当后端收到包含相应的预设异常标识的请求时就是的NAS服务错误,并返回对应的异常编码给前端,指示前端生成异常页面。其中,NAS服务(Network Attached Storage:网络附属存储)是一种将分布、独立的数据整合为大型、集中化管理的数据中心。
所以在当后端接收到预设异常标识时,NAS服务就能知道是要测试这种异常场景,后端就可以直接调用写入NAS服务上的预设异常脚本执行,然后发送对应的异常编码指示对应的前端进行对应的处理。其中,实际异常表中是从已经写好的代码中提取出的数据,前端和后端上分别有一套包异常的代码、一套正常实现功能的代码,例如:NAS文件存储服务,包异常的代码就是当收到预设异常标识时,就返回指定的异常编码给上级服务器(前端),期间并不会影响正常代码的运行。后端APP主服务也是根据用户提供的预设异常标识决定调用NAS中正常的功能代码还是异常代码。
在异常的代码中提取数据时,会提取前端代码中所有异常对应方案的处理页面,并获取对应后端的异常编码,将二者进行映射处理,得到实际异常表。
在一些实施例中,本申请可以通过loadrunner工具调用系统的登录页面,自动在账号密码输入框输入内容,然后模拟点击登录按钮登录。登录时加上预设异常标识(如:loadrunner的设备IP地址),后端接收到包括该设备IP地址的请求时,会判断该设备IP地址是否为指定的IP地址,若是需要执行对应的预设异常脚本,将执行后生成的异常编码(数据库连接失败)返回给前端,指示前端返回与该异常编码对应的异常页面。
将预设异常标识、对应的异常编码以及异常页面作为本次异常测试的实际异常场景。后端接收到预设异常标识后对执行对应的预设异常脚本,在执行后会生成对应的异常编码,但在代码撰写过程中,该异常编码会有错误,比如,应该输出“服务器加载失败”的异常编码,但前端接收到的却是“服务器故障”的编码,但在设定时,前端代码中的异常页面显示的与预设异常标识的相对应,确实是“服务器加载失败,请稍后重试”的页面。那么这样一个异常场景中后端的处理出现错误,现有技术中是通过直接对比输出的前端页面进行测试,但是这种测试方式无法获取后端的处理结果,会带来更多的安全隐患。所以在一些实施例中,本申请会直接对输入、后端处理、前端输出的结果进行整合,作为一个实际异常场景,作为测试通过与否判定的条件。
在执行预设异常脚本时,可以获取执行述预设异常脚本产生的测试数据流,并在所述测试数据流中选取与所述预设异常脚本有关的数据包,所述数据包包括响应于所述预设异常标识的响应数据包,比如根据预设异常标识生成的是否存在与其对应异常编码的结果数据等等;再对所述响应数据包进行解析,得到解析结果,例如,存在用户输入的某域名,且登录该域名,生成对应的cookies数据;然后根据所述解析结果选择有效测试数据,所述有效测试数据包括所述预设异常标识和对应于所述预设异常标识的有效测试数据,其中,有效测试数据可以指登录该域名生成的错误页面;最终根据所述有效测试数据生成相应的异常页面进行显示。
步骤214,对比实际异常场景与对应的预设异常场景是否一致。
预设异常场景是个服务器的异常需求的异常场景,获取方式为:获取系统的各服务器的异常需求,根据异常需求生成后端异常编码和预设异常标识;定义前端应对后端异常编码的处理页面,对预设异常标识、后端异常编码以及处理页面做映射处理,得到预设异常场景。
开发时,为了方便测试会在每一种异常场景下设定应对方案,比如前端异常应对方案是指前端收到后端返回的后端异常编码而设置的应对方案,例如当后端收到预设异常标识XXX时,前端会接收到后端返回的对应的“code:000999,XXX参数异常”的后端异常编码,因为前端不可以直接将后端异常编码抛给用户,而是要对后端返回的信息进行转换,例如转换字段为:XXX字段输入错误,请重新输入,其中,前端通过一个应对方案将其转换为处理页面进行显示的方案就是异常应对方案。
进一步地,在对比异常场景的异常页面与预设异常场景的处理页面是否一致时,可以通过loadrunner获取所述异常页面的元素组成,然后将所述元素组成与预设异常场景的处理页面的元素组成进行一致性对比。其中,loadrunner是一种预测系统行为和性能的负载测试工具。具体地,其中,元素是指前端页面的组成部分,例如:文字、图片、动画等。每个前端页面都是通过不同的元素组合拼装而成的,这是前端页面的绘制逻辑,本提案运用这个特性,对比异常页面中的元素与预设页面中元素是否一致。其中,预设的异常页面是从字典表中得到的。搜集、定义所有服务器异常需求,形成后端异常编码,然后定义前端应对后端异常编码的处理方式,形成字典表。例如:000000代表流程中所有服务器处理正常成功则前端提示处理成功,000009FPS服务器文件解析异常则前端提示文件存储失败,请稍后重试等。
后端代码中异常对应的异常编码时在开发时设定的code,用于简明表达异常的类型,但是在服务器上的服务搭建好后,在一些实施例中,会预先搜集、定义所有服务器所有的需求,特别是所有的异常需求,然后生成对应的预设异常标识、后端异常编码,然后再定义前端应对后端的处理页面,将预设异常标识、后端异常编码以及处理页面作为一个预设异常场景。即,输入预设异常标识后,后端预期做出的应对方案、以及前端根据后端异常编码作出的对应的处理页面。
进一步地,在搜集得到预设异常场景后,可以根据异常类型对预设异常场景进行分类处理。例如:可以根据服务器硬件故障、软件故障、软件需求故障、输入/输出故障、逻辑故障、计算机故障、接口故障以及数据故障中的多种。
分类后,可以根据故障类型对系统进行按批次测试,统一排查相同原因造成的系统异常,那么在修复故障、代码中的bug后,可以直接通过同类型的预设异常场景的进行测试,减少重复测试的次数,提高测试效率。
步骤216,若一致,则测试通过,否则,测试不通过。
若实际异常场景与预设异常场景从输入的预设异常标识到异常编码、生成的异常页面都一致,则说明当前系统中测试的服务的代码没有问题,测试通过;若不一致,例如:系统收到预设异常标识AM0001后,服务器组件给前端页面返回了CODE0010的异常编码,但是CODE0010的异常编码与CODE0001的异常编码所代表的异常不同,比如一个表示NAS服务器异常、一个表示NAS服务器数据已满,但是前端页面收到CODE0010后生成的异常页面还是HTML0001,这样在实际的运行中,就无法知晓后端异常,无法及时发现问题;但是通过本申请的技术方案,就可以发现实际异常场景与预设异常场景不一致,得到测试不通过的结果,说明当前系统代码出现错位的位置:异常出现后端异常编码的生成、前端根据异常编码进行页面的转换处。
需要强调的是,为进一步保证上述异常场景信息的私密和安全性,上述预设异常场景、实际异常场景信息还可以存储于一区块链的节点中。
上述系统异常测试方法中,通过根据测试请求中的预设异常标识对写入预设异常脚本的后端进行测试,得到已经写入到代码中异常编码,然后再指示前端根据异常编码生成对应的异常页面,将整个的测试节点作为实际异常场景,并将其与预设异常场景进行对比,得到测试结果。通过本申请不需要再对前后端每个异常做穷举测试,无需再检查每个接口的异常在前端是否处理正确,也不需要像UI自动化那样担心页面变化带来的测试用例脚本的维护,只需要将提前生成的预设异常脚本写入每个需要测试的服务器上,在通过已有的工具进行调用测试,无需再通过各种方式去模拟各种异常场景,即可快速实现各个异常场景的遍历测试,解决了现有技术中测试遗漏、测试结果不准确的技术问题。
应该理解的是,虽然图2流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种系统异常测试装置,该系统异常测试装置与上述实施例中系统异常测试方法一一对应。该系统异常测试装置应用于包括至少一个服务器的系统,每个服务器上都有对应的前端和后端功能接口,其中,服务器上包括预设异常脚本,包括:
第一提取模块302,用于提取后端的后端代码中所有异常对应方案的异常编码;
第二提取模块304,用于提取前端的前端代码中所有异常对应方案对应的处理页面;
第二映射模块306,用于对异常编码、处理页面做映射处理,得到实际异常表;
写入模块308,用于根据实际异常表生成各服务器对应的预设异常脚本,并将预设异常脚本写入系统中的对应的服务器中。
请求模块310,用于输入测试请求,以指示后端判断测试请求中是否包括预设异常标识;
执行模块312,用于若有,则执行与预设异常标识对应的预设异常脚本,并根据执行结果向前端发送异常编码,以指示前端查找与异常编码对应的异常页面进行显示,得到实际异常场景;
对比模块314,用于对比实际异常场景与对应的预设异常场景是否一致;
输出模块316,用于若一致,则测试通过,否则,测试不通过。
进一步地,在第一提取模块302之前,还包括:
需求模块,用于获取系统的各服务器的异常需求,根据异常需求生成后端异常编码和预设异常标识;
第一映射模块,用于定义前端应对后端异常编码的处理页面,对预设异常标识、后端异常编码以及处理页面做映射处理,得到预设异常场景。
进一步地,对比模块314,包括:
获取子模块,用于获取与实际异常场景对应的预设异常场景;
第一对比子模块,用于对比实际异常场景的异常编码与预设异常场景的后端异常编码是否一致;
第二对比子模块,用于对比异常场景的异常页面与预设异常场景的处理页面是否一致。
上述系统异常测试装置,通过根据测试请求中的预设异常标识对写入预设异常脚本的后端进行测试,得到已经写入到代码中异常编码,然后再指示前端根据异常编码生成对应的异常页面,将整个的测试节点作为实际异常场景,并将其与预设异常场景进行对比,得到测试结果。通过本申请不需要再对前后端每个异常做穷举测试,无需再检查每个接口的异常在前端是否处理正确,也不需要像UI自动化那样担心页面变化带来的测试用例脚本的维护,只需要将提前生成的预设异常脚本写入每个需要测试的服务器上,在通过已有的工具进行调用测试,无需再通过各种方式去模拟各种异常场景,即可快速实现各个异常场景的遍历测试,解决了现有技术中测试遗漏、测试结果不准确的技术问题。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机可读指令和数据库。该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。该计算机设备的数据库用于存储异常场景。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机可读指令被处理器执行时以实现一种系统异常测试方法。通过根据测试请求中的预设异常标识对写入预设异常脚本的后端进行测试,得到已经写入到代码中异常编码,然后再指示前端根据异常编码生成对应的异常页面,将整个的测试节点作为实际异常场景,并将其与预设异常场景进行对比,得到测试结果。通过本申请不需要再对前后端每个异常做穷举测试,无需再检查每个接口的异常在前端是否处理正确,也不需要像UI自动化那样担心页面变化带来的测试用例脚本的维护,只需要将提前生成的预设异常脚本写入每个需要测试的服务器上,在通过已有的工具进行调用测试,无需再通过各种方式去模拟各种异常场景,即可快速实现各个异常场景的遍历测试,解决了现有技术中测试遗漏、测试结果不准确的技术问题。
其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述实施例中系统异常测试方法的步骤,例如图2所示的步骤202至步骤216,或者,处理器执行计算机可读指令时实现上述实施例中系统异常测试装置的各模块/单元的功能,例如图3所示模块302至模块316的功能。
通过根据测试请求中的预设异常标识对写入预设异常脚本的后端进行测试,得到已经写入到代码中异常编码,然后再指示前端根据异常编码生成对应的异常页面,将整个的测试节点作为实际异常场景,并将其与预设异常场景进行对比,得到测试结果。通过本申请不需要再对前后端每个异常做穷举测试,无需再检查每个接口的异常在前端是否处理正确,也不需要像UI自动化那样担心页面变化带来的测试用例脚本的维护,只需要将提前生成的预设异常脚本写入每个需要测试的服务器上,在通过已有的工具进行调用测试,无需再通过各种方式去模拟各种异常场景,即可快速实现各个异常场景的遍历测试,解决了现有技术中测试遗漏、测试结果不准确的技术问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形、改进或者对部分技术特征进行等同替换,而这些修改或者替换,并不使相同技术方案的本质脱离本发明个实施例技术方案地精神和范畴,都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种系统异常测试方法,应用于包括至少一个服务器的系统,每个服务器上都有对应的前端和后端功能接口,其中,所述服务器上包括预设异常脚本,其特征在于,所述方法包括:
提取所述后端的后端代码中所有异常对应方案的异常编码;
提取所述前端的前端代码中所有异常对应方案对应的处理页面;
对所述异常编码、所述处理页面做映射处理,得到实际异常表;
根据所述实际异常表生成各服务器对应的预设异常脚本,并将所述预设异常脚本写入所述系统中的对应的服务器中;
接收测试请求,以指示后端判断所述测试请求中是否包括预设异常标识;
若有,则执行与所述预设异常标识对应的预设异常脚本,并根据执行结果向前端发送异常编码,以指示所述前端查找与所述异常编码对应的异常页面进行显示,得到实际异常场景;
对比所述实际异常场景与对应的预设异常场景是否一致;
若一致,则测试通过,否则,测试不通过。
2.根据权利要求1所述的方法,其特征在于,在所述将所述预设异常脚本写入所述系统中的对应的服务器中之前,还包括:
获取所述系统的各服务器的异常需求,根据所述异常需求生成后端异常编码和预设异常标识;
定义前端应对所述后端异常编码的处理页面,对所述预设异常标识、所述后端异常编码以及所述处理页面做映射处理,得到所述预设异常场景。
3.根据权利要求2所述的方法,其特征在于,所述对比所述实际异常场景与对应的预设异常场景是否一致,包括:
获取与所述实际异常场景对应的预设异常场景;
对比所述实际异常场景的异常编码与所述预设异常场景的后端异常编码是否一致;
对比所述异常场景的异常页面与所述预设异常场景的处理页面是否一致。
4.根据权利要求3所述的方法,其特征在于,所述对比所述异常场景的异常页面与所述预设异常场景的处理页面是否一致,包括:
通过loadrunner获取所述异常页面的元素组成;
将所述元素组成与预设异常场景的处理页面的元素组成进行一致性对比。
5.根据权利要求1所述的方法,其特征在于,所述以指示所述前端查找与所述异常编码对应的异常页面进行显示,包括:
指示所述前端对所述异常编码进行转换,并将转换得到的异常页面进行显示。
6.根据权利要求1所述的方法,其特征在于,所述执行与所述预设异常标识对应的预设异常脚本,并根据执行结果向前端发送异常编码,以指示所述前端查找与所述异常编码对应的异常页面进行显示,得到实际异常场景,包括:获取执行所述预设异常脚本产生的测试数据流;
在所述测试数据流中选取与所述预设异常脚本有关的数据包,所述数据包包括响应于所述预设异常标识的响应数据包;
对所述响应数据包进行解析,得到解析结果;
根据所述解析结果选择有效测试数据,所述有效测试数据包括所述预设异常标识和对应于所述预设异常标识的有效测试数据;
根据所述有效测试数据生成相应的异常页面进行显示。
7.一种系统异常测试装置,应用于包括至少一个服务器的系统,每个服务器上都有对应的前端和后端功能接口,其中,所述服务器上包括预设异常脚本,其特征在于,包括:
请求模块,用于输入测试请求,以指示后端判断所述测试请求中是否包括预设异常标识;
执行模块,用于若有,则执行与所述预设异常标识对应的预设异常脚本,并根据执行结果向前端发送异常编码,以指示所述前端查找与所述异常编码对应的异常页面进行显示,得到实际异常场景;
对比模块,用于对比所述实际异常场景与对应的预设异常场景是否一致;
输出模块,用于若一致,则测试通过,否则,测试不通过。
8.根据权利要求7所述的装置,其特征在于,在所述对比模块之前,还包括:
需求模块,用于获取所述系统的各服务器的异常需求,根据所述异常需求生成后端异常编码和预设异常标识;
定义模块,用于定义前端应对所述后端异常编码的处理页面,对所述预设异常标识、所述后端异常编码以及所述处理页面做映射处理,得到所述预设异常场景。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011192642.8A CN112269744A (zh) | 2020-10-30 | 2020-10-30 | 系统异常测试方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011192642.8A CN112269744A (zh) | 2020-10-30 | 2020-10-30 | 系统异常测试方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112269744A true CN112269744A (zh) | 2021-01-26 |
Family
ID=74345830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011192642.8A Pending CN112269744A (zh) | 2020-10-30 | 2020-10-30 | 系统异常测试方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269744A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157569A (zh) * | 2021-04-06 | 2021-07-23 | 深圳市捷视飞通科技股份有限公司 | 自动化测试方法、装置、计算机设备和存储介质 |
CN113190370A (zh) * | 2021-05-08 | 2021-07-30 | 京东数字科技控股股份有限公司 | 一种应用的应急响应方法及装置 |
CN113300912A (zh) * | 2021-05-21 | 2021-08-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种设备测试方法、装置及电子设备 |
CN113326183A (zh) * | 2021-04-30 | 2021-08-31 | 合肥移瑞通信技术有限公司 | Ui测试方法、电子设备及存储介质 |
CN113836013A (zh) * | 2021-09-17 | 2021-12-24 | 深圳Tcl新技术有限公司 | 一种埋点测试方法、装置、计算机设备和计算机可读存储介质 |
CN117435507A (zh) * | 2023-12-20 | 2024-01-23 | 天津华来科技股份有限公司 | 自适应通用退避测试方法及系统 |
-
2020
- 2020-10-30 CN CN202011192642.8A patent/CN112269744A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157569A (zh) * | 2021-04-06 | 2021-07-23 | 深圳市捷视飞通科技股份有限公司 | 自动化测试方法、装置、计算机设备和存储介质 |
CN113157569B (zh) * | 2021-04-06 | 2024-05-24 | 深圳市捷视飞通科技股份有限公司 | 自动化测试方法、装置、计算机设备和存储介质 |
CN113326183A (zh) * | 2021-04-30 | 2021-08-31 | 合肥移瑞通信技术有限公司 | Ui测试方法、电子设备及存储介质 |
CN113190370A (zh) * | 2021-05-08 | 2021-07-30 | 京东数字科技控股股份有限公司 | 一种应用的应急响应方法及装置 |
CN113300912A (zh) * | 2021-05-21 | 2021-08-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种设备测试方法、装置及电子设备 |
CN113836013A (zh) * | 2021-09-17 | 2021-12-24 | 深圳Tcl新技术有限公司 | 一种埋点测试方法、装置、计算机设备和计算机可读存储介质 |
CN117435507A (zh) * | 2023-12-20 | 2024-01-23 | 天津华来科技股份有限公司 | 自适应通用退避测试方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269744A (zh) | 系统异常测试方法、装置、计算机设备和存储介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN109787974B (zh) | 报文数据流生成方法、装置、计算机设备和存储介质 | |
CN110768872A (zh) | 巡检方法、系统、装置、计算机设备和存储介质 | |
CN111797026A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN112367680A (zh) | 基于智能电表的外部通信测试方法、装置和计算机设备 | |
CN112631924A (zh) | 自动化测试方法、装置、计算机设备及存储介质 | |
CN110750443A (zh) | 网页测试的方法、装置、计算机设备及存储介质 | |
CN113590454A (zh) | 测试方法、装置、计算机设备和存储介质 | |
CN111240976A (zh) | 软件测试方法、装置、计算机设备及存储介质 | |
CN112835808A (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN112506757A (zh) | 自动测试方法、系统、计算机设备及其介质 | |
CN117370203A (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN112583663B (zh) | 一种基于国产操作系统的自动化网络性能测试方法 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
CN111797008A (zh) | 移动端埋点数据的自动验证方法、设备和存储介质 | |
CN116383025A (zh) | 基于Jmeter的性能测试方法、装置、设备及介质 | |
CN115269331A (zh) | 面向微服务组的服务拓扑监控方法及相关设备 | |
CN115514677A (zh) | 服务器拨测方法及系统 | |
CN111083007B (zh) | 测试方法、装置、计算机设备和存储介质 | |
KR101626581B1 (ko) | 휴대통신 단말의 오류 애플리케이션 진단방법 | |
CN114385498A (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 |