CN108241580B - 客户端程序的测试方法及终端 - Google Patents
客户端程序的测试方法及终端 Download PDFInfo
- Publication number
- CN108241580B CN108241580B CN201611265728.2A CN201611265728A CN108241580B CN 108241580 B CN108241580 B CN 108241580B CN 201611265728 A CN201611265728 A CN 201611265728A CN 108241580 B CN108241580 B CN 108241580B
- Authority
- CN
- China
- Prior art keywords
- test
- client program
- interface message
- screenshot
- preset
- 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.)
- Active
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
Abstract
本发明公开了一种客户端程序的测试方法及终端,该方法包括:在收到针对客户端程序的测试指令后,按照各个预先确定的测试类型分别对客户端程序进行测试,预先确定的测试类型包括前端测试和后端测试;若进行前端测试,则实时监控客户端程序的进程,以抓取客户端程序在不同时间点对应的预设类型的性能数据,并生成前端测试报告;若进行后端测试,则执行预先确定的后端测试脚本文件,利用测试服务器抓取客户端程序与后台服务器之间交互的接口报文,并对接口报文进行断言校验,生成后端测试报告,测试服务器为预先设定在客户端程序和后台服务器之间,客户端程序经由测试服务器与后台服务器通信连接。本发明提高了客户端程序的测试效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种客户端程序的测试方法及终端。
背景技术
目前,对于基于CS运行架构(即:客户端—服务器端运行架构)的软件系统(该软件系统包括客户端程序和服务器端程序)而言,为了防止在上线后出现严重的系统错误,针对这类软件系统,在上线部署之前,通常需要做客户端程序的多种测试如前端测试、后端测试等,以生成能辅助定位异常的测试报告。
然而,现有的针对客户端程序的多种测试通常是单独进行的,目前还没有有效的方案可以实现客户端程序的多种类型测试相互之间的整合,导致测试效率低下,且经常会出现漏测。
发明内容
本发明的主要目的在于提供一种客户端程序的测试方法及终端,旨在提高客户端程序的测试效率。
为实现上述目的,本发明提供的一种客户端程序的测试方法,所述方法包括以下步骤:
测试终端在收到针对一个待测的客户端程序的测试指令后,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试;
若进行前端测试,则实时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,并基于抓取的性能数据生成前端测试报告;
若进行后端测试,则执行预先确定的后端测试脚本文件,利用预设的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告,其中,所述测试服务器为预先设定在该客户端程序和后台服务器之间,该客户端程序经由所述测试服务器与所述后台服务器通信连接。
优选地,若进行后端测试,则所述预先确定的测试类型还包括数据层测试,该方法还包括:
对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告。
优选地,若进行后端测试,则所述预先确定的测试类型还包括鲁棒性测试,该方法还包括:
基于预先确定的接口报文篡改规则篡改抓取的接口报文,若篡改后的接口报文的目的地址指向的对象为该后台服务器,则将篡改后的接口报文发送给该后台服务器,并由该后台服务器对篡改后的接口报文进行断言校验并生成鲁棒性测试报告;或者,若篡改后的接口报文的目的地址指向的对象为该客户端程序,则将篡改后的接口报文发送给该客户端程序,并由该客户端程序对篡改后的接口报文进行断言校验并生成鲁棒性测试报告。
优选地,所述预先确定的测试类型还包括场景化测试,该方法还包括:
若进行场景化测试,则测试终端执行预设的对应不同操作场景的多个自动化测试执行脚本以对该客户端程序进行场景化测试并获取测试数据,并对获取的测试数据进行断言校验以生成场景化测试报告。
优选地,所述预先确定的测试类型还包括遍历测试,该方法还包括:
若进行遍历测试,则测试终端每隔第一预设时间对该客户端程序的操作界面进行截图,并将每一截图及其对应的截图时间点进行关联保存;分析是否有预设类型的客户端程序响应错误发生;
若有预设类型的客户端程序响应错误发生,则记录发生该预设类型的客户端程序响应错误的错误时间点;
根据保存的截图与截图时间点的关联数据,找出所述错误时间点对应的截图,将该预设类型的客户端程序响应错误、找出的截图及所述错误时间点进行关联保存,并基于客户端程序响应错误、截图及错误时间点的关联数据生成遍历测试报告。
此外,为实现上述目的,本发明还提供一种客户端程序的测试终端,所述测试终端包括:
接收模块,用于在收到针对一个待测的客户端程序的测试指令后,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试;
前端测试模块,用于若进行前端测试,则实时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,并基于抓取的性能数据生成前端测试报告;
后端测试模块,用于若进行后端测试,则执行预先确定的后端测试脚本文件,利用预设的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告,其中,所述测试服务器为预先设定在该客户端程序和后台服务器之间,该客户端程序经由所述测试服务器与所述后台服务器通信连接。
优选地,若进行后端测试,则所述预先确定的测试类型还包括数据层测试,所述测试终端还包括:
数据层测试模块,用于对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告。
优选地,若进行后端测试,则所述预先确定的测试类型还包括鲁棒性测试,所述测试终端还包括:
鲁棒性测试模块,用于基于预先确定的接口报文篡改规则篡改抓取的接口报文,若篡改后的接口报文的目的地址指向的对象为该后台服务器,则将篡改后的接口报文发送给该后台服务器,并由该后台服务器对篡改后的接口报文进行断言校验并生成鲁棒性测试报告;或者,若篡改后的接口报文的目的地址指向的对象为该客户端程序,则将篡改后的接口报文发送给该客户端程序,并由该客户端程序对篡改后的接口报文进行断言校验并生成鲁棒性测试报告。
优选地,所述预先确定的测试类型还包括场景化测试,所述测试终端还包括:
场景化测试模块,用于若进行场景化测试,则执行预设的对应不同操作场景的多个自动化测试执行脚本以对该客户端程序进行场景化测试并获取测试数据,并对获取的测试数据进行断言校验以生成场景化测试报告。
优选地,所述预先确定的测试类型还包括遍历测试,所述测试终端还包括:
遍历测试模块,用于若进行遍历测试,则每隔第一预设时间对该客户端程序的操作界面进行截图,并将每一截图及其对应的截图时间点进行关联保存;分析是否有预设类型的客户端程序响应错误发生;若有预设类型的客户端程序响应错误发生,则记录发生该预设类型的客户端程序响应错误的错误时间点;根据保存的截图与截图时间点的关联数据,找出所述错误时间点对应的截图,将该预设类型的客户端程序响应错误、找出的截图及所述错误时间点进行关联保存,并基于客户端程序响应错误、截图及错误时间点的关联数据生成遍历测试报告。
本发明提出的客户端程序的测试方法及终端,根据各个预先确定的测试类型分别对该客户端程序进行测试,若进行前端测试,则实时抓取该客户端程序在不同时间点对应的预设类型的性能数据,以生成前端测试报告;若进行后端测试,则执行预先确定的后端测试脚本文件,利用预先设定在该客户端程序和后台服务器之间的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告。由于在客户端程序和对应的后台服务器之间增设一测试服务器,打通了客户端程序和对应的后台服务器之间的后端测试通道,且对不同类型测试进行整合,能在接收到针对一个待测的客户端程序的测试指令后,分别对该客户端程序进行前端测试和后端测试,提高了客户端程序的测试效率。
附图说明
图1为本发明客户端程序的测试方法一实施例的流程示意图;
图2为本发明客户端程序的测试终端第一实施例的功能模块示意图;
图3为本发明客户端程序的测试终端第二实施例的功能模块示意图;
图4为本发明客户端程序的测试终端第三实施例的功能模块示意图;
图5为本发明客户端程序的测试终端第四实施例的功能模块示意图;
图6为本发明客户端程序的测试终端第五实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种客户端程序的测试方法。
参照图1,图1为本发明客户端程序的测试方法一实施例的流程示意图。
在一实施例中,该客户端程序的测试方法包括:
步骤S10,测试终端在收到针对一个待测的客户端程序的测试指令后,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试;
本实施例中,测试终端在接收到针对一个待测的客户端程序的测试指令后,响应该测试指令,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试。在一种实施方式中,所述前端测试和所述后端测试的测试优先级相同,在按照各个预先确定的测试类型分别对该客户端程序进行测试的过程中,对该客户端程序进行的所述前端测试和所述后端测试为并行测试,即分别同时进行测试,能缩短对该客户端程序的测试时间,提高测试效率。在另一种实施方式中,所述前端测试和所述后端测试的测试优先级不同,在按照各个预先确定的测试类型分别对该客户端程序进行测试的过程中,按照测试优先级的先后顺序逐一对该客户端程序进行前端测试和后端测试,这样,用户可根据实际应用的需要,设置不同类型测试对应的测试优先级,以根据需要调整测试的顺序,更加灵活。
步骤S20,若进行前端测试,则实时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,并基于抓取的性能数据生成前端测试报告;
测试终端在对该客户端程序进行前端测试时,实时或定时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,该预设类型的性能数据包括但不限于CPU占用率、内存占用率、通信流量等性能数据。在该客户端程序的进程关闭后,或者,在预设时间(例如,30秒)后,停止抓取所述性能数据,并基于抓取的性能数据生成前端测试报告。
步骤S30,若进行后端测试,则执行预先确定的后端测试脚本文件,利用预设的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告,其中,所述测试服务器为预先设定在该客户端程序和后台服务器之间,该客户端程序经由所述测试服务器与所述后台服务器通信连接。
本实施例中,在该客户端程序和其对应的后台服务器之间预先设定一测试服务器,该客户端程序和对应的后台服务器之间利用预先设定的测试服务器进行数据的转发、交互等,即该客户端程序经由预先设定的测试服务器与对应的后台服务器通信连接。测试终端在对该客户端程序进行后端测试时,执行预先确定的后端测试脚本文件,预先设定的测试服务器在测试终端执行该后端测试脚本文件的过程中,抓取该客户端程序与后台服务器之间交互的接口报文,测试终端即可按照测试的需求对抓取的接口报文进行相应的处理,生成各种符合测试需求的后端测试报告。例如,可由测试终端对抓取的接口报文进行断言校验,断言是对设计应当如何执行行为的描述,是嵌入设计的检查。断言一般用在协议可能误用或者设计意图可能不正确实现的地方,通常是功能划分模糊、模块间接口或者复杂的RTL结构。RTL编码前,把设计划分为多个模块,用断言形式地规定模块级接口协议。如握手协议中,模块收到请求信号后必须适时做出响应,反之断言冲突发生。测试终端对抓取的接口报文进行断言校验,以监督模拟行为如在测试终端执行该后端测试脚本文件的过程中该客户端程序与后台服务器之间的接口报文交互,从而生成后端测试报告。
本实施例根据各个预先确定的测试类型分别对该客户端程序进行测试,若进行前端测试,则实时抓取该客户端程序在不同时间点对应的预设类型的性能数据,以生成前端测试报告;若进行后端测试,则执行预先确定的后端测试脚本文件,利用预先设定在该客户端程序和后台服务器之间的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告。由于在客户端程序和对应的后台服务器之间增设一测试服务器,打通了客户端程序和对应的后台服务器之间的后端测试通道,且对不同类型测试进行整合,能在接收到针对一个待测的客户端程序的测试指令后,分别对该客户端程序进行前端测试和后端测试,提高了客户端程序的测试效率。
进一步地,在其他实施例中,若进行后端测试,则所述预先确定的测试类型还包括数据层测试,该方法还包括:
对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告。
本实施例中可针对测试服务器在测试终端执行该后端测试脚本文件的过程中抓取的该客户端程序与后台服务器之间交互的接口报文作进一步处理,如对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告,实现客户端程序的多种类型测试相互之间的有效串联和整合,在对该客户端程序分别进行前端测试和后端测试时,还能额外进行数据层测试,进一步地提高了客户端程序的测试效率。
进一步地,在其他实施例中,若进行后端测试,则所述预先确定的测试类型还包括鲁棒性测试,该方法还包括:
基于预先确定的接口报文篡改规则(例如:篡改成边界值、非法数据等)篡改抓取的接口报文,若篡改后的接口报文的目的地址指向的对象为该后台服务器,则将篡改后的接口报文发送给该后台服务器,并由该后台服务器对篡改后的接口报文进行断言校验并生成鲁棒性测试报告;若篡改后的接口报文的目的地址指向的对象为该客户端程序,则将篡改后的接口报文发送给该客户端程序,并由该客户端程序对篡改后的接口报文进行断言校验并生成鲁棒性测试报告。
本实施例中可针对测试服务器在测试终端执行该后端测试脚本文件的过程中抓取的该客户端程序与后台服务器之间交互的接口报文作进一步处理,如对抓取的接口报文进行篡改,并基于篡改后的接口报文进行断言校验以生成鲁棒性测试报告,进一步地提高了客户端程序的测试效率。
进一步地,在其他实施例中,所述预先确定的测试类型还包括场景化测试,所述场景化测试、前端测试和后端测试的测试优先级可一致或不同,若所述场景化测试、前端测试和后端测试的测试优先级一致,则对测试优先级一致的测试类型进行并行测试;若所述场景化测试、前端测试和后端测试的测试优先级不同,则按照测试优先级的先后顺序逐一对该客户端程序进行不同测试优先级的测试类型的测试,该方法还包括:
若进行场景化测试,则测试终端执行预先设定的对应不同操作场景的多个自动化测试执行脚本以对该客户端程序进行场景化测试并获取测试数据,并对获取的测试数据进行断言校验以生成场景化测试报告。例如,所述测试报告包括出现测试错误的自动化测试执行脚本的列表信息,及/或,测试错误的错误类型信息,其中,所述错误类型信息包括但不限于H5页面异常、系统崩溃等。
本实施例中在对该客户端程序分别进行前端测试和后端测试时,还能额外进行对应不同操作场景的场景化测试,进一步地提高了客户端程序的测试效率。
进一步地,在其他实施例中,所述预先确定的测试类型还包括遍历测试,所述遍历测试、前端测试和后端测试的测试优先级可一致或不同,若所述遍历测试、前端测试和后端测试的测试优先级一致,则对测试优先级一致的测试类型进行并行测试;若所述遍历测试、前端测试和后端测试的测试优先级不同,则按照测试优先级的先后顺序逐一对该客户端程序进行不同测试优先级的测试类型的测试,该方法还包括:
若进行遍历测试,则测试终端每隔第一预设时间(例如,0.5秒)对客户端程序的操作界面进行截图,并将每一截图及其对应的截图时间点进行关联保存;实时或者定时分析是否有预设类型的客户端程序响应错误(例如,客户端程序无响应(ANR:Application NotResponding)、客户端程序崩溃(Crash)、客户端程序错误等(Error)等)发生,例如,可以通过对客户端程序日志进行关键字过滤分析,确定是否有预设类型的客户端程序响应错误发生。
若有预设类型的客户端程序响应错误发生,在一种实施方式中,可记录发生该预设类型的客户端程序响应错误的错误时间点;根据保存的截图与截图时间点的关联数据,找出所述错误时间点对应的截图,将该预设类型的客户端程序响应错误、找出的截图及所述错误时间点进行关联保存,并基于客户端程序响应错误、截图及错误时间点的关联数据生成遍历测试报告。在另一种实施方式中,还可记录发生该预设类型的客户端程序响应错误的错误时间点,并基于该错误时间点确定对应的错误延续时间段;根据保存的截图与截图时间点的关联数据,找出截图时间点属于该错误延续时间段的截图,并将该预设类型的客户端程序响应错误、找出的截图、该错误时间点及错误延续时间段关联保存,并基于客户端程序响应错误、截图、错误时间点及错误延续时间段的关联数据生成遍历测试报告。例如,所述遍历测试报告中可包括各个客户端程序响应错误类型的错误数量统计报表、各个客户端程序响应错误类型的截图汇总报表等。
本实施例中在对该客户端程序分别进行前端测试和后端测试时,还能额外进行遍历所有控件的遍历测试,进一步地提高了客户端程序的测试效率。
本发明进一步提供一种客户端程序的测试终端。
参照图2,图2为本发明客户端程序的测试终端第一实施例的功能模块示意图。
在第一实施例中,该客户端程序的测试终端包括:
接收模块01,用于在收到针对一个待测的客户端程序的测试指令后,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试;
本实施例中,测试终端在接收到针对一个待测的客户端程序的测试指令后,响应该测试指令,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试。在一种实施方式中,所述前端测试和所述后端测试的测试优先级相同,在按照各个预先确定的测试类型分别对该客户端程序进行测试的过程中,对该客户端程序进行的所述前端测试和所述后端测试为并行测试,即分别同时进行测试,能缩短对该客户端程序的测试时间,提高测试效率。在另一种实施方式中,所述前端测试和所述后端测试的测试优先级不同,在按照各个预先确定的测试类型分别对该客户端程序进行测试的过程中,按照测试优先级的先后顺序逐一对该客户端程序进行前端测试和后端测试,这样,用户可根据实际应用的需要,设置不同类型测试对应的测试优先级,以根据需要调整测试的顺序,更加灵活。
前端测试模块02,用于若进行前端测试,则实时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,并基于抓取的性能数据生成前端测试报告;
测试终端在对该客户端程序进行前端测试时,实时或定时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,该预设类型的性能数据包括但不限于CPU占用率、内存占用率、通信流量等性能数据。在该客户端程序的进程关闭后,或者,在预设时间(例如,30秒)后,停止抓取所述性能数据,并基于抓取的性能数据生成前端测试报告。
后端测试模块03,用于若进行后端测试,则执行预先确定的后端测试脚本文件,利用预设的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告,其中,所述测试服务器为预先设定在该客户端程序和后台服务器之间,该客户端程序经由所述测试服务器与所述后台服务器通信连接。
本实施例中,在该客户端程序和其对应的后台服务器之间预先设定一测试服务器,该客户端程序和对应的后台服务器之间利用预先设定的测试服务器进行数据的转发、交互等,即该客户端程序经由预先设定的测试服务器与对应的后台服务器通信连接。测试终端在对该客户端程序进行后端测试时,执行预先确定的后端测试脚本文件,预先设定的测试服务器在测试终端执行该后端测试脚本文件的过程中,抓取该客户端程序与后台服务器之间交互的接口报文,测试终端即可按照测试的需求对抓取的接口报文进行相应的处理,生成各种符合测试需求的后端测试报告。例如,可由测试终端对抓取的接口报文进行断言校验,断言是对设计应当如何执行行为的描述,是嵌入设计的检查。断言一般用在协议可能误用或者设计意图可能不正确实现的地方,通常是功能划分模糊、模块间接口或者复杂的RTL结构。RTL编码前,把设计划分为多个模块,用断言形式地规定模块级接口协议。如握手协议中,模块收到请求信号后必须适时做出响应,反之断言冲突发生。测试终端对抓取的接口报文进行断言校验,以监督模拟行为如在测试终端执行该后端测试脚本文件的过程中该客户端程序与后台服务器之间的接口报文交互,从而生成后端测试报告。
本实施例根据各个预先确定的测试类型分别对该客户端程序进行测试,若进行前端测试,则实时抓取该客户端程序在不同时间点对应的预设类型的性能数据,以生成前端测试报告;若进行后端测试,则执行预先确定的后端测试脚本文件,利用预先设定在该客户端程序和后台服务器之间的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告。由于在客户端程序和对应的后台服务器之间增设一测试服务器,打通了客户端程序和对应的后台服务器之间的后端测试通道,且对不同类型测试进行整合,能在接收到针对一个待测的客户端程序的测试指令后,分别对该客户端程序进行前端测试和后端测试,提高了客户端程序的测试效率。
如图3所示,本发明第二实施例提出一种客户端程序的测试终端,在上述实施例的基础上,若进行后端测试,则所述预先确定的测试类型还包括数据层测试,该客户端程序的测试终端还包括:
数据层测试模块04,用于对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告。
本实施例中可针对测试服务器在测试终端执行该后端测试脚本文件的过程中抓取的该客户端程序与后台服务器之间交互的接口报文作进一步处理,如对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告,实现客户端程序的多种类型测试相互之间的有效串联和整合,在对该客户端程序分别进行前端测试和后端测试时,还能额外进行数据层测试,进一步地提高了客户端程序的测试效率。
如图4所示,本发明第三实施例提出一种客户端程序的测试终端,在上述实施例的基础上,若进行后端测试,则所述预先确定的测试类型还包括鲁棒性测试,该客户端程序的测试终端还包括:
鲁棒性测试模块05,用于基于预先确定的接口报文篡改规则(例如:篡改成边界值、非法数据等)篡改抓取的接口报文,若篡改后的接口报文的目的地址指向的对象为该后台服务器,则将篡改后的接口报文发送给该后台服务器,并由该后台服务器对篡改后的接口报文进行断言校验并生成鲁棒性测试报告;若篡改后的接口报文的目的地址指向的对象为该客户端程序,则将篡改后的接口报文发送给该客户端程序,并由该客户端程序对篡改后的接口报文进行断言校验并生成鲁棒性测试报告。
本实施例中可针对测试服务器在测试终端执行该后端测试脚本文件的过程中抓取的该客户端程序与后台服务器之间交互的接口报文作进一步处理,如对抓取的接口报文进行篡改,并基于篡改后的接口报文进行断言校验以生成鲁棒性测试报告,进一步地提高了客户端程序的测试效率。
如图5所示,本发明第四实施例提出一种客户端程序的测试终端,在上述实施例的基础上,所述预先确定的测试类型还包括场景化测试,所述场景化测试、前端测试和后端测试的测试优先级可一致或不同,若所述场景化测试、前端测试和后端测试的测试优先级一致,则对测试优先级一致的测试类型进行并行测试;若所述场景化测试、前端测试和后端测试的测试优先级不同,则按照测试优先级的先后顺序逐一对该客户端程序进行不同测试优先级的测试类型的测试,该客户端程序的测试终端还包括:
场景化测试模块06,用于若进行场景化测试,则执行预先设定的对应不同操作场景的多个自动化测试执行脚本以对该客户端程序进行场景化测试并获取测试数据,并对获取的测试数据进行断言校验以生成场景化测试报告。例如,所述测试报告包括出现测试错误的自动化测试执行脚本的列表信息,及/或,测试错误的错误类型信息,其中,所述错误类型信息包括但不限于H5页面异常、系统崩溃等。
本实施例中在对该客户端程序分别进行前端测试和后端测试时,还能额外进行对应不同操作场景的场景化测试,进一步地提高了客户端程序的测试效率。
如图6所示,本发明第五实施例提出一种客户端程序的测试终端,所述预先确定的测试类型还包括遍历测试,所述遍历测试、前端测试和后端测试的测试优先级可一致或不同,若所述遍历测试、前端测试和后端测试的测试优先级一致,则对测试优先级一致的测试类型进行并行测试;若所述遍历测试、前端测试和后端测试的测试优先级不同,则按照测试优先级的先后顺序逐一对该客户端程序进行不同测试优先级的测试类型的测试,该客户端程序的测试终端还包括:
遍历测试模块07,用于若进行遍历测试,则每隔第一预设时间(例如,0.5秒)对客户端程序的操作界面进行截图,并将每一截图及其对应的截图时间点进行关联保存;实时或者定时分析是否有预设类型的客户端程序响应错误(例如,客户端程序无响应(ANR:Application Not Responding)、客户端程序崩溃(Crash)、客户端程序错误等(Error)等)发生,例如,可以通过对客户端程序日志进行关键字过滤分析,确定是否有预设类型的客户端程序响应错误发生。
若有预设类型的客户端程序响应错误发生,在一种实施方式中,可记录发生该预设类型的客户端程序响应错误的错误时间点;根据保存的截图与截图时间点的关联数据,找出所述错误时间点对应的截图,将该预设类型的客户端程序响应错误、找出的截图及所述错误时间点进行关联保存,并基于客户端程序响应错误、截图及错误时间点的关联数据生成遍历测试报告。在另一种实施方式中,还可记录发生该预设类型的客户端程序响应错误的错误时间点,并基于该错误时间点确定对应的错误延续时间段;根据保存的截图与截图时间点的关联数据,找出截图时间点属于该错误延续时间段的截图,并将该预设类型的客户端程序响应错误、找出的截图、该错误时间点及错误延续时间段关联保存,并基于客户端程序响应错误、截图、错误时间点及错误延续时间段的关联数据生成遍历测试报告。例如,所述遍历测试报告中可包括各个客户端程序响应错误类型的错误数量统计报表、各个客户端程序响应错误类型的截图汇总报表等。
本实施例中在对该客户端程序分别进行前端测试和后端测试时,还能额外进行遍历所有控件的遍历测试,进一步地提高了客户端程序的测试效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (10)
1.一种客户端程序的测试方法,其特征在于,所述方法包括以下步骤:
测试终端在收到针对该测试终端上安装的待测的客户端程序的测试指令后,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试;
若进行前端测试,则该测试终端实时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,并基于抓取的性能数据生成前端测试报告;
若进行后端测试,则该测试终端执行预先确定的后端测试脚本文件,利用预设的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告,其中,所述测试服务器为预先设定在该客户端程序和后台服务器之间,该客户端程序经由所述测试服务器与所述后台服务器通信连接。
2.如权利要求1所述的客户端程序的测试方法,其特征在于,若进行后端测试,则所述预先确定的测试类型还包括数据层测试,该方法还包括:
对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告。
3.如权利要求1所述的客户端程序的测试方法,其特征在于,若进行后端测试,则所述预先确定的测试类型还包括鲁棒性测试,该方法还包括:
基于预先确定的接口报文篡改规则篡改抓取的接口报文,若篡改后的接口报文的目的地址指向的对象为该后台服务器,则将篡改后的接口报文发送给该后台服务器,并由该后台服务器对篡改后的接口报文进行断言校验并生成鲁棒性测试报告;或者,若篡改后的接口报文的目的地址指向的对象为该客户端程序,则将篡改后的接口报文发送给该客户端程序,并由该客户端程序对篡改后的接口报文进行断言校验并生成鲁棒性测试报告。
4.如权利要求1所述的客户端程序的测试方法,其特征在于,所述预先确定的测试类型还包括场景化测试,该方法还包括:
若进行场景化测试,则测试终端执行预设的对应不同操作场景的多个自动化测试执行脚本以对该客户端程序进行场景化测试并获取测试数据,并对获取的测试数据进行断言校验以生成场景化测试报告。
5.如权利要求1所述的客户端程序的测试方法,其特征在于,所述预先确定的测试类型还包括遍历测试,该方法还包括:
若进行遍历测试,则测试终端每隔第一预设时间对该客户端程序的操作界面进行截图,并将每一截图及其对应的截图时间点进行关联保存;分析是否有预设类型的客户端程序响应错误发生;
若有预设类型的客户端程序响应错误发生,则记录发生该预设类型的客户端程序响应错误的错误时间点;
根据保存的截图与截图时间点的关联数据,找出所述错误时间点对应的截图,将该预设类型的客户端程序响应错误、找出的截图及所述错误时间点进行关联保存,并基于客户端程序响应错误、截图及错误时间点的关联数据生成遍历测试报告。
6.一种客户端程序的测试终端,其特征在于,所述测试终端包括:
接收模块,用于在收到针对该测试终端上安装的待测的客户端程序的测试指令后,按照各个预先确定的测试类型分别对该客户端程序进行测试,所述预先确定的测试类型包括前端测试和后端测试;
前端测试模块,用于若进行前端测试,则实时监控该客户端程序的进程,以抓取该客户端程序在不同时间点对应的预设类型的性能数据,并基于抓取的性能数据生成前端测试报告;
后端测试模块,用于若进行后端测试,则执行预先确定的后端测试脚本文件,利用预设的测试服务器抓取该客户端程序与后台服务器之间交互的接口报文,并对抓取的接口报文进行断言校验,以生成后端测试报告,其中,所述测试服务器为预先设定在该客户端程序和后台服务器之间,该客户端程序经由所述测试服务器与所述后台服务器通信连接。
7.如权利要求6所述的客户端程序的测试终端,其特征在于,若进行后端测试,则所述预先确定的测试类型还包括数据层测试,还包括:
数据层测试模块,用于对抓取的接口报文进行接口报文信息提取,并基于提取的接口报文信息生成数据层测试报告。
8.如权利要求6所述的客户端程序的测试终端,其特征在于,若进行后端测试,则所述预先确定的测试类型还包括鲁棒性测试,还包括:
鲁棒性测试模块,用于基于预先确定的接口报文篡改规则篡改抓取的接口报文,若篡改后的接口报文的目的地址指向的对象为该后台服务器,则将篡改后的接口报文发送给该后台服务器,并由该后台服务器对篡改后的接口报文进行断言校验并生成鲁棒性测试报告;或者,若篡改后的接口报文的目的地址指向的对象为该客户端程序,则将篡改后的接口报文发送给该客户端程序,并由该客户端程序对篡改后的接口报文进行断言校验并生成鲁棒性测试报告。
9.如权利要求6所述的客户端程序的测试终端,其特征在于,所述预先确定的测试类型还包括场景化测试,还包括:
场景化测试模块,用于若进行场景化测试,则执行预设的对应不同操作场景的多个自动化测试执行脚本以对该客户端程序进行场景化测试并获取测试数据,并对获取的测试数据进行断言校验以生成场景化测试报告。
10.如权利要求6所述的客户端程序的测试终端,其特征在于,所述预先确定的测试类型还包括遍历测试,还包括:
遍历测试模块,用于若进行遍历测试,则每隔第一预设时间对该客户端程序的操作界面进行截图,并将每一截图及其对应的截图时间点进行关联保存;分析是否有预设类型的客户端程序响应错误发生;若有预设类型的客户端程序响应错误发生,则记录发生该预设类型的客户端程序响应错误的错误时间点;根据保存的截图与截图时间点的关联数据,找出所述错误时间点对应的截图,将该预设类型的客户端程序响应错误、找出的截图及所述错误时间点进行关联保存,并基于客户端程序响应错误、截图及错误时间点的关联数据生成遍历测试报告。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611265728.2A CN108241580B (zh) | 2016-12-30 | 2016-12-30 | 客户端程序的测试方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611265728.2A CN108241580B (zh) | 2016-12-30 | 2016-12-30 | 客户端程序的测试方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241580A CN108241580A (zh) | 2018-07-03 |
CN108241580B true CN108241580B (zh) | 2021-11-19 |
Family
ID=62701772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611265728.2A Active CN108241580B (zh) | 2016-12-30 | 2016-12-30 | 客户端程序的测试方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241580B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347700B (zh) * | 2018-11-02 | 2020-09-11 | 网易(杭州)网络有限公司 | 一种测试方法、装置、电子设备和存储介质 |
CN110083530A (zh) * | 2019-03-21 | 2019-08-02 | 平安普惠企业管理有限公司 | 基于自动校验工具的数据校验方法、装置和计算机设备 |
CN110134593B (zh) * | 2019-04-19 | 2023-12-29 | 天航长鹰(江苏)科技有限公司 | 软件测试方法、装置、电子设备及存储介质 |
CN110287090A (zh) * | 2019-05-08 | 2019-09-27 | 聚融医疗科技(杭州)有限公司 | 一种超声软件的自动化测试方法及系统 |
CN110795338B (zh) * | 2019-09-29 | 2024-03-22 | 北京淇瑀信息科技有限公司 | 一种基于前后端交互的自动化测试方法、装置及电子设备 |
CN111666217B (zh) * | 2020-06-05 | 2023-06-20 | 百度在线网络技术(北京)有限公司 | 用于测试代码的方法和装置 |
CN113485880A (zh) * | 2021-07-12 | 2021-10-08 | 浙江网商银行股份有限公司 | 测试方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725772B2 (en) * | 2007-07-18 | 2010-05-25 | Novell, Inc. | Generic template to autogenerate reports for software target testing |
CN102455414A (zh) * | 2010-10-18 | 2012-05-16 | 台达电子工业股份有限公司 | 自动测试系统及方法 |
CN101727389B (zh) * | 2009-11-23 | 2012-11-14 | 中兴通讯股份有限公司 | 一种分布式综合业务自动化测试系统及方法 |
CN104778118A (zh) * | 2013-12-30 | 2015-07-15 | 深圳键桥通讯技术股份有限公司 | 自动化测试技术的改进方法 |
CN105138448A (zh) * | 2014-06-05 | 2015-12-09 | 北京畅游天下网络技术有限公司 | 一种在前端测试页面的方法和装置 |
CN106201856A (zh) * | 2015-05-04 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种多版本性能测试方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094783B (zh) * | 2014-05-19 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 安卓应用稳定性测试的方法及装置 |
JP5970617B2 (ja) * | 2014-07-30 | 2016-08-17 | 株式会社日立製作所 | 開発支援システム |
US10156605B2 (en) * | 2014-08-29 | 2018-12-18 | Semitronix Corporation | Addressable ring oscillator test chip |
CN106155885A (zh) * | 2015-03-31 | 2016-11-23 | 展讯通信(上海)有限公司 | 一种全自动测试系统及测试方法 |
CN105897497A (zh) * | 2015-07-20 | 2016-08-24 | 广州华多网络科技有限公司 | 一种接口测试方法、应用设备以及服务设备 |
CN105335293B (zh) * | 2015-11-30 | 2019-08-30 | 努比亚技术有限公司 | 一种基于接口并行的自动化测试系统和方法 |
CN106201879A (zh) * | 2016-07-08 | 2016-12-07 | 中国银联股份有限公司 | 一种自动化测试方法及装置 |
-
2016
- 2016-12-30 CN CN201611265728.2A patent/CN108241580B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725772B2 (en) * | 2007-07-18 | 2010-05-25 | Novell, Inc. | Generic template to autogenerate reports for software target testing |
CN101727389B (zh) * | 2009-11-23 | 2012-11-14 | 中兴通讯股份有限公司 | 一种分布式综合业务自动化测试系统及方法 |
CN102455414A (zh) * | 2010-10-18 | 2012-05-16 | 台达电子工业股份有限公司 | 自动测试系统及方法 |
CN104778118A (zh) * | 2013-12-30 | 2015-07-15 | 深圳键桥通讯技术股份有限公司 | 自动化测试技术的改进方法 |
CN105138448A (zh) * | 2014-06-05 | 2015-12-09 | 北京畅游天下网络技术有限公司 | 一种在前端测试页面的方法和装置 |
CN106201856A (zh) * | 2015-05-04 | 2016-12-07 | 阿里巴巴集团控股有限公司 | 一种多版本性能测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
"软件安全漏洞检测技术";李舟军等;《计算机学报》;20150430;第38卷(第4期);第717-第732页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108241580A (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108241580B (zh) | 客户端程序的测试方法及终端 | |
TWI564732B (zh) | A method and apparatus for monitoring user requests to run in a decentralized system | |
CN107436844B (zh) | 一种接口用例合集的生成方法及装置 | |
CN111291384B (zh) | 漏洞扫描方法、装置及电子设备 | |
CN105630682A (zh) | 移动终端自动收集及分析崩溃的系统和方法 | |
CN106484611B (zh) | 基于自动化协议适配的模糊测试方法和装置 | |
CN103577313A (zh) | 一种移动终端应用程序测试方法及装置 | |
CN112395616B (zh) | 漏洞处理的方法、装置及计算机设备 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN107888446B (zh) | 一种协议健壮性测试方法及装置 | |
CN107168844B (zh) | 一种性能监控的方法及装置 | |
CN106972983B (zh) | 网络接口的自动化测试装置及方法 | |
CN116346456A (zh) | 业务逻辑漏洞攻击检测模型训练方法及装置 | |
CN101706752B (zh) | 一种软件错误现场定位的方法及装置 | |
CN113238935A (zh) | 应用测试方法、系统、设备、介质及计算机程序产品 | |
CN110691090B (zh) | 网站检测方法、装置、设备及存储介质 | |
CN105988917B (zh) | 异常信息获取方法及装置 | |
CN108255715B (zh) | 一种测试结果处理方法及终端设备 | |
CN114071450B (zh) | 换机换卡行为的识别方法及装置 | |
CN112631733B (zh) | 数据采集方法及装置 | |
EP3640830B1 (en) | Method and system for determining risk in automotive ecu components | |
CN115994098B (zh) | 一种基于人工智能的软件运行异常的分析方法和系统 | |
CN114253867B (zh) | 基于神经网络模型的自动化测试方法、装置及系统 | |
CN111800296B (zh) | 实时系统网络数据捕获与分析方法、系统、设备及存储介质 | |
CN112346963B (zh) | 一种基于aop的插桩测试方法、装置和电子设备 |
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 |