CN107577602A - 一种app接口的测试方法、装置及系统 - Google Patents
一种app接口的测试方法、装置及系统 Download PDFInfo
- Publication number
- CN107577602A CN107577602A CN201710742204.6A CN201710742204A CN107577602A CN 107577602 A CN107577602 A CN 107577602A CN 201710742204 A CN201710742204 A CN 201710742204A CN 107577602 A CN107577602 A CN 107577602A
- Authority
- CN
- China
- Prior art keywords
- app
- measured
- test
- default
- interfaces
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种APP接口的测试方法、装置及系统,其方法包括:S100编译预设APP脚本;预设APP脚本包括目标APP的安装程序;S200发送编译后的预设APP脚本至待测终端;S300监测待测终端成功安装目标APP后,根据预设测试脚本生成测试请求;S400发送测试请求至待测终端的待测APP接口;待测APP接口为目标APP的程序接口;S500接收待测终端通过待测APP接口发送的响应信息;响应信息为待测终端根据测试请求执行相应操作后的信息;S600分析响应信息,得到待测APP接口的测试结果。本发明自动化测试,缩短了APP测试的测试时间,减少整体研发时间,节省人力物力。
Description
技术领域
本发明涉及通信测试领域,尤指一种APP接口的测试方法、装置及系统。
背景技术
目前,企业想要在越发激烈的市场竞争中取得一定市场份额,关键在于快速连续地向客户交付产品。而在产品的研发过程中,为了确保产品的质量,企业的产品测试人员需要对产品进行测试,直到检验无误后方可交付产品。APP接口是应用程序的入口和出口,一般在这里处理一些启动和退出程序时需要读取或写入的设置信息,还有设置一些全局变量,APP接口的性能测试是APP产品至关重要的测试项目。
在传统的APP接口测试过程中,每当有新版本的APP发布之前,测试人员手动编译安装新版本的APP,打开Jmeter22进行APP接口测试,待测试完成后需检查测试结果。测试如果遇到问题,需再反馈给相关的开发人员进行问题的定位,完成一个测试周期至少需要一到两个工作日,再加上研发的问题定位时间,开发周期变的更长。测试人员需要手动启动编译目标APP的程序,在手动安装目标APP后,还需要通过手动进行APP接口测试,这种通过人工启动和人工测试的方式,无疑会增大测试人力投入以及测试时间成本,增加APP接口的整体测试时间,延后了APP的交付时间,不利于企业产品在市场中的竞争力。
综上述可知,如何缩短APP接口测试的整体测试时间是目前有待解决的问题。
发明内容
本发明的目的是提供一种APP接口的测试方法、装置及系统,实现自动开启APP接口的测试,减少APP接口测试的测试时间。
本发明提供的技术方案如下:
本发明提供一种APP接口的测试方法,包括步骤:S100编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;S200发送编译后的预设APP脚本至待测终端;S300监测所述待测终端成功安装所述目标APP后,根据预设测试脚本生成测试请求;S400发送所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;S500接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;S600分析所述响应信息,得到所述待测APP接口的测试结果。
进一步的,所述步骤S100包括步骤:S110检测是否达到预设测试时间;若是,执行步骤S120;S120从目标地址获取所述预设APP脚本;S130编译所述预设APP脚本至本地;其中,所述目标地址包括本地地址或网络地址。
进一步的,所述步骤S300包括步骤:S310判断所述待测终端是否成功安装所述目标APP;若是执行步骤S320;S320根据预设测试优先级和所述预设测试脚本,依次生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;其中,所述预设测试脚本包括若干待测APP接口,以及对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
进一步的,所述步骤S300还包括步骤:S330判断所述待测终端是否成功安装所述目标APP;若是执行步骤S340;S340获取测试任务指令,根据所述测试任务指令和所述预设测试脚本,生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;其中,所述预设测试脚本包括若干待测APP接口,以及对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
进一步的,所述步骤S600包括步骤:S610解析所述响应信息,得到所述响应信息中的返回数据;S620比对接口返回参数和所述返回数据得到所述测试结果。
进一步的,所述步骤S600之后包括步骤:S700提取所述测试结果中的关键信息,生成预设格式的测试报告。
本发明还提供一种APP接口的测试装置,包括:编译模块,编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;第一发送模块,发送所述编译模块得到的所述编译后的预设APP脚本至待测终端;生成模块,监测所述待测终端成功安装所述目标APP后,根据预设测试脚本生成测试请求;所述第一发送模块,还发送所述生成模块生成的所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;第一接收模块,接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;分析模块,分析所述第一接收模块接收的所述响应信息,得到所述待测APP接口的测试结果。
进一步的,所述编译模块包括:计时单元,检测是否达到预设测试时间;获取单元,当所述计时单元检测达到所述预设测试时间后,获取所述预设APP脚本;编译单元,编译所述获取单元获取的所述预设APP脚本至本地;其中,所述目标地址包括本地地址或网络地址。
进一步的,所述生成模块包括:判断单元,判断所述待测终端是否成功安装所述目标APP;生成单元,当所述判断单元判定所述待测终端成功安装所述目标APP后,根据预设测试优先级和所述预设测试脚本,依次生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;所述生成单元,还当所述判断单元判定所述待测终端成功安装所述目标APP后,获取测试任务指令,根据所述测试任务指令和所述预设测试脚本,生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;其中,所述预设测试脚本包括所有待测APP接口,对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
本发明还提供一种APP接口的测试系统,包括:待测终端,测试装置;所述测试装置包括:编译模块,编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;第一发送模块,发送所述编译模块得到的所述编译后的预设APP脚本至待测终端;生成模块,监测所述待测终端成功安装所述目标APP后,根据预设测试脚本生成测试请求;所述第一发送模块,还发送所述生成模块生成的所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;第一接收模块,接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;分析模块,分析所述第一接收模块接收的所述响应信息,得到所述待测APP接口的测试结果;所述待测终端包括:第二接收模块,接收所述第一发送模块发送的所述编译后的预设APP脚本;安装模块,根据所述第二接收模块接收的所述编译后的预设APP脚本,安装所述目标APP;所述第二接收模块,还接收所述第一发送模块发送的所述测试请求;执行模块,根据所述第二接收模块接收的所述测试请求执行相应操作;第二发送模块,发送所述响应消息至所述第一接收模块;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息。
通过本发明提供的一种APP接口的测试方法、装置及系统,能够带来以下至少一种有益效果:
1)本发明自动化测试,从而避免了人工开启编译目标APP的程序,以及人工开启APP的安装和人工测试APP接口的过程,由此缩短了APP测试的测试时间,进而缩短了目标APP的整体研发时间。
2)本发明利用非工作时间自动完成目标APP的编译,安装和待测APP接口的测试,节省了人工测试成本,缩短了目标APP的产品开发周期,提升研发效率。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种APP接口的测试方法、装置及系统的上述特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明一种APP接口的测试方法的一个实施例的流程图;
图2是本发明一种APP接口的测试方法的另一个实施例的流程图;
图3是本发明一种APP接口的测试方法的另一个实施例的流程图;
图4是本发明一种APP接口的测试装置的一个实施例的结构示意图;
图5是本发明一种APP接口的测试装置的另一个实施例的结构示意图;
图6是本发明一种APP接口的测试系统的一个实施例的结构示意图;
图7是本发明一种APP接口的测试系统的一个实例的结构示意图;
图8是本发明一种APP接口的测试系统的一个实例的流程图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
图1是本发明一种APP接口的测试方法的一个实施例,包括:
S100编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;
S200发送编译后的预设APP脚本至待测终端;
S300监测所述待测终端成功安装所述目标APP后,根据预设测试脚本生成测试请求;
S400发送所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
S500接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;
S600分析所述响应信息,得到所述待测APP接口的测试结果。
具体的,本实施例中,现有技术中,需要测试人员通过点击等手动操作安装目标APP后,才能通过手动的方式对该目标APP的进行APP接口测试,这样会导致每当新产出的APP在面向市场之前,延长测试人员的APP接口测试时间,延后目标APP的交付时间。而本发明判断本地是否有APP版本更新,即本地是否储存或者写入有预设APP脚本,若是则说明APP有版本更新,只有当有APP版本更新时,才有必要对待测APP接口进行测试。只要测试装置获取到预设APP脚本后,就自动地编译预设APP脚本,该预设APP脚本是包括目标APP的安装程序,而目标APP的安装程序则是开发人员根据用户需求和市场需求编写的目标APP的程序代码,将目标APP的程序代码转换成能执行的机器语言代码,该可执行的机器语言代码就是编译后的预设APP脚本,然后将编译后的预设APP脚本发送至自动发送至待测终端,待测终端根据该编译后的预设APP脚本进行安装目标APP,测试装置检测到待测终端成功安装目标APP后,测试装置根据预设测试脚本生成测试请求,然后发送测试请求至待测终端,待测终端根据自身的待测APP接口传送测试请求至待测终端内部的处理器,处理器根据测试请求控制待测终端执行相应的操作,并再次通过自身的待测APP接口发送响应信息至测试装置,测试装置接收响应信息后进行分析,从而得到待测APP接口的测试结果。本发明测试环境搭建简单,只需针对不同的测试项目调用不同的测试脚本即可,检测达到预设测试时间后,自动编译安装预设APP脚本,根据测试脚本自动测试待测APP接口,减少APP接口测试的测试时间,减少测试人力投入,提升生产商家的效益。
图2是本发明一种APP接口的测试方法的另一个实施例,包括:
S110检测是否达到预设测试时间;若是,执行步骤S120;
S120从目标地址获取所述预设APP脚本;
S130编译所述预设APP脚本至本地;
具体的,本发明测试装置自动测试还有两种方式,一是测试装置只检测当前时间是否达到预设时间点(如下班时间的下午六点),若是则测试装置直接获取并编译该预设APP脚本,使得待测终端开始目标APP的安装,在待测终端安装完成目标APP后,测试装置开始根据预设测试脚本进行自动检测待测APP接口。二是测试装置检测当前时间是否达到预设时间点,若否,那么就进一步检测测试装置的待机或息屏时间是否达到预设时间间隔,若是,测试装置为了合理利用测试装置的空闲时间,就获取并编译该预设APP脚本,使得待测终端开始目标APP的安装,在待测终端安装完成目标APP后,测试装置开始根据预设测试脚本进行自动检测待测APP接口。本发明能够利用空闲时间进行自动地编译预设APP脚本,从而控制待测终端进行自动安装目标APP,从而使得测试装置自动测试目标APP的待测APP端口,节省安装测试的时间,大大提升测试效率。
S200发送编译后的预设APP脚本至待测终端;
S310判断所述待测终端是否成功安装所述目标APP;若是执行步骤S320;
S320根据预设测试优先级和所述预设测试脚本,依次生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
具体的,本实施例中,根据预设测试优先级,是为了当测试人员下班后或者长时间不能对测试装置进行测试操作时,测试装置直接根据预设测试优先级的先后顺序,并根据先后顺序获取预设测试脚本中的测试代码,依次生成测试请求,每个测试类型对应的测试请求是不同的。本发明控制测试装置自动地根据预设测试优先级和预设测试脚本,依次生成对应的不同的测试请求,从而控制测试装置根据预设测试优先级的先后顺序依次发送测试请求至对应的待测APP接口,从而使得待测终端依次根据测试请求执行相应的操作,并依次根据对应的待测APP接口发送响应信息至测试装置,测试装置依次根据获取的响应信息进行分析,从而依次地,轮询地根据预设测试优先级将待测APP接口进行自动化的测试,由于全程不需要测试人员的人工操作,直接根据预设测试脚本进行自动化的测试,因此可以减少测试人员的手动测试,解放测试人员的劳动力,厂商可以适当减少测试人员,从而减少厂商的人力成本。另外,由于全程不需要测试人员的人工操作,即使测试人员后期需要获取测试结果,也可以不再测试装置附近,完全由测试装置自动完成待测APP接口的测试流程,这样可以将编译,安装,以及测试转移到下班时间,不占用任何工作时间,减少待测APP接口的测试周期,从而提升整个目标APP的研发效率,增加厂商的产能。
S400发送所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
S500接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;
S610解析所述响应信息,得到所述响应信息中的返回数据;
S620比对接口返回参数和所述返回数据得到所述测试结果;
S700提取所述测试结果中的关键信息,生成预设格式的测试报告。
其中,所述目标地址包括本地地址或网络地址;所述预设测试脚本包括若干待测APP接口,以及对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
具体的,本实施例中,解析响应信息得到返回数据,根据返回数据与接口返回参数进行比对,从而自动得到测试结果,这样,不需要测试人员人工进行分析,减少测试人员的工作,另外也避免了人工分析带来的误分析的后果,使得分析结果更加客观可信。本发明提取测试结果中的关键信息,而关键信息包括待测APP接口信息(即目标APP的哪些待测APP接口),测试类型信息等等,根据关键信息生成预设格式的测试报告,预设格式为html格式(超文本标记语言,标准通用标记语言下的一个应用。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素),图片格式的测试报告,这样便于除了测试人员以外的非专业的用户,能够远程地根据电脑等终端获取测试报告进行分析,而不是直接获取.csv格式的测试报告,因为.csv格式的测试报告是非专业测试人员不能看懂测试报告,本发明能够减轻测试人员的压力,提升用户使用体验。
图3是本发明一种APP接口的测试方法的另一个实施例,包括:
S110检测是否达到预设测试时间;若是,执行步骤S120;
S120从目标地址获取所述预设APP脚本;
S130编译所述预设APP脚本至本地;
S200发送编译后的预设APP脚本至待测终端;
S330判断所述待测终端是否成功安装所述目标APP;若是执行步骤S340;
S340获取测试任务指令,根据所述测试任务指令和所述预设测试脚本,生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
具体的,本实施例中,直接根据测试人员的输入的测试任务指令,对需要检测的待测APP接口进行针对性的测试,这样,就不需要向上一实施例那样,需要按照预设测试优先级依次地进行测试,这样有针对性的测试,便于测试人员减少其他不必要测试的待测APP接口的测试时间,减少测试时长,提升测试效率。
S400发送所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
S500接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;
S610解析所述响应信息,得到所述响应信息中的返回数据;
S620比对接口返回参数和所述返回数据得到所述测试结果;
S700提取所述测试结果中的关键信息,生成预设格式的测试报告。
其中,所述预设测试脚本包括若干待测APP接口,以及对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
具体的,本实施例中,例如聊天APP,视频APP等等APP的各个待测APP接口的测试,关于测试待测终端的登录功能的待测APP接口,以下简称登录待测APP接口,本发明测试装置根据预设APP脚本控制待测终端安装目标APP后,测试装置根据预设登录测试脚本(对应于测试登录待测APP接口的预设测试脚本),生成登录测试请求发送至待测终端的登录待测APP接口,然后待测终端根据登录测试请求执行登录操作,测试装置接收响应消息后进行分析,判断响应信息的返回数据是否包括与接口返回参数相同,即用户名是否与接口返回参数中的预设用户名相同,如果相同,那么就可以得到该登录待测APP接口是合格的APP接口,测试完成。本发明可以利用非工作时间自动完成目标APP的编译,安装和待测APP接口的测试,节省了人工测试成本,缩短了目标APP的产品开发周期,提升研发效率。
一般目标APP的待测APP接口相同时,是不需要另外编写预设测试脚本的,这样,就不需要在测试装置储存每个版本的预设测试脚本,因为假设历史的微信APP的版本为A版本,后来开发人员只是解决一些BUG,新开发了版本为B版本的目标APP,并未增添新功能模块,从而不会新添待测APP接口,那么就可以使用测试A版本的预设测试脚本进行B版本的待测APP接口的自动化测试,这样也能进一步的节省测试装置的内存容量空间。
参考图4所示,本发明提供一种APP接口的测试装置100的一个实施例,包括:
编译模块110,编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;
第一发送模块110,发送所述编译模块110得到的所述编译后的预设APP脚本至待测终端200;
生成模块130,监测所述待测终端200成功安装所述目标APP后,根据预设测试脚本生成测试请求;
所述第一发送模块110,还发送所述生成模块130生成的所述测试请求至所述待测终端200的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
第一接收模块140,接收所述待测终端200通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端200根据所述测试请求执行相应操作后的信息;
分析模块150,分析所述第一接收模块140接收的所述响应信息,得到所述待测APP接口的测试结果。
具体的,本实施例中,预设APP脚本包括目标APP的安装程序,因此待测终端200能够根据编译后的预设APP脚本进行直接地自动地安装目标APP,预设测试脚本包括线程数,启动时间和循环次数,从而使得测试装置100根据预设测试脚本生成相应的对应于测试请求,待测终端200接收测试请求与测试装置100进行信息交互,测试装置100根据从待测终端200发送的响应信息进行分析得到待测APP接口的测试结果。本发明测试环境搭建简单,只需针对不同的测试项目调用不同的测试脚本即可,检测达到预设测试时间后,自动编译安装预设APP脚本,根据测试脚本自动测试待测APP接口,减少APP接口测试的测试时间,减少测试人力投入,提升生产商家的效益。
参考图5所示,本发明提供一种APP接口的测试装置100的另一个实施例,本实施例中其他部分与上一实施例相同,包括:编译模块110、第一发送模块110、生成模块130、第一接收模块140、分析模块150;
此外,所述编译模块110包括:
计时单元111,检测是否达到预设测试时间;
获取单元112,当所述计时单元111检测达到所述预设测试时间后,获取所述预设APP脚本;
编译单元113,编译所述获取单元112获取的所述预设APP脚本至本地;
其中,所述目标地址包括本地地址或网络地址。
所述生成模块130包括:
判断单元131,判断所述待测终端200是否成功安装所述目标APP;
生成单元132,当所述判断单元131判定所述待测终端200成功安装所述目标APP后,根据预设测试优先级和所述预设测试脚本,依次生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
所述生成单元132,还当所述判断单元131判定所述待测终端200成功安装所述目标APP后,获取测试任务指令,根据所述测试任务指令和所述预设测试脚本,生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
其中,所述预设测试脚本包括所有待测APP接口,对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
具体的,本实施例中,从开发人员那里获取接口信息,接口信息包括完整的功能接口、接口请求方式、接口请求URL、接口请求参数、接口返回参数。如果当前项目没有接口信息,则可以使用fiddler对APP进行抓包确认。待测终端200根据预设执行脚本对APP进行操作,然后在Fiddler中可以抓取对应的网络交互信息(一个功能中可能设计多个接口的交互)。在抓取的信息中可以看到接口请求方式、接口请求URL、接口请求参数、接口返回参数。本发明选择HTTP请求的方法,可用HTTP方法包括GET、POST、PUT等等,如果是GET方法的请求,请求参数直接写在URL后面即可;如果是POST的方法,则需要在Body Data中填入包含请求参数的数据,测试装置100在测试过程中监听待测APP接口与测试装置100之间的信息交互,得到每个待测APP接口的测试结果,其中测试结果可以包括待测APP接口的合格与否,测试装置100还可以根据信息交互分析得到待测APP接口的响应时间、吞吐量等等。本发明从目标地址获取预设APP脚本,能够使得测试装置100能够实时的获取预设APP脚本。当开发人员远程进行目标APP的程序编写时,测试装置100能够从开发人员的网络地址获取预设APP脚本。当然,为了安全性考虑,该预设APP脚本可以是进行加密处理的。当开发人员将目标APP的程序保存至测试装置100时,能够从测试装置100的本地地址获取预设APP脚本。
本发明监测达到预设测试时间后,自动开始编译预设APP脚本,并控制待测终端200自动安装目标APP,安装完成后就能够自动开始测试APP接口,即达到预设测试时间就是测试APP接口的触发事件,也就是,本发明一旦Jenkins监测到时间达到预设测试时间后,则通过Jmeter22和BAT文件生成测试请求至待测终端200,待测终端200通过待测APP接口接收测试请求,并根据测试请求进行执行对应于测试请求的操作,然后待测终端200通过待测APP接口返回响应信息至测试装置100,测试装置100再根据响应信息分析得到待测APP接口的测试结果。这一系列操作均是自动化测试,从而避免了人工开启编译目标APP的程序,以及人工开启APP的安装和人工测试APP接口的过程,由此缩短了APP测试的测试时间,进而缩短了目标APP的整体研发时间。
参考图6所示,本发明提供一种APP接口的测试系统的一个实施例,包括:待测终端200,测试装置100;所述测试装置100包括:
编译模块110,编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;
第一发送模块110,发送所述编译模块110得到的所述编译后的预设APP脚本至待测终端200;
生成模块130,监测所述待测终端200成功安装所述目标APP后,根据预设测试脚本生成测试请求;
所述第一发送模块110,还发送所述生成模块130生成的所述测试请求至所述待测终端200的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
第一接收模块140,接收所述待测终端200通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端200根据所述测试请求执行相应操作后的信息;
分析模块150,分析所述第一接收模块140接收的所述响应信息,得到所述待测APP接口的测试结果;
所述待测终端200包括:
第二接收模块210,接收所述第一发送模块110发送的所述编译后的预设APP脚本;
安装模块220,根据所述第二接收模块210接收的所述编译后的预设APP脚本,安装所述目标APP;
所述第二接收模块210,还接收所述第一发送模块110发送的所述测试请求;
执行模块230,根据所述第二接收模块210接收的所述测试请求执行相应操作;
第二发送模块240,发送所述响应消息至所述第一接收模块140;所述响应信息为所述待测终端200根据所述测试请求执行相应操作后的信息。
具体的,本实施例中,预先编写BAT文件;BAT文件包括预设测试脚,然后预先安装版本管理工具、Jenkins测试工具和Jmeter22测试工具。本发明判断本地是否有APP版本更新,若是测试装置100自动地编译预设APP脚本,将编译后的预设APP脚本发送至自动发送至待测终端200,待测终端200根据该编译后的预设APP脚本进行安装目标APP,测试装置100检测到待测终端200成功安装目标APP后,测试装置100根据预设测试脚本生成测试请求,然后发送测试请求至待测终端200,待测终端200根据自身的待测APP接口接收测试请求,并控制自身执行相应的操作,并再次通过自身的待测APP接口发送响应信息至测试装置100,测试装置100接收响应信息后进行分析,从而得到待测APP接口的测试结果。本发明自动开始编译预设APP脚本,并控制待测终端200自动安装目标APP,安装完成后就能够自动开始测试APP接口,这一系列操作均是自动化测试,从而避免了人工开启编译目标APP的程序,以及人工开启APP的安装和人工测试APP接口的过程,由此缩短了APP测试的测试时间,进而缩短了目标APP的整体研发时间。
下面,举个例子,如图7为本发明实例的结构示意图,图8为本发明实例的流程图,图7中包括待测终端1和测试装置PC2,其中,待测终端设有LAN口10,测试装置PC 2包括ETH口21,Jmeter22,BAT文件23和Jenkins24。具体测试流程如下:
S10、开始;
S11、启动Jenkins24,设定测试开始时间;
S12、检查是否到达预设测试时间;若是,执行步骤S13;否则,返回步骤S12;
S13、启动版本构建,完成后对待测终端进行自动升级;
S14、检查构建、升级是否成功;若是,执行步骤S15;否则,执行步骤S17;
S15、启动“BAT文件23”进行APP接口测试;
S16、处理测试报告为.html格式;
S17、发送测试log和测试报告给相关人员;
S18、结束。
具体的,本实施例中,由于目前APP接口主要通过测试人员手动的方式来完成,每当有新版本发布时,测试人员手动升级新版本,打开Jmeter22进行APP接口测试,待测试完成后需检查测试结果。测试如果遇到问题,需再反馈给相关的开发人员进行问题的定位,完成一个测试周期至少需要一到两个工作日,再加上研发的问题定位时间,开发周期变的更长。本发明的环境搭建如图7所示,其主要包括测试装置(PC2)和待测终端(DUT1)。待测终端各种路由器产品,其中测试装置(PC2)主要有三大模块:Jenkins24、Jmeter22、和BAT文件23。
其中,Jenkins24:启用定时机制调用“BAT文件23”去触发待测APP接口测试;记录测试log文件,在测试完成后,发送测试报告和log文件给相关研发、测试人员。
BAT文件23:根据测试需求编写的批处理脚本,主要通过调用Jmeter22启动APP接口测试,由于Jmeter22生成的APP接口测试的结果是.csv文本格式的,对于非专业测试人员,很难进行阅读及查看,因此BAT文件23会对测试的文本进行数据处理,最终生成可视化的测试报告(*.html)。
Jmeter22:通过Ethernet连接到待测终端,如待测路由器,模拟客户端发送HTTP请求来实现待测APP接口测试,测试完成后生成测试log和测试报告。
步骤1:测试装置(后面统一简称PC1)连接公司版本服务器网络,同时测试电脑上PC1需安装版本管理工具(SVN)、Jenkins24客户端工具、自主开发的脚本工具(BAT文件23)、Jmeter22接口测试工具。根据不同的环境以及不同的项目需求,需要在BAT文件23上配置Jmeter22的安装路径、测试脚本路径以及测试结果的保存路径。PC1的网口以有线的方式连接到路由器的LAN口,设置网卡IP为自动获取模式。
步骤2:通过Jenkins24新建测试任务,启动Jenkins24定时器(可以设置在每天的下班时间,如22:00),执行每天版本的构建,待构建完成后,对待测路由器进行新版本的升级。如果编译或者升级失败,则终止APP接口测试,直接发送邮件给研发人员进行问题的定位。如果版本编译和升级都成功,则Jenkins24调用我们自主开发的BAT文件23去执行待测APP接口测试。
步骤3:一旦BAT文件23被调用,将会根据步骤1的配置调用Jmeter22工具开始执行待测APP接口测试。待测APP接口测试结束后,将生成.csv的文本格式的报告。由于是文本格式的输出报告,只有专业的测试工程师才能看懂,如果出现问题,不便于研发和测试人员进行沟通以及问题的定位,因此基于python专门开发一套结果处理脚本,首先从.csv输出报告中提取出我们需要的信息,然后将这些测试结果输出到.html格式的报告文件中。
步骤4:最通过以邮件附件的形式发送测试log和测试结果(html)给相关的人员,至此整个APP接口测试完成。
本发明利用非工作时间自动完成软件版本的编译、升级以及APP接口测试,省去了人工成本,缩短了产品开发周期。自主开发的BAT文件23能够完成APP接口测试工具的自动启动,以及测试报告的可视化处理,简化了测试人员和开发人员的沟通过程,提高了工作的效率。本发明适用于所有路由器产品,只需更换不同的待测终端、根据路由器型号,功能编写的预设测试脚本,即可完成待测APP接口测试。本发明通过定时机制,利用每天的下班时间去启动APP接口测试,解决了我司路由器产品APP接口测试纯依靠手工,占用工作时间、人力;并对测试报告进行可视化处理(生成html格式),使的非专业的测试人员也能清晰简单明了的查看测试结果,方便问题的定位,提高了测试效率及灵活性,缩短了产品的开发周期。本发明基于Jenkins24+Jmeter22的自动化测试系统,通过定时触发启动机制,完成从产品的版本编译,到软件的自动升级,到APP接口的自动化测试,再到测试结果的可视化处理,以及最后把测试报告和log文件发送给相关人员的一体化过程。本系统可以设定在晚上的休息时间来执行,从软件版本的编译到最终的测试完成不占用任何工作时间,提高了整个研发团队的工作效率,缩短了产品的研发周期。本发明适用所有的路由产品APP接口测试中,搭建简单,只需更换不同的测试脚本即可。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种APP接口的测试方法,其特征在于,包括步骤:
S100编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;
S200发送编译后的预设APP脚本至待测终端;
S300监测所述待测终端成功安装所述目标APP后,根据预设测试脚本生成测试请求;
S400发送所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
S500接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;
S600分析所述响应信息,得到所述待测APP接口的测试结果。
2.根据权利要求1所述的APP接口的测试方法,其特征在于,所述步骤S100包括步骤:
S110检测是否达到预设测试时间;若是,执行步骤S120;
S120从目标地址获取所述预设APP脚本;
S130编译所述预设APP脚本至本地;
其中,所述目标地址包括本地地址或网络地址。
3.根据权利要求1所述的APP接口的测试方法,其特征在于,所述步骤S300包括步骤:
S310判断所述待测终端是否成功安装所述目标APP;若是执行步骤S320;
S320根据预设测试优先级和所述预设测试脚本,依次生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
其中,所述预设测试脚本包括若干待测APP接口,以及对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
4.根据权利要求1所述的APP接口的测试方法,其特征在于,所述步骤S300还包括步骤:
S330判断所述待测终端是否成功安装所述目标APP;若是执行步骤S340;
S340获取测试任务指令,根据所述测试任务指令和所述预设测试脚本,生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
其中,所述预设测试脚本包括若干待测APP接口,以及对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
5.根据权利要求4所述的APP接口的测试方法,其特征在于,所述步骤S600包括步骤:
S610解析所述响应信息,得到所述响应信息中的返回数据;
S620比对接口返回参数和所述返回数据得到所述测试结果。
6.根据权利要求1-5任一项所述的APP接口的测试方法,其特征在于,所述步骤S600之后包括步骤:
S700提取所述测试结果中的关键信息,生成预设格式的测试报告。
7.一种APP接口的测试装置,其特征在于,应用权利要求1-6任一项所述的APP接口的测试方法,包括:
编译模块,编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;
第一发送模块,发送所述编译模块得到的所述编译后的预设APP脚本至待测终端;
生成模块,监测所述待测终端成功安装所述目标APP后,根据预设测试脚本生成测试请求;
所述第一发送模块,还发送所述生成模块生成的所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
第一接收模块,接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;
分析模块,分析所述第一接收模块接收的所述响应信息,得到所述待测APP接口的测试结果。
8.根据权利要求6所述的APP接口的测试装置,其特征在于,所述编译模块包括:
计时单元,检测是否达到预设测试时间;
获取单元,当所述计时单元检测达到所述预设测试时间后,获取所述预设APP脚本;
编译单元,编译所述获取单元获取的所述预设APP脚本至本地;
其中,所述目标地址包括本地地址或网络地址。
9.根据权利要求6所述的APP接口的测试装置,其特征在于,所述生成模块包括:
判断单元,判断所述待测终端是否成功安装所述目标APP;
生成单元,当所述判断单元判定所述待测终端成功安装所述目标APP后,根据预设测试优先级和所述预设测试脚本,依次生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
所述生成单元,还当所述判断单元判定所述待测终端成功安装所述目标APP后,获取测试任务指令,根据所述测试任务指令和所述预设测试脚本,生成对应的测试请求;所述测试请求为对应于每个类型的待测APP接口的测试请求;
其中,所述预设测试脚本包括所有待测APP接口,对应于所述待测APP接口的接口信息;所述接口信息包括所述接口返回参数。
10.一种APP接口的测试系统,其特征在于,应用权利要求1-6任一项所述的APP接口的测试方法,包括:待测终端,测试装置;所述测试装置包括:
编译模块,编译预设APP脚本;所述预设APP脚本包括目标APP的安装程序;
第一发送模块,发送所述编译模块得到的所述编译后的预设APP脚本至待测终端;
生成模块,监测所述待测终端成功安装所述目标APP后,根据预设测试脚本生成测试请求;
所述第一发送模块,还发送所述生成模块生成的所述测试请求至所述待测终端的待测APP接口;所述待测APP接口为所述目标APP的程序接口;
第一接收模块,接收所述待测终端通过所述待测APP接口发送的响应信息;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息;
分析模块,分析所述第一接收模块接收的所述响应信息,得到所述待测APP接口的测试结果;
所述待测终端包括:
第二接收模块,接收所述第一发送模块发送的所述编译后的预设APP脚本;
安装模块,根据所述第二接收模块接收的所述编译后的预设APP脚本,安装所述目标APP;
所述第二接收模块,还接收所述第一发送模块发送的所述测试请求;
执行模块,根据所述第二接收模块接收的所述测试请求执行相应操作;
第二发送模块,发送所述响应消息至所述第一接收模块;所述响应信息为所述待测终端根据所述测试请求执行相应操作后的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710742204.6A CN107577602A (zh) | 2017-08-25 | 2017-08-25 | 一种app接口的测试方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710742204.6A CN107577602A (zh) | 2017-08-25 | 2017-08-25 | 一种app接口的测试方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107577602A true CN107577602A (zh) | 2018-01-12 |
Family
ID=61035298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710742204.6A Pending CN107577602A (zh) | 2017-08-25 | 2017-08-25 | 一种app接口的测试方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107577602A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108337132A (zh) * | 2018-01-29 | 2018-07-27 | 上海康斐信息技术有限公司 | 一种测试路由器云服务接口的方法及系统 |
CN108363671A (zh) * | 2018-02-07 | 2018-08-03 | 中国平安人寿保险股份有限公司 | 一种接口切换的方法、终端设备及存储介质 |
CN108763093A (zh) * | 2018-06-01 | 2018-11-06 | 政采云有限公司 | 一种自动化测试方法和系统 |
CN108932195A (zh) * | 2018-06-25 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种手机app接口测试的方法及系统 |
CN109324975A (zh) * | 2018-10-08 | 2019-02-12 | 四川长虹电器股份有限公司 | 一种基于移动云测平台的持续集成方法 |
CN109376079A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 接口调用的测试方法及服务器 |
CN109726100A (zh) * | 2018-04-19 | 2019-05-07 | 平安普惠企业管理有限公司 | 应用性能测试方法、装置、设备及计算机可读存储介质 |
CN110083537A (zh) * | 2019-04-26 | 2019-08-02 | 田金月 | 手机app端口测试的方法及系统 |
WO2019178957A1 (zh) * | 2018-03-22 | 2019-09-26 | 平安科技(深圳)有限公司 | 分布式系统的测试方法、装置、计算机设备及存储介质 |
CN111143186A (zh) * | 2018-11-02 | 2020-05-12 | 易保网络技术(上海)有限公司 | 用于应用程序接口api测试的方法和设备 |
CN111506490A (zh) * | 2019-01-31 | 2020-08-07 | 上海哔哩哔哩科技有限公司 | 应用服务接口自动测试方法、装置及存储介质 |
CN111752820A (zh) * | 2019-03-29 | 2020-10-09 | 上海哔哩哔哩科技有限公司 | gRPC接口的压力测试方法、计算机设备和存储介质 |
CN112732548A (zh) * | 2019-10-14 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 一种接口测试方法以及装置 |
-
2017
- 2017-08-25 CN CN201710742204.6A patent/CN107577602A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108337132A (zh) * | 2018-01-29 | 2018-07-27 | 上海康斐信息技术有限公司 | 一种测试路由器云服务接口的方法及系统 |
CN108363671A (zh) * | 2018-02-07 | 2018-08-03 | 中国平安人寿保险股份有限公司 | 一种接口切换的方法、终端设备及存储介质 |
CN108363671B (zh) * | 2018-02-07 | 2020-01-14 | 中国平安人寿保险股份有限公司 | 一种接口切换的方法、终端设备及存储介质 |
WO2019178957A1 (zh) * | 2018-03-22 | 2019-09-26 | 平安科技(深圳)有限公司 | 分布式系统的测试方法、装置、计算机设备及存储介质 |
CN109726100A (zh) * | 2018-04-19 | 2019-05-07 | 平安普惠企业管理有限公司 | 应用性能测试方法、装置、设备及计算机可读存储介质 |
CN108763093A (zh) * | 2018-06-01 | 2018-11-06 | 政采云有限公司 | 一种自动化测试方法和系统 |
CN108932195A (zh) * | 2018-06-25 | 2018-12-04 | 郑州云海信息技术有限公司 | 一种手机app接口测试的方法及系统 |
CN109376079A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 接口调用的测试方法及服务器 |
CN109324975A (zh) * | 2018-10-08 | 2019-02-12 | 四川长虹电器股份有限公司 | 一种基于移动云测平台的持续集成方法 |
CN109324975B (zh) * | 2018-10-08 | 2021-06-22 | 四川长虹电器股份有限公司 | 一种基于移动云测平台的持续集成方法 |
CN111143186A (zh) * | 2018-11-02 | 2020-05-12 | 易保网络技术(上海)有限公司 | 用于应用程序接口api测试的方法和设备 |
CN111506490A (zh) * | 2019-01-31 | 2020-08-07 | 上海哔哩哔哩科技有限公司 | 应用服务接口自动测试方法、装置及存储介质 |
CN111752820A (zh) * | 2019-03-29 | 2020-10-09 | 上海哔哩哔哩科技有限公司 | gRPC接口的压力测试方法、计算机设备和存储介质 |
CN111752820B (zh) * | 2019-03-29 | 2024-01-19 | 上海哔哩哔哩科技有限公司 | gRPC接口的压力测试方法、计算机设备和存储介质 |
CN110083537A (zh) * | 2019-04-26 | 2019-08-02 | 田金月 | 手机app端口测试的方法及系统 |
CN112732548A (zh) * | 2019-10-14 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 一种接口测试方法以及装置 |
CN112732548B (zh) * | 2019-10-14 | 2024-01-26 | 腾讯科技(深圳)有限公司 | 一种接口测试方法以及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107577602A (zh) | 一种app接口的测试方法、装置及系统 | |
US11281570B2 (en) | Software testing method, system, apparatus, device medium, and computer program product | |
CN103365770B (zh) | 移动终端软件测试系统及软件测试方法 | |
CN108733552B (zh) | 一种fpga远程调试系统及远程调试方法 | |
CN102411503B (zh) | 一种在设计时环境中执行业务过程模型的空运行的方法及系统 | |
US20130263090A1 (en) | System and method for automated testing | |
CN104731566B (zh) | 集成开发环境测试装置、方法及系统 | |
CN101478449A (zh) | 一种协议自动测试方法及其系统 | |
JP2014157505A (ja) | コントローラ、情報処理装置およびプログラム | |
CN106897223A (zh) | 一种基于持续集成的软件包交付方法及装置 | |
CN112463467B (zh) | 自动化的整合测试系统及其方法 | |
CN108763056A (zh) | 一种自动化测试弹框处理方法及终端 | |
CN107733735A (zh) | 一种脚本录制系统及方法 | |
CN111813671A (zh) | 一种ima软件仿真测试系统 | |
CN113706022A (zh) | 业务流程的执行方法及装置、存储介质及电子设备 | |
CN108491323A (zh) | 一种基于Lua脚本的嵌入式软件自动化测试系统及方法 | |
CN108153599B (zh) | 一种项目管理平台、方法、存储介质及电子设备 | |
US11429514B2 (en) | Testing as a service | |
CN112527577B (zh) | 一种服务器能耗自动化测试和采集方法、系统及介质 | |
CN114860613A (zh) | 一种自动化测试方法及装置 | |
CN113127486B (zh) | 一种信息收集存储方法、装置、设备及存储介质 | |
CN108334443A (zh) | 生成测试用例的方法、装置、设备及计算机可读存储介质 | |
CN112911283A (zh) | 智能电视测试方法及装置 | |
KR20120102967A (ko) | 애플리케이션 검증 시스템 및 방법 | |
CN111464350A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180112 |