一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

测试方法、Mock框架、用户设备、服务设备和存储介质与流程

2023-02-19 12:24:03 来源:中国专利 TAG:
测试方法、mock框架、用户设备、服务设备和存储介质
技术领域
:1.本技术涉及行为软件测试
技术领域
:,尤其涉及一种测试方法、mock框架、用户设备、服务设备和存储介质。
背景技术
::2.在相关技术提供的测试过程中,首先向被测对象发起测试请求,然后等待被测对象处理测试请求后返回处理结果,再根据返回的处理结果进行一致性比较,从而确定被测对象是否能够满足业务需求。然而,相关技术在进行一致性比较时的处理步骤较为复杂,降低了测试过程的整体效率。技术实现要素:3.本技术提供了一种测试方法、mock框架、用户设备、服务设备和存储介质,能够在测试过程中快速实现一致性比较,从而提高测试效率。4.本技术的技术方案是这样实现的:5.第一方面,本技术实施例提供了一种测试方法,应用于用户设备,该方法包括:6.向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符;7.基于url参数,接收服务设备返回的认证参数;8.根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。9.第二方面,本技术实施例提供了一种测试方法,应用于服务设备,该方法包括:10.接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符;11.基于用户参数中的目标字符,获取认证参数;12.基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。13.第三方面,本技术实施例提供了一种mock框架,该mock框架用于部署虚拟设备,且所述mock框架包括接口管理器和类加载器;其中,14.接口管理器,用于接收接口增量指令,并根据接口增量指令生成接口增量代码;15.类加载器,还用于加载接口增量代码,以实现对虚拟设备的接口增量处理。16.第四方面,本技术实施例提供了一种用户设备,该用户设备包括第一发送单元、第一连接单元和比较单元;其中,17.第一发送单元,配置为向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符;18.第一接收单元,配置为基于url参数,接收服务设备返回的认证参数;19.比较单元,配置为根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。20.第五方面,本技术实施例提供了一种用户设备,该用户设备包括第一存储器和第一处理器;其中,21.第一存储器,用于存储能够在处理器上运行的计算机程序;22.第一处理器,用于在运行计算机程序时,执行如第一方面所述方法的步骤。23.第六方面,本技术实施例提供了一种服务设备,该服务设备包括第二接收单元、获取单元和第二发送单元;其中,24.第二接收单元,配置为接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符;25.获取单元,配置为基于用户参数中的目标字符,获取认证参数;26.第二发送单元,配置为基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。27.第七方面,本技术实施例提供了一种服务设备,该服务设备包括第二存储器和第二处理器;其中,28.第二存储器,用于存储能够在处理器上运行的计算机程序;29.第二处理器,用于在运行计算机程序时,执行如第二方面所述方法的步骤。30.第八方面,本技术实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,该计算机程序被第一处理器执行时实现如第一方面所述方法的步骤,或者被第二处理器执行时实现如第二方面所述方法的步骤。31.本技术实施例提供了一种测试方法、mock框架、用户设备、服务设备和存储介质,在用户设备侧,向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符;基于url参数,接收服务设备返回的认证参数;根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。在服务设备侧,接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符;基于用户参数中的目标字符,获取认证参数;基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。这样,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,从而提高测试效率。另外,对于mock框架,该mock框架用于部署虚拟设备,且mock框架包括接口管理器和类加载器;其中,接口管理器,用于接收接口增量指令,并根据接口增量指令生成接口增量代码;类加载器,还用于加载接口增量代码,以实现对虚拟设备的接口增量处理。这样,在利用mock框架部署虚拟设备时,还可以通过接口管理器方便地对虚拟设备中的接口进行增量修改,减少接口增量修改的工作量。附图说明32.图1为本技术实施例提供的一种测试方法的流程示意图;33.图2为本技术实施例提供的另一种测试方法的流程示意图;34.图3为本技术实施例提供的一种测试系统的交互过程示意图;35.图4为本技术实施例提供的又一种测试方法的流程示意图;36.图5为本技术实施例提供的一种mock框架的组成结构示意图;37.图6为本技术实施例提供的另一种mock框架的组成结构示意图;38.图7为本技术实施例提供的一种用户设备的组成结构示意图;39.图8为本技术实施例提供的一种用户设备的硬件结构示意图;40.图9为本技术实施例提供的一种服务设备的组成结构示意图;41.图10为本技术实施例提供的一种服务设备的硬件结构示意图。具体实施方式42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。43.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的
技术领域
:的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。44.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。45.需要指出,本技术实施例所涉及的术语“第一\第二\第三”仅是用于区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。46.对本技术实施例进行进一步详细说明之前,先对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释:47.java:一种计算机编程语言。48.jar:一种软件包文件格式,通常用于聚合大量的java类文件、相关的元数据和资源(文本、图片等)文件到一个文件,以便开发java平台应用软件或库。49.freemarker:一种模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本的通用工具,开发人员可以利用freemarker嵌入他们所开发产品的组件。50.mock:一种模拟数据生成器,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。51.springcloud:一个云应用开发工具,可以用来开发mock。52.servlet:是运行在服务器上的程序,为java程序提供一个统一的网页应用的规范。53.tomcat:一个servlet容器。54.lib(library):数据仓库。55.restful规范:一种互联网软件架构的规范。56.restfulclassloader:符合restful规范的类加载器。57.url(uniformresourcelocator):统一资源定位器,用于指定信息位置的表示方法。58.backurl:回跳地址。59.token:令牌,即本技术实施例中的认证参数。60.total:用于指示计数器的计数值。61.断言:在程序设计中,断言是一种放在程序中的一阶逻辑,目的是为了标示与验证程序开发者预期的结果。62.可以理解,为了提高处理效率,很多软件程序会选择异步调用的方式执行任务。在异步调用中,在第一线程通过接口调用第二线程之后,第一线程无需等待第二线程返回的结果,而是可以直接处理其他任务,在第二线程处理完成且需要向第一线程返回处理结果时,会再次回调第一线程的接口,该接口也称为异步回调接口(或者异步调用接口、异步接口等)。63.其中,异步回调接口的测试是一项重要的测试。在一种相关技术中,在涉及异步接口测试用例时,能够通过线程阻塞对象阻塞测试线程,以等待对异步接口的测试及断言;在另一种相关技术中,公开了一种自动化的方案,将测试过程中的用例划分为测试用例和断言用例两部分,在测试用例执行完毕后停止该测试用例,在停止测试用例之后建立起对应的断言用例执行条件,在条件满足时再执行对应的断言用例,进而确定被测对象的状态。64.然而,以上测试方法均对异步处理后的信息一致性没有给出具体的判断方法,这造成了异步调用接口的测试方法仍有不足。65.基于此,本技术实施例提供了一种测试方法,该方法的基本思想是:向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符;基于url参数,接收服务设备返回的认证参数;根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。在服务设备侧,接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符;基于用户参数中的目标字符,获取认证参数;基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。这样,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,从而提高测试效率。66.除此之外,在程序的调试测试过程中,经常需要利用mock技术虚拟一些设备(例如还未设计好的服务器、数据库或者系统等)及其接口,以便利用虚拟设备的接口完成测试过程。但是在相关技术中,如果希望对虚拟设备的接口进行修改,那么需要对整体虚拟设备进行全量修改,工作量大且过程复杂。67.基于此,本技术实施例还提供了一种mock框架,该方法的基本思想是:该mock框架用于部署虚拟设备,且mock框架包括接口管理器和类加载器;其中,接口管理器,用于接收接口增量指令,并根据接口增量指令生成接口增量代码;类加载器,还用于加载接口增量代码,以实现对虚拟设备的接口增量处理。这样,在利用mock框架部署虚拟设备时,可以通过接口管理器方便地对虚拟设备中的接口进行增量修改,减少接口修改的工作量。68.下面将结合附图对本技术各实施例进行详细说明。69.在本技术的一实施例中,参见图1,其示出了本技术实施例提供的一种测试方法的流程示意图。如图1所示,该方法可以包括:70.s101:向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符。71.需要说明的是,本技术实施例提供的测试方法应用于用户设备,用户设备可以是各种终端设备,例如个人数字助理(personaldigitalassistant,pda),无线通信终端(wirelesscommunicationterminal)、智能手机(smartphone)、音响、电视机、投影仪、智能家居设备、便携式多媒体播放器(portablemultimediaplayer,pmp)等,本技术实施例不作任何限定。72.另外,本技术实施例还涉及到服务设备,服务设备是能够处理用户设备的认证请求的设备。例如,用户设备可以是安装有某一应用的客户端,服务设备可以安装有某一应用的服务端。73.在本技术实施例中,用户设备可以向服务设备发送认证请求,从而获得不同用户的认证参数。具体地,认证请求中包含用户参数和url参数,用户参数用于指定用户设备需要哪一用户的认证参数,而url参数用于告知服务设备返回认证参数时的地址。74.还需要说明的是,在本技术实施例中,用户参数和url参数均包含目标字符。在这里,目标字符的含义包括但不限于以下可能:75.(1)特定字符组合,只要两个参数中均出现了该特定字符组合,则认为两个参数包含相同的特征字符;76.(2)特定字符组合且该特定字符组合必须出现在特定参数位置中,例如最后n位字符构成的字符组合必须为特定字符组合、中间n位字符构成的字符组合必须为特定字符组合;也就是说,只有两个参数各自在指定的参数位置上出现了特定的字符组合,才会认为两个参数包含相同的目标字符。77.这样,在本测试方法中,服务设备可以根据认证请求中的用户参数,确定相应的认证参数;再根据认证请求中的url参数,向用户设备返回该认证参数,而用户设备根据认证参数确定本次认证请求是否成功执行。78.s102:基于url参数,接收服务设备返回的认证参数。79.需要说明的是,在实际业务过程中,认证参数与用户参数的映射关系可能是预先存储好的,或者根据某一业务规则生成的。然而,在测试过程中,并不需要严格遵守认证参数和用户参数的映射关系。因此,在本技术实施例中,为了方便测试结果的确定,设计了这样的认证参数生成规则:根据用户参数生成认证参数,且所生成的认证参数与用户参数具有相同的特征字符。也就是说,在正常工作的前提下,url参数、用户参数和认证参数均具有相同的目标字符。80.还需要说明的是,服务设备需要一定的时间来完成认证请求,所以认证请求可以设计为异步处理过程。因此,在一些实施中,url参数用于指示第一异步调用接口;所述基于url参数,接收服务设备发送的认证参数,该方法还可以包括:81.在检测到第一异步调用接口被调用时,通过第一异步调用接口接收服务设备发送的认证参数。82.需要说明的是,在用户设备向服务设备发送第一认证请求后,用户设备可以执行其他任务;在服务设备获取到该认证请求对应的认证参数后,根据url参数回调用户设备的第一异步调用接口,从而向用户设备返回认证参数。83.s103:根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。84.需要说明的是,在所有设备正常运行的前提下,由于url参数和用户参数中均包括目标字符,且认证参数和用户参数一样包括目标字符,所以url参数和用户参数理论上也包括目标字符。85.因此,对于用户设备而言,在接收到认证参数后,只需要将url参数和认证参数进行一致性比较,就可以实现一致性比较,从而可以快速确定测试结果。因此,在一些实施例中,所述对url参数和认证参数进行一致性比较,确定测试结果,可以包括:86.若url参数和认证参数中的目标字符一致,则确定测试结果为测试成功;87.若url参数和认证参数中的目标字符不一致,则确定测试结果为测试失败。88.还需要说明的是,由于测试方法需要考虑一些极端场景,从而测试功能稳定性。因此,在一些实施例中,认证请求的数量可以为多个,而且当认证请求的数量为多个时,多个所述认证请求处于并发状态且多个认证请求处于并发状态;所述对url参数和认证参数进行一致性比较,确定测试结果,可以包括:89.对多个所述认证请求中每一认证请求中各自的url参数和认证参数进行一致性比较,确定错误次数;90.若所述错误次数小于或等于预设阈值,则确定所述测试结果为测试成功;91.若所述错误次数大于预设阈值,则确定所述测试结果为测试失败。92.需要说明的是,错误次数就是指没有得到成功执行的认证请求的数量,也就是说,url参数和接收到的认证参数中的目标字符不一致。93.如果错误次数高于预设阈值,则说明测试失败,服务设备无法应对大量并发的认证需求的场景。在这里,预设阈值可以根据实际应用场景进行限定。94.进一步地,在一些实施例中,所述对多个所述认证请求中每一认证请求中各自的url参数和认证参数进行一致性比较,确定错误次数,可以包括:95.设置预设计数器的初始计数值为0;96.在多个认证请求中,将其中一个认证请求的url参数和认证参数进行一致性比较;97.若其中一个认证请求的url参数和认证参数中的目标字符不一致,则控制计数器进行加一操作;98.在对多个认证请求中每一认证请求的url参数和认证参数进行一致性比较之后,获取计数器的当前计数值;99.将计数器的当前计数值确定为错误次数。100.需要说明的是,在同一个认证请求中,url参数和认证参数包括相同的目标字符;而在不同的认证请求中,目标字符是不同的。因此,通过url和认证参数进行一致性比较,能够快速确定本次认证请求是否被成功处理。101.这样,通过引入计数器,可以自动化、快速地统计错误次数,从而确定并发场景下的测试结果。102.特别地,本技术实施例可以应用在异步回调接口测试中,即本技术实施例给出了一种验证回调信息在并发处理时是否一致,且能自动断言的测试方法;当然,本技术实施例可以应用在其他测试场景中,此处不一一列举。103.本技术实施例提供了一种测试方法,应用于用户设备,向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符;基于url参数,接收服务设备返回的认证参数;根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。这样,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,从而提高测试效率。104.在本技术的另一实施例中,参见图2,其示出了本技术实施例提供的另一种测试方法的流程示意图。如图2所示,该方法可以包括:105.s201:接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符。106.需要说明的是,本技术实施例提供的测试方法应用于服务设备,服务设备可以是多种电子设备,例如服务器、个人计算机、笔记本电脑等,本技术实施例不作任何限定。107.另外,本技术实施例中还涉及用户设备,服务设备能够处理用户设备的认证请求。例如,用户设备可以是安装有某一应用客户端,服务设备可以安装有某一应用服务端。108.在本技术实施例中,服务设备会接收到用户设备发送的认证请求,并向用户设备返回相应的认证参数。具体地,认证请求中包含用户参数和url参数,用户参数用于指定需要哪一用户的认证参数,而url参数用于告知服务设备返回认证参数时的地址。109.s202:基于用户参数中的目标字符中的目标字符,获取认证参数。110.还需要说明的是,认证参数的获取方法有很多种,例如服务设备存储有用户参数和预设的认证参数之间的映射关系,或者服务设备能够根据用户参数直接生成认证参数,或者服务设备能够调用其他设备进而获得认证参数。111.以服务设备调用其他设备(例如数据库、其他服务器)来获得认证参数的场景为例进行具体说明,但这并不构成本技术实施例的限制。112.在一种常见的场景中,在接收到认证请求中,服务设备需要先征得用户本人的同意,然后服务设备再从其他设备处来获得认证参数。因此,在本技术实施例中,分别借助第一mock服务器和第二mock服务器来模拟用户确认步骤和参数获取步骤。113.因此,针对第一mock服务器所模拟的用户确认步骤,在一些实施例中,用户确认请求包括回调地址参数,且回调地址参数用于指示服务设备中的第二异步调用接口,该方法还可以包括:114.基于用户参数,向第一mock服务器发送用户确认请求;115.在检测到第二异步调用接口被调用时,接收第一mock服务器返回的用户确认信息;116.基于用户确认信息,执行所述基于用户参数中的目标字符,获取认证参数的步骤。117.在这里,第一mock服务器用于模拟的是用户确认步骤,该步骤的处理时间并不确定,因此可以将第一mock服务器和服务设备之间的交互设计为异步处理过程。118.因此,针对第二mock服务器所模拟的参数获取步骤,在一些实施例中,所述基于用户参数中的目标字符,获取认证参数,包括:119.基于用户参数,向第二mock服务器发送参数获取请求,以使得第二mock服务器基于用户参数中的目标字符生成认证参数;120.接收第二mock服务器返回的认证参数。121.需要说明的是,为了方便测试结果的确定,可以利用目标字符来生成认证参数,即认证参数中也包括该目标字符。也就是说,在正常工作的前提下,url参数、用户参数和认证参数均具有相同的目标字符。122.在这里,第二mock服务器和服务设备之间的交互关系可以为异步调用或者同步调用。应理解,服务设备与第一mock服务器和第二mock服务器之间的调用方式应当依据所测试的实际工作过程予以确定。123.s203:基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。124.在这里,测试结果是根据目标字符对url参数和认证参数进行一致性比较后得到的。125.需要说明的是,在程序正常运行的前提下,由于url参数、用户参数和认证参数均应当包含目标字符,所以通过对url参数和该url接收到的认证参数进行一致性比较,即可快速确定测试结果。126.进一步地,用户设备和服务设备之间的交互可以通过异步处理的方式进行,因此,在一些实施例中,url参数用于指示用户设备中的第一异步调用接口;所述基于url参数,向用户设备发送认证参数,可以包括:127.基于url参数,调用第一异步调用接口;128.通过第一异步调用接口,向用户设备发送认证参数。129.还需要说明的是,为了测试服务设备是否能够在并发的状态下正常处理认证请求。所以用户设备可以并发发送多个认证请求,服务设备根据每个认证请求中的用户参数相应的确定认证参数,并根据每个认证请求中的url参数将认证参数对应的返回给用户设备。130.另外,在以上实施例中,认证请求的数量为多个,且多个认证请求处于并发状态。特别地,在同一认证请求中,url参数和用户参数具有相同的目标字符;在不同的认证请求中,目标字符是不同的。131.本技术实施例提供了一种测试方法,应用于服务设备,接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符;基于用户参数中的目标字符,获取认证参数;基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。这样,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,从而提高测试效率。132.在本技术的又一实施例中,参见图3,其示出了本技术实施例提供的一种测试系统的交互过程示意图。如图3所示,该测试系统包括客户端(相当于前述的用户设备)、被测系统(相当于前述的服务设备)、mock1(相当于前述的第一mock服务器)和mock2(相当于前述的第二mock服务器)。133.在这里,客户端、被测系统、mock1和mock2均可以以虚拟机的形式存在,此时客户端、被测系统、mock1和mock2可以搭载于同一台实体设备。134.如图3所示,该测试系统的交互过程可以包括以下步骤:135.s301:客户端向被测系统发送包括手机号和backurl的认证请求。136.在这里,手机号相当于前述的用户信息,backurl相当于前述的url参数;137.s302:被测系统向mock1发送用户确认请求。138.需要说明的是,mock1所模拟的是实际场景中该手机号对应的机主设备,因此,被测系统实际上基于手机号发送用户确认请求的。139.s303:mock1响应被测系统。140.需要说明的是,mock1在收到确认请求后会进行响应,以模拟实际场景中的过程。141.s304:mock1以异步回调的方式返回用户确认信息。142.需要说明的是,由于被测系统和mock1之间的交互所模拟的是实际工作过程中机主的确认过程,由于该过程涉及到机主本人的操作,耗费的时间无法预先确定,所以一般通过异步处理的方式执行。143.s305:被测系统向mock2发送参数获取请求。144.需要说明的是,认证请求中携带有手机号,以便于mock2生成认证参数。145.s306:mock2向被测系统返回认证参数。146.需要说明的是,mock2根据手机号生成认证参数,且所生成的认证参数和手机号的尾号(例如最后三位)相同。147.s307:被测系统以异步回调的方式向客户端返回认证参数。148.也就是说,对于被测系统而言,被测系统并发处理客户端请求(参见步骤s301),请求和等待用户确认信息(参见步骤s304),进而决定是否获取认证参数(参见步骤s305),获取后,最终将正确的认证参数传递给正确的backurl(参见步骤s307)。149.对于涉及到异步调用的处理场景,除了常规的测试之外,还需要完成一个重要的测试点:在多并发场景下,被测系统能否将正确的认证信息传递给正确的backurl。在相关技术中,虽然可以采用手动测试完成一两个用户的并发调用,但是为了保证被测系统的稳定性,需要持久以及高并发环境下的测试,所以本技术实施例提供了一个自动的、结果可自动衡量的方案。150.针对该测试系统,客户端通过将backurl和接收到的认证参数进行比较,可以快速确定被测系统是否反馈了正确的认证参数,同时测试系统还可以配备计数器,以自动化的统计高并发状态的出错次数。具体地,如图4所示,测试系统的测试流程包括以下步骤:151.s401:配置测试系统。152.需要说明的是,首先,对测试系统进行测试准备,包括以下几个方面:(1)被测系统配置mock1和mock2的地址;(2)客户端部署了300个(该数量可以根据需求进行修改)个backurl的服务和请求被测系统的服务;(3)客户端、mock1和mock2可用。另外,客户端、mock1和mock2可以修改编译后通过管理平台加入系统。153.s402:复位计数器为0。154.在这里,将复位计数器的计数值total复位为0。155.s403:客户端发起100并发数的认证请求,每个认证请求内均包括backurl和手机号。156.在这里,对于每个认证请求内,backurl和手机号的后缀相同,不同的认证请求间手机号的后缀是不同的。157.s404:mock1收到被测系统的确认请求后,返回“同意”。158.s405:mock2收到被测系统的参数获取请求后,返回认证参数,且认证参数和参数获取请求中的手机后的后缀相同。159.需要说明的是,如果该参数获取请求中的手机号后缀为001,则返回后缀为1的token1信息(相当于认证信息)。160.s406:客户端的每个backurl收到认证参数后,如果认证参数的后缀和backurl的后缀相同,则本次通过,否则计数器加1。161.s407:获取计数器的值,如果为0,则测试通过,否则不通过,162.需要说明的是,如果计数器的值为0,说明被测系统正确地处理所有的认证请求,则测试成功;反之,说明被测系统并没有正确地处理所有的认证请求,则测试失败。163.在一种具体的实施例中,客户端、mock1和mock2均由mock服务模拟得到,以下主要围绕和被测系统紧密相关的三个子系统的mock服务展开介绍。164.客户端负责模拟多个用户携带手机号和backurl并发请求,以及模拟不同backurl接收和分析用户认证信息的正确性。客户端发请求时设置的并发数目小于等于backurl的总数目,且手机号和backurl的数字后缀相同(手机号后三位所表示的整数、backurl后一至三位所表示的整数)。165.backurl和token一致性比较的java函数是基于freemarker模板生成的,freemarker模板如代码片段一所示,生成后的backurl和认证参数一致性比较的java代码片段如代码片段二所示。166.代码片段一:[0167][0168]代码片段二:[0169][0170]根据代码片段二,backurl1收到的token为token1时,表示后缀相同,该backurl收到的认证参数正确,否则错误,全局变量total统计错误的次数。并且total的值可以通过接口获取,如果total为0,表示测试通过,否则测试失败。也可以通过接口进行复位(重新设置为0)。[0171]mock1负责模拟用户行为信息,实现用户确认的流程。[0172]mock2负责模拟接收用户认证信息请求、生成并返回认证信息,生成认证信息时需要遵循认证参数和手机号同后缀的原则,如:手机号为1********001,那么认证信息就为token1。[0173]本技术实施例提供了一种测试系统,通过本实施例对前述实施例的具体实施方法进行了详细阐述,从中可以看出,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,从而提高测试效率。[0174]在本技术的又一实施例中,参见图5,其示出了本技术实施例提供的一种mock框架50的流程示意图。如图5所示,该mock框架10用于部署虚拟设备;且该mock框架10包括接口管理器501和类加载器502;其中,[0175]接口管理器501,用于接收接口增量指令,并根据接口增量指令生成接口增量代码;[0176]类加载器502,用于加载接口增量代码,以实现对虚拟设备的接口增量处理。[0177]需要说明的是,在测试过程中,经常需要利用mock框架模拟一些无法直接调用的设备及其接口。例如,需要测试业务系统的服务端能否正常向业务系统的用户端提供认证信息,但是该业务系统的客户端可能并没有开发完毕,此时就可以利用mock框架模拟客户端及其接口,以便完成对服务端的测试。[0178]mock框架是用来开发模拟设备的软件框架。在相关技术中,根据所需要模拟的设备及其接口编写代码,然后部署得到虚拟设备。但是,如果需要对虚拟设备的接口进行增量修改,则需要重新修改代码,并利用类加载器重新加载虚拟设备,非常的不方便。[0179]请参见图5,在本技术实施例提供了一种mock框架10,包括接口管理器501和类加载器502,在通过mock框架10加载得到虚拟设备后,可以利用接口管理器501来生成接口增量代码,并由类加载器502加载接口增量代码,就可以完成对虚拟设备的接口增量处理。[0180]在这里,接口增量处理至少包括以下的其中一项:接口增加处理、接口删除处理、接口查询处理和接口修改处理。[0181]换句话说,无需对虚拟设备进行全量修改,通过接口管理器501可以完成对虚拟设备中接口的新增、删除、修改、查询等处理。[0182]需要说明的是,在前述的实施例中,用户设备、第一mock服务器和第二mock服务器均可以利用mock框架10进行部署。[0183]也就是说,本技术实施例将mock和类加载器分离,实现了增量部署。如图6所示,mock框架可以包括serclet组件(例如springcloudsercletbeanregister)、类加载器(例如restfulclassloader)、接口管理器(console)和接口集等部分。[0184]在一种具体的实施例中,springcloudsercletbeanregister用于提供servler层,以便与其他设备交互;restfulclassloader,用于加载类代码,从而生成虚拟设备的接口或者实现虚拟设备的其他功能;console,用于对接口集进行增量修改(比如增加、删除、修改和查询等);接口集可以理解为虚拟设备中有关于接口的部分。[0185]也就是说,本技术实施例使用springcloud作为开发框架,按照restful规范实施增量的功能接口,将原本集中的功能接口拆分,使其可管理、可描述等,使用接口管理器console对功能接口管理,增强了代码的可管理性,可以对接口进行增加、删除、修改和查询,接口变更后使用restfulclassloader加载使其生效。在不替换整个工程包的前提下,可以将变更的接口或者新增的接口上传到服务器,由restfulclassloader加载生效。[0186]具体地。将每组mock的接口集合打成jar包,将多个不同的jar上传到仓库中。本技术实施例中可以分别解析仓库中的jar包并且生效jar包中包含的接口,并将加载的类放入springcloud配置的tomcat中。如此,就可以便捷的增量扩展mock服务。[0187]另外,在实施本技术时,应满足以下条件:(1)jar包必须按照指定方式进行打包(package),以便于加载器确定类文件(class)的文件路径,进行class加载;(2)java文件必须满足jersey(软件框架)的restful格式;(3)打包时无需包含依赖包,所有依赖包放到lib库中。[0188]综上,本技术实施例提供了一种mock框架,从而扩展或者修改mock时,无需全量打包上传整个工程包,即mock接口可增量部署。[0189]本技术实施例提供了一种mock框架,该mock框架用于部署虚拟设备,且mock框架包括接口管理器和类加载器;其中,接口管理器,用于接收接口增量指令,并根据接口增量指令生成接口增量代码;类加载器,还用于加载接口增量代码,以实现对虚拟设备的接口增量处理。这样,在利用mock框架部署虚拟设备时,还可以通过接口管理器方便地对虚拟设备中的接口进行增量修改,减少接口增量修改的工作量。[0190]在本技术的再一实施例中,参见图7,其示出了本技术实施例提供的一种用户设备60的组成结构示意图。如图7所示,该用户设备60包括第一发送单元601、第一接收单元602和比较单元603;其中,[0191]第一发送单元601,配置为向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符;[0192]第一接收单元602,配置为基于url参数,接收服务设备返回的认证参数;[0193]比较单元603,配置为根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。[0194]在一些实施例中,url参数用于指示用户设备中的第一异步调用接口;相应地,第一接收单元602,还配置为在检测到第一异步调用接口被调用时,通过第一异步调用接口接收服务设备发送的认证参数。[0195]在一些实施例中,比较单元603,还配置为若url参数和认证参数中的目标字符一致,则确定测试结果为测试成功;若url参数和认证参数中的目标字符不一致,则确定测试结果为测试失败。[0196]在一些实施例中,当认证请求的数量为多个时,且多个认证请求处于并发状态;比较单元603,还配置为对多个认证请求中每一认证请求中各自的url参数和认证参数进行一致性比较,确定错误次数;若错误次数小于或等于预设阈值,则确定测试结果为测试成功;若错误次数大于预设阈值,则确定测试结果为测试失败。[0197]在一些实施例中,比较单元603,还配置为设置预设计数器的初始计数值为0;在多个认证请求中,将其中一个认证请求的url参数和认证参数进行一致性比较;若其中一个认证请求的url参数和认证参数中的目标字符不一致,则控制计数器进行加一操作;在对多个认证请求中每一认证请求的url参数和认证参数进行一致性比较之后,获取计数器的当前计数值;将计数器的当前计数值确定为错误次数。[0198]在一些实施例中,特征字符包括待处理参数中最后n位形成的字符组合;其中,n为正整数。[0199]可以理解地,在本实施例中,“单元”可以是部分电路、部分第一处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。[0200]集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(第一处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读第一存储器(readonlymemory,rom)、随机存取第一存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0201]因此,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,计算机程序被多个第一处理器执行时实现前述实施例中任一项的方法的步骤。[0202]基于用户设备60的组成以及计算机存储介质,参见图8,其示出了本技术实施例提供的一种用户设备60的硬件结构示意图。如图8所示,用户设备60可以包括:第一通信接口701、第一存储器702和第一处理器703;各个组件通过第一总线系统704耦合在一起。可理解,第一总线系统704用于实现这些组件之间的连接通信。第一总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为第一总线系统704。其中,第一通信接口701,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;[0203]第一存储器702,用于存储能够在第一处理器703上运行的计算机程序;[0204]第一处理器703,用于在运行计算机程序时,执行:[0205]向服务设备发送包含用户参数和统一地址定位符url参数的认证请求,且用户参数和url参数均包含目标字符;[0206]基于url参数,接收服务设备返回的认证参数;[0207]根据目标字符对url参数和认证参数进行一致性比较,确定测试结果。[0208]可以理解,本技术实施例中的第一存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,rom)、可编程只读存储器(programmablerom,prom)、可擦除可编程只读存储器(erasableprom,eprom)、电可擦除可编程只读存储器(electricallyeprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(randomaccessmemory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(staticram,sram)、动态随机存取存储器(dynamicram,dram)、同步动态随机存取存储器(synchronousdram,sdram)、双倍数据速率同步动态随机存取存储器(doubledataratesdram,ddrsdram)、增强型同步动态随机存取存储器(enhancedsdram,esdram)、同步链动态随机存取存储器(synchronouslinkdram,sldram)和直接内存总线随机存取存储器(directrambusram,drram)。本技术描述的设备和方法的第一存储器702旨在包括但不限于这些和任意其它适合类型的存储器。[0209]而第一处理器703可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器703中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器703可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器702,第一处理器703读取第一存储器702中的信息,结合其硬件完成上述方法的步骤。[0210]可以理解的是,本技术描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(applicationspecificintegratedcircuits,asic)、数字信号处理器(digitalsignalprocessing,dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(programmablelogicdevice,pld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术功能的其它电子单元或其组合中。[0211]对于软件实现,可通过执行本技术功能的模块(例如过程、函数等)来实现本技术的技术。软件代码可存储在第一存储器中并通过第一处理器执行。第一存储器可以在第一处理器中或在第一处理器外部实现。[0212]可选地,作为另一个实施例,第一处理器703还配置为在运行计算机程序时,执行前述实施例中任一项的方法的步骤。[0213]本技术实施例提供了一种用户设备,该用户设备包括第一发送单元、第一连接单元和比较单元,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,进而提高测试效率。[0214]在本技术的再一实施例中,参见图9,其示出了本技术实施例提供的一种服务设备80的组成结构示意图。如图9所示,该服务设备80包括第二接收单元801、获取单元802和第二发送单元803,其中,[0215]第二接收单元801,配置为接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符;[0216]获取单元802,配置为基于用户参数中的目标字符,获取认证参数;[0217]第二发送单元803,配置为基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。[0218]在一些实施例中,用户确认请求包括回调地址参数,且回调地址参数指示服务设备中的第二异步调用接口,获取单元802,还配置为基于用户参数,向第一mock服务器发送用户确认请求;在检测到第二异步调用接口被调用时,接收第一mock服务器返回的用户确认信息。[0219]在一些实施例中,获取单元802,还配置为基于用户参数,向第二mock服务器发送参数获取请求,以使得第二mock服务器基于用户参数中的目标字符生成认证参数;接收第二mock服务器返回的认证参数。[0220]在一些实施例中,url参数用于指示用户设备中的第一异步调用接口;第二发送单元803,还配置为基于url参数,调用第一异步调用接口;通过第一异步调用接口,向用户设备发送认证参数。[0221]在一些实施例中,认证请求的数量为多个,且多个认证请求处于并发状态。[0222]可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。[0223]集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(第一处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读第一存储器(readonlymemory,rom)、随机存取第一存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。[0224]因此,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,计算机程序被多个第一处理器执行时实现前述实施例中任一项的方法的步骤。[0225]基于服务设备80的组成以及计算机存储介质,参见图10,其示出了本技术实施例提供的服务设备80的具体硬件结构示例,如图10所示,服务设备80可以包括:第二通信接口901、第二存储器902和第二处理器903;各个组件通过第二总线系统904耦合在一起。可理解,第二总线系统904用于实现这些组件之间的连接通信。第二总线系统904除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为第二总线系统904。其中,[0226]第二通信接口901,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;[0227]第二存储器902,用于存储能够在第二处理器903上运行的计算机程序;[0228]第二处理器903,用于在运行计算机程序时,执行:[0229]接收用户设备发送的包含用户参数和url参数的认证请求,且用户参数和url参数均包含目标字符;[0230]基于用户参数中的目标字符,获取认证参数;[0231]基于url参数,向用户设备发送认证参数,以使得用户设备确定测试结果。[0232]可选地,作为另一个实施例,第二处理器903还配置为在运行计算机程序时,执行前述实施例中任一项的方法。[0233]可以理解,第二存储器902与第一存储器702的硬件功能类似,第二处理器903与第一处理器703的硬件功能类似;这里不再详述。[0234]本技术实施例提供了一种服务设备,服务设备包括第二接收单元、获取单元和第二发送单元,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,进而提高测试效率。[0235]在本技术的再一实施例中,本技术实施例还提供了一种测试系统,该测试系统至少可以包括前述实施例中任一项的用户设备60和前述实施例中任一项的服务设备80。[0236]在本技术实施例中,由于测试系统至少包括前述实施例中任一项的用户设备60和服务设备80,在异步回调接口测试中,通过对url参数和认证参数进行一致性比较,能够快速确定本次测试是否成功,进而提高测试效率。[0237]以上,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。[0238]需要说明的是,在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。[0239]上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。[0240]本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。[0241]本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。[0242]本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。[0243]以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献