1.本申请涉及计算机技术领域,尤其涉及一种应用测试方法、装置、计算机设备及存储介质。
背景技术:2.在一些场景下,例如观看视频的场景,商家可以设置一些观看权限,在用户账号满足观看权限时,才可以观看视频,以促进用户注册会员或充值等。那么,在该场景对应的程序编写完成之后,需要利用满足不同观看权限的用户账号,对该程序进行全面的测试,确定该程序中是否存在逻辑漏洞等,在测试通过之后,该程序才可以上线并投入使用。
3.传统的测试方法通常是在程序运行的过程当中,测试人员重复的通过真实的观看视频,并注册会员或充值等操作来对程序进行全面的测试,测试人员根据经验,判断出程序中是否存在异常,获得测试结果。可见,测试过程完全依靠测试人员的工作经验和专业素养,且,测试人员重复的观看视频,并注册会员或充值等操作会使得测试过程效率较低,在其他的场景下也存在类似的问题。
技术实现要素:4.本申请实施例提供一种应用测试方法、装置、计算机设备及存储介质,用于解决测试效率较低的问题。
5.第一方面,提供一种应用测试方法,包括:
6.获得针对待测试应用的测试账号信息;其中,所述待测试应用包括至少一个业务逻辑;
7.针对所述至少一个业务逻辑中待测试的目标业务逻辑,以所述测试账号信息模拟所述目标业务逻辑运行过程中的各个操作节点的用户侧操作;
8.将每个用户侧操作的操作结果配置到所述待测试应用中,并根据预先配置的每个操作节点的操作结果与目标运行结果之间的对应关系,查询所述待测试应用根据所述操作结果运行后的测试运行结果是否满足所述目标运行结果;
9.当各个测试运行结果满足对应的目标运行结果时,确定所述目标业务逻辑的测试结果为正常。
10.第二方面,提供一种应用测试装置,包括:
11.获取模块:用于获得针对待测试应用的测试账号信息;其中,所述待测试应用包括至少一个业务逻辑;
12.处理模块:用于针对所述至少一个业务逻辑中待测试的目标业务逻辑,以所述测试账号信息模拟所述目标业务逻辑运行过程中的各个操作节点的用户侧操作;
13.所述处理模块还用于:将每个用户侧操作的操作结果配置到所述待测试应用中,并根据预先配置的每个操作节点的操作结果与目标运行结果之间的对应关系,查询所述待测试应用根据所述操作结果运行后的测试运行结果是否满足所述目标运行结果;
14.所述处理模块还用于:当各个测试运行结果满足对应的目标运行结果时,确定所述目标业务逻辑的测试结果为正常。
15.可选的,所述获取模块还用于:
16.针对所述至少一个业务逻辑中待测试的目标业务逻辑,确定与所述目标业务逻辑匹配的测试账号配置策略;
17.基于所述测试账号配置策略,配置所述测试账号的测试账号信息,获得针对待测试应用的测试账号信息。
18.可选的,所述处理模块还用于:
19.在所述目标业务逻辑运行之前,根据所述目标业务逻辑的运行条件,模拟与所述运行条件匹配的用户侧操作;或者,
20.在所述目标业务逻辑运行过程中,根据操作节点,模拟所述操作节点对应的用户侧操作。
21.可选的,在所述目标业务逻辑为登录业务逻辑,所述登录业务逻辑提供登录所述待测试应用的服务时,所述处理模块还用于:
22.在所述登录业务逻辑运行过程中,若确定所述登录业务逻辑运行到登录操作节点,则根据所述登录操作节点,模拟用户侧登录操作,获得用户侧登录操作的操作结果。
23.可选的,在当前业务逻辑为支付业务逻辑,所述支付业务逻辑提供向所述待测试应用付费的服务时,所述处理模块还用于:
24.在所述支付业务逻辑运行之前,确定所述支付业务逻辑的运行条件为获取所述待测试应用提供的收费服务;
25.根据所述支付业务逻辑的运行条件,模拟与所述运行条件匹配的用户侧播放收费视频操作。
26.可选的,每个用户侧操作的操作结果预先配置了优先级,所述优先级用于表征操作结果与其他操作节点之间的关联性,优先级的大小与关联性的高低成反比,所述处理模块还用于:
27.在所述待测试应用根据所述操作结果运行后的测试运行结果不满足所述目标运行结果时,确定所述操作结果的优先级;
28.若所述优先级大于预设优先级,则继续对所述目标业务逻辑进行测试;否则,结束针对所述目标业务逻辑测试。
29.可选的,所述操作结果与其他操作节点之间的预先配置了关联关系,所述关联关系用于表征其他操作节点需要在所述待测试应用根据所述操作结果运行后的测试运行结果满足所述目标运行结果的前提下运行,所述处理模块还用于:
30.在所述待测试应用根据所述操作结果运行后的测试运行结果不满足所述目标运行结果时,确定与所述操作结果配置了关联关系的至少一个关联操作节点,并结束针对所述至少一个关联操作节点的测试。
31.第三方面,一种计算机设备,包括:
32.存储器,用于存储程序指令;
33.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面所述的方法。
34.第四方面,一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所述的方法。
35.本申请实施例中,目标业务逻辑中,各个操作节点中的用户侧操作均是通过模拟获得的,测试人员不需要执行任何操作,减少了待测试应用等待响应用户侧操作的时间,提高了测试应用的效率。且,通过查询的方式获得待测试应用的测试运行结果,并通过比对测试运行结果与目标运行结果是否匹配,确定目标业务逻辑是否正常,不需要通过其他显示设备区可视化待测试应用的测试运行结果,再由测试人员确定测试运行结果,也不需要测试人员主观地根据可视化后的测试运行结果,判断目标业务逻辑是否正常,提高了测试应用的效率。
附图说明
36.图1为本申请实施例提供的应用测试方法的一种应用场景;
37.图2为本申请实施例提供的应用测试方法的一种流程示意图;
38.图3为本申请实施例提供的应用测试装置的结构示意图一;
39.图4为本申请实施例提供的应用测试装置的结构示意图二。
具体实施方式
40.为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
41.本申请实施例涉及服务器、数据库、云技术和云安全等。
42.服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
43.数据库(database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
44.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
45.云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构
成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
46.作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructure as a service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
47.按照逻辑功能划分,在iaas(infrastructure as a service,基础设施即服务)层上可以部署paas(platform as a service,平台即服务)层,paas层之上再部署saas(software as a service,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
48.云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
49.目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,id entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。
50.存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(raid,redundant array of independent disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
51.下面对本申请实施例提供的应用测试方法的应用领域进行简单介绍。
52.在计算机技术领域中,开发人员可以根据不同的业务需求,通过编写程序,开发出不同的应用。开发出的应用在上线使用之前,还需要测试人员对应用进行多次测试,当测试人员确定应用在测试过程中,能够按照业务需求稳定运行,各个业务逻辑不存在异常时,才可以上线投入使用。当测试人员确定应用在测试过程中,还存在异常的业务逻辑,那么需要开发人员针对异常的业务逻辑进行修改等处理。
53.市面上的应用丰富多样,测试人员在对各个应用进行测试时,需要根据应用中包括的所有业务逻辑进行有针对性的测试。例如,视频应用中,用户在进入一个直播间之后,需要测试用户账号分别在已登录的情况下,以及未登录的情况下,是否可以观看直播,是否可以发送评论,是否可以赠送礼物等。又例如,外卖应用中,用户在选择食物时,需要测试用户账号在选择达到满减价格的食物的情况下,以及选择未达到满减价格的情况下,外卖价
格是否显示准确,是否是最优惠价格,还需要多少钱达到满减价格等。
54.由于现在的自动化测试中,通常仅能够针对应用中的某个函数的返回值是否与预设参考值相匹配,确定函数是否存在异常,而无法针对应用涉及的用户侧和应用侧之间交互的业务逻辑进行测试。因此,通常需要测试人员通过实际的操作应用,并通过观看应用的运行结果在用户侧的反馈,来判断应用是否存在异常。然而,人工测试的过程需要测试人员不断重复同样的操作,应用需要等待测试人员的操作,测试应用的过程效率较低。
55.例如,视频应用中,测试人员在测试用户账号已登录的情况时,需要手动登录用户账号,在进入直播间;在进入直播间之后,测试人员通过观看直播是否正常播放,确定是否可以观看直播;测试人员通过编辑评论,并点击发送按键,确定是否可以发送评论;测试人员通过打开礼物面板,选择礼物,支付相应金额,确定是否可以赠送礼物等。
56.又例如,外卖应用中,测试人员在测试优惠策略时,需要手动选择出达到满减价格的至少一个食物,通过观看显示价格,确定外卖价格是否显示准确,通过观看显示的优惠策略,计算出是否是最优惠价格;测试人员手动选择出未达到满减价格的至少一个食物,通过观看是否显示差额,确定还需要多少钱达到满减价格等。
57.为了解决测试应用的过程效率较低的问题,本申请提供一种应用测试方法。该方法针对待测试应用包括的至少一个业务逻辑中待测试的目标业务逻辑,以测试账号信息模拟目标业务逻辑运行过程中各个操作节点的用户侧操作。将用户侧每次的操作结果配置到待测试应用中,根据预先配置的每个操作节点的操作结果,与目标运行结果之间的对应关系,查询待测试应用根据用户侧操作的测试运行结果,是否满足目标运行结果。在待测试应用中的各个测试运行结果满足对应的目标运行结果时,确定目标业务逻辑的测试结果为正常。从而,通过模拟用户侧的操作,将操作结果配置到待测试应用中,待测试应用不需要等待测试人员的手动操作,大大提高了应用测试效率。且,根据预先配置的每个操作节点的操作结果,与目标运行结果之间的对应关系,查询待测试应用根据用户侧操作的测试运行结果,是否满足目标运行结果,不需要测试人员通过观看待测试应用的显示界面,再确定待测试应用是否存在异常,提高了应用测试效率。
58.下面对本申请提供的应用测试方法的应用场景进行说明。
59.请参考图1,为应用测试方法的一种应用场景。该应用场景中包括用户侧设备101、应用侧设备102和测试设备103。用户侧设备101和应用侧设备102之间可以通信,应用侧设备102和测试设备103之间可以通信,用户侧设备101和测试设备103之间可以通信。通信方式可以是有线通信,例如通过连接网线或串口线进行通信;或者,可以是无线通信,例如蓝牙等通信方式,具体不做限制。
60.用户侧设备101泛指可以响应用户操作的设备,例如,终端设备或客户端等。终端设备可以是手机、台式计算机或平板电脑等。客户端可以是安装在终端设备中的第三方应用程序或终端设备可以访问的网页等。应用侧设备102泛指可以运行待测试应用的设备,例如,终端设备或服务器等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直
接或间接地连接,本申请在此不做限制。测试设备103泛指可以对待测试应用进行测试的设备,例如,终端设备、服务器或客户端等。
61.作为一种实施例,用户侧设备101和应用侧设备102可以是同一个设备,或者,应用侧设备102和测试设备103可以是同一个设备,或者,用户侧设备101和测试设备103可以是同一个设备,或者,用户侧设备101、应用侧设备102和测试设备103可以是同一个设备,具体不做限制。本申请实施例中,以用户侧设备101、应用侧设备102和测试设备103分别为不同的设备为例进行介绍。
62.下面基于图1,对各个设备之间的交互进行示例说明:
63.测试设备103获得针对待测试应用的测试账号信息。针对待测试应用包括的至少一个业务逻辑中待测试的目标业务逻辑,以测试账号信息模拟目标业务逻辑运行过程中的各个操作节点中,用户通过用户侧设备101触发的用户侧操作。测试设备103向应用侧设备102发送模拟的用户侧设备101每次产生的操作结果,应用侧设备102接收测试设备103发送的用户侧设备101每次产生的操作结果。应用侧设备102将接收的操作结果配置到待测试应用中。
64.测试设备103查询应用侧设备102中,待测试应用根据配置的操作结果运行时的测试运行结果,测试设备103根据预先配置的每个操作节点与目标运行结果之间的对应关系,确定查询的测试运行结果是否满足目标运行结果。
65.当测试设备103确定各个测试运行结果满足对应的目标运行结果时,测试设备103确定目标业务逻辑的测试结果为正常。
66.本申请实施例中,目标业务逻辑中,各个操作节点中的用户侧操作均是通过测试设备103模拟的,测试人员不需要对用户侧设备101执行任何操作,减少了待测试应用等待响应用户侧操作的时间,提高了测试应用的效率。且,测试设备103通过查询获得待测试应用的测试运行结果,并通过确定测试运行结果是否满足目标运行结果,确定目标业务逻辑是否正常,不需要通过用户侧设备101可视化的待测试应用的测试运行结果之后,测试人员再确定测试运行结果,也不需要测试人员主观地根据可视化后的测试运行结果,判断目标业务逻辑是否正常,提高了测试应用的效率。
67.请参考图2,为应用测试方法的一种流程示意图,下面对应用测试方法的流程进行具体介绍。
68.s201,获得针对待测试应用的测试账号信息。
69.待测试应用在为各个用户提供服务时,可以通过每个用户的账号来表征每个用户,用户针对待测试应用的任何操作均可以与该用户的账号关联,体现在该账号的账号信息中,即账号信息与用户侧操作相关。例如,对于视频应用来说,用户通过操作用户侧设备101,进入一个直播间观看直播,那么与该直播相关的观看信息可以出现在该用户的账号中的历史观看记录里。用户通过操作用户侧设备101进行充值,为直播间的主播送礼物,那么该用户针对该直播间的付费记录可以出现在该用户的账号中的历史付款记录里。
70.用户的账号可以是用户在待测试应用中注册得到的,或者,可以是用户关联待测试应用与第三方应用之后,用户在第三方应用中注册的账号,或者,可以是用户关联待测试应用与用户侧设备101之后,待测试应用自动生成的等,具体不做限制。
71.用户的账号,以及账号的账号信息可以存储与应用侧设备102的数据库中,或者,
可以存储于应用侧设备102关联的第三方数据库中,或者,可以存储于应用侧设备102关联的云数据库中,实现云存储等。
72.因此,在对待测试应用进行测试时,可以通过模拟用户侧操作,获得测试账号。例如,测试设备103模拟用户侧设备101响应于用户在待测试应用中输入个人信息,并注册账号的操作,生成相应的控制指令。测试设备103向应用侧设备102发送控制指令,应用侧设备102接收来自测试设备103发送的控制指令。应用侧设备102根据控制指令,生成测试账号。应用侧设备102可以存储测试账号,以便后续以测试账号对待测试应用进行测试。
73.或者,在对待测试应用进行测试时,可以通过账号在数据库中的存储规则,生成与存储规则相匹配的测试账号。例如,测试设备103查询应用侧设备102的数据库,确定待测试应用的账号在数据库中的存储规则,如数据库中存储了与账号相关的哪些数据,每个数据的长度,每个数据中可包含的字符等规则。测试设备103在获得待测试应用的账号在数据库中的存储规则之后,可以根据存储规则,生成与存储规则匹配的测试账号。测试设备103向应用侧设备102发送生成的测试账号,应用侧设备102接收测试设备103发送的测试账号之后,存储测试账号,以便后续以测试账号对待测试应用进行测试。
74.对待测试应用进行测试的过程可以是多次循环测试的过程,或者,可以是仅进行一次测试的过程。在生成测试账号时,可以在每次对待测试应用进行测试时生成一个测试账号,或者,为了减少测试账号对应用侧设备102的内存的占用,可以仅针对待测试应用生成一个测试账号。在每次对待测试应用进行测试时,可以为测试账号配置不同的账号信息等。
75.由于待测试应用中包括至少一个业务逻辑,在对待测试应用进行测试时,可以对至少一个业务逻辑中的每个业务逻辑进行测试,实现对待测试应用的自动化闭环测试;或者,在至少一个业务逻辑中的一些业务逻辑正常时,可以仅对至少一个业务逻辑中其他的一个或多个业务逻辑进行单独测试,减少测试过程中针对正常的业务逻辑进行重复测试的过程,提高测试应用的效率。
76.在对至少一个业务逻辑中的每个业务逻辑进行自动化闭环测试时,可以根据待测试应用的初始账号信息的需求,配置测试账号的测试账号信息。例如,初始账号信息的需求为测试账号信息不包括任何记录,即表示该测试账号对应的用户,未在待测试应用中进行过任何操作。
77.在对至少一个业务逻辑中的一个业务逻辑进行单独测试时,可以针对待测试的目标业务逻辑,确定与目标业务逻辑匹配的测试账号匹配策略。基于测试账号匹配策略,配置测试账号的测试账号信息。例如,对于视频应用来说,为了测试某一视频在测试账号下次观看该视频时,是否可以以上次观看的结束时刻为本次观看的起始时刻进行播放的业务逻辑,可以确定测试账号匹配策略为配置观看该视频的观看记录,从而基于测试账号匹配策略,配置测试账号的测试账号信息中的该视频的观看记录。又例如,为了测试某一付费视频,在测试账号支付相应金额之后,是否可以完整播放,可以确定测试账号匹配策略为针对付费视频的付款记录,从而基于测试账号匹配策略,配置测试账号的测试账号信息中针对付费视频的付款记录等。
78.测试设备103可以在前文论述的获得测试账号的过程中,一同获得测试账号信息;或者,测试设备103可以在获得测试账号之后,根据账号信息在应用侧设备102中的存储规
则,生成针对账号信息的配置指令。测试设备103向应用侧设备102发送配置指令,测试设备103接收测试设备103发送的配置指令。应用侧设备102可以通过配置指令,对待测试应用的测试账号的测试账号信息进行配置,从而测试设备103可以获得针对待测试应用的测试账号信息。
79.s202,针对至少一个业务逻辑中待测试的目标业务逻辑,以测试账号信息模拟目标业务逻辑运行过程中的各个操作节点的用户侧操作。
80.在对待测试应用进行测试的过程中,至少一个业务逻辑中当前需要测试的业务逻辑可以作为目标业务逻辑。目标业务逻辑中可以包括多个需要响应的用户针对用户侧设备101的操作,也就是说,目标业务逻辑中可以包括多个操作节点,需要执行用户侧操作。那么,测试设备103可以模拟目标业务逻辑中每个操作节点的用户侧操作,从而不需要测试人员真实地通过操作用户侧设备101,来生成用户侧操作,实现前端和后端的结合测试过程。
81.在获得测试账号信息之后,可以以测试账号信息模拟目标业务逻辑运行过程中各个操作节点的用户侧操作,模拟操作节点的用户侧操作的方法有多种,下面以其中的两种为例进行介绍。
82.方法一:
83.根据目标业务逻辑的运行条件,模拟与运行条件匹配的用户侧操作。
84.待测试应用中,每个业务逻辑对应一个运行条件,在运行条件满足时,业务逻辑才可以开始运行。例如,对于视频应用来说,用户观看直播的过程中是否可以对直播进行评论,是否可以对主播进行打赏,是否关注主播等业务逻辑是需要在用户进入该直播间的条件下才可以运行。
85.因此,在开始运行目标业务逻辑之前,可以根据目标业务逻辑的运行条件,确定与运行条件匹配的用户侧操作。在确定用户侧操作之后,可以生成与用户侧操作对应的控制指令,在待测试应用接收该控制指令之后,确定用户执行了该用户侧操作,从而开始运行目标业务逻辑。例如,在支付业务逻辑运行之前,确定支付业务逻辑的运行条件为获取待测试应用提供的收费服务。根据支付业务逻辑的运行条件,模拟与运行条件匹配的用户侧播放收费视频操作。
86.例如,目标业务逻辑的运行条件是进入一个直播间,测试设备103根据目标业务逻辑的运行条件,确定用户侧操作为进入一个直播间。测试设备103根据该用户侧操作,向应用侧设备102发送执行待测试应用中,进入直播间的函数的控制指令,控制指令中还可以包括直播间标识,应用侧设备102接收测试设备发送的控制指令之后,以直播间标识为输入,执行进入直播间的函数,从而测试设备103模拟用户侧真实地点击一个直播间缩略图,进入该直播间的用户侧操作。
87.方法二:
88.根据目标业务逻辑运行过程中,根据操作节点,模拟所述操作节点对应的用户侧操作。
89.待测试应用中,每个业务逻辑在运行过程中,可能包括一个或多个操作节点,当业务逻辑运行到操作节点时,业务逻辑暂停运行,并等待响应用户侧操作。在响应于用户侧操作之后,以用户侧操作的操作结果,继续运行业务逻辑,获得操作结果对应的运行结果。也就是说,业务逻辑可以包括多个子业务逻辑,每个操作节点对应一个子业务逻辑,在响应用
户侧操作之后,才可以运行操作节点相应的子业务逻辑。例如,对于付费业务逻辑来说,付费业务逻辑中包括用户支付的操作节点,在付费业务逻辑运行到用户支付的操作节点时,付费业务逻辑暂停运行,等待响应用户侧的支付操作。在用户支付完成之后,获得用户侧的支付操作的支付结果,以该支付结果继续运行付费业务逻辑,获得该支付结果对应的付费金额是否达到金额阈值的运行结果等。
90.因此,在目标业务逻辑运行过程中,若确定目标业务逻辑运行到操作节点时,可以根据该操作节点关联的所有可能的操作结果中的一个操作结果,模拟该操作节点的用户侧操作,从而,将该用户侧操作的操作结果配置到待测试应用中之后,待测试应用可以确定用户侧已经执行了该操作结果对应的操作,因此,可以以该操作结果继续运行目标业务逻辑,即运行操作节点相应的子业务逻辑。例如,在登录业务逻辑运行过程中,若确定登录业务逻辑运行到登录操作节点,则根据登录操作节点,模拟用户侧登录操作,获得用户侧登录操作的操作结果。
91.例如,付费业务逻辑运行到用户支付的操作节点,用户支付的操作节点关联的支付金额在0~100元的范围内,因此,测试设备103可以根据0~100中的任一数值,如5,模拟用户支付的操作。从而,测试设备103将操作结果对应的操作指令发送至应用侧设备102之后,应用侧设备102将该操作结果配置到待测试应用中时,待测试应用确定用户支付了5元,并以该操作结果继续运行付费业务逻辑。
92.s203,将每个用户侧操作的操作结果配置到待测试应用中,并根据预先配置的每个操作节点的操作结果与目标运行结果之间的对应关系,查询待测试应用根据操作结果运行后的测试运行结果是否满足目标运行结果。
93.在模拟每个操作节点的用户侧操作之后,可以将用户侧操作对应的操作节点的操作结果配置到待测试应用中,以使待测试应用以该操作结果,运行目标业务逻辑,获得该操作结果对应的测试运行结果。
94.例如,在对用户进入付费直播间,是否可以观看完整直播的目标业务逻辑进行测试时,如果测试账号未对该付费直播间付费,那么不会向该测试账号播放完整直播,待测试应用等待响应用户侧的支付操作。如果待测试应用响应于用户侧的支付操作,如支付操作的支付结果为支付了5元,那么在将该支付结果配置到待测试应用中时,待测试应用以该支付结果运行目标业务逻辑,确定该支付结果是否达到金额阈值,获得该支付结果是否达到金额阈值的测试运行结果。
95.目标业务逻辑中的每个操作节点可以预先配置不同操作结果对应的目标运行结果,即各个操作节点的操作结果与目标运行结果的对应关系。例如,对于付费直播间来说,用户侧的支付操作的目标运行结果可以是支付金额大于金额阈值,和支付金额小于金额阈值。对于大于金额阈值的操作结果,对应支付金额大于金额阈值的目标运行结果;对于小于金额阈值的操作结果,对应支付金额小于金额阈值的目标运行结果。
96.预先配置的操作节点的操作结果与目标运行结果的对应关系可以是测试人员根据待测试应用的业务需求预先配置的;或者,可以是测试设备103根据待测试应用的源代码中的注释,按照预设规则生成的;或者,可以是测试设备103根据业务需求文档,按照预设规则生成的等,具体不做限制。
97.在将用户侧操作对应的操作节点的操作结果配置到待测试应用中之后,可以通过
查询待测试应用根据用户侧操作的操作结果运行之后的测试运行结果。查询待测试应用的测试运行结果的方法可以是测试设备103向应用侧设备102发送查询指令,用于查询待测试应用中的一个或多个参数的取值,应用侧设备102在接收查询指令之后,查询相应参数的取值,并向测试设备103反馈查询结果,测试设备103接收应用侧设备102反馈查询结果之后获得的。或者,可以是在待测试应用中配置操作结果时,在待测试应用中配置的监听指令,在监听指令确定待测试应用的运行结果是与操作结果对应的测试运行结果时,向测试设备103反馈操作结果对应的测试运行结果等。
98.在获得操作结果对应的测试运行结果之后,可以确定测试运行结果,是否满足预先配置的每个操作节点的操作结果与目标运行结果之间的对应关系中,操作结果对应的目标运行结果。例如,在将用户侧的支付操作的支付结果,如5元,配置到待测试应用之后,获得支付结果对应的目标业务逻辑的测试运行结果,测试运行结果可以是支付结果小于金额阈值,如10元。支付操作的目标运行结果包括支付金额大于金额阈值和支付金额小于金额阈值。大于金额阈值的支付结果,对应支付金额大于金额阈值的目标运行结果;小于金额阈值的操作结果,对应支付金额小于金额阈值的目标运行结果,因此,5元的支付金额,对应小于金额阈值的目标运行结果。在获得测试运行结果和目标运行结果之后,可以确定测试运行结果是否满足目标运行结果,即确定支付结果小于金额阈值,与支付金额小于金额阈值是否匹配。
99.s204,当各个测试运行结果满足对应的目标运行结果时,确定目标业务逻辑的测试结果为正常。
100.在确定测试运行结果是否满足目标运行结果之后,如果确定测试运行结果满足目标运行结果,那么说明目标业务逻辑中,以及该操作结果运行的业务逻辑正常。在目标业务逻辑中的各个测试运行结果均满足对应的目标运行结果时,说明目标业务逻辑中以每个操作结果运行业务逻辑均正常时,说明目标业务逻辑正常。
101.如果确定测试运行结果不满足目标运行结果,那么说明目标业务逻辑中,以及该操作结果运行的业务逻辑异常。在目标业务逻辑中,存在一个操作结果对应的业务逻辑异常时,可以结束针对目标业务逻辑的测试,生成测试报告,以便开发人员针对目标业务逻辑中的异常进行处理。
102.或者,目标业务逻辑中的每个操作节点的操作结果具有优先级,操作结果的优先级可以表示该操作结果与其他操作节点之间的关联性,优先级越高表示操作结果与其他操作节点的关联性越小,优先级越低表示操作结果与其他操作节点的关联性越大。
103.例如,对于视频应用来说,是否发送评论的操作结果,与打赏主播的操作节点之间没有关联性,无论是否发送评论都可以打赏主播,因此是否发送评论的操作结果的优先级较高。而是否对视频付费的操作结果,与观看完整视频的操作节点之间的关联性较高,只有对视频付费之后,才可以观看完整视频,不对视频付费是不能够观看完整视频的,因此是否对视频付费的操作结果的优先级较低。
104.在一个操作结果对应的子业务逻辑异常时,可以根据该异常的子业务逻辑对应的操作结果的优先级,确定该优先级是否大于预设优先级,如果该优先级大于预设优先级,那么说明该异常的子业务逻辑不会影响其他子业务逻辑的运行,可以继续对其他操作节点对应的子业务逻辑继续进行测试,在对目标业务逻辑中的各个业务逻辑均测试完之后,在根
据所有异常的业务逻辑,生成测试报告,以便开发人员一次性处理之后再进行测试,提高了测试效率。
105.或者,目标业务逻辑中的每个操作节点的操作结果与其他操作节点之间具有关联关系,操作结果与其他操作节点之间的关联关系表示其他操作节点的触发需要在该操作结果对应的业务逻辑的正常的前提下进行,因此,在一个操作结果对应的子业务逻辑异常时,可以根据该异常的子业务逻辑对应的操作结果与其他操作节点之间的关联关系,与该操作结果没有关联关系的操作节点对应的子业务逻辑继续进行测试,与该操作结果有关联关系的操作节点对应的子业务逻辑结束测试,在异常的子业务逻辑修复后,再进行测试。
106.下面以视频应用为例,对本申请实施例提供的应用测试方法进行示例介绍。
107.为了对视频应用进行自动化闭环测试,测试设备103可以根据初始账号信息的需求,配置测试账号的测试账号信息,即测试账号信息中不包括任何使用视频应用的记录。测试设备103配置了测试账号信息之后,获得针对视频应用的测试账号信息。例如,可以根据指定id确定测试账号,通过清除测试账号的测试账号信息中的各个参数的取值,如设置取值为0,完成根据初始账号信息的需求,配置测试账号的测试账号信息。在以测试账号信息对视频应用中的所有业务逻辑测试完成之后,实现对视频应用的一次自动化闭环测试,可以对视频应用循环多次自动化闭环测试,以提高测试准确性。
108.以观看付费直播间的直播为目标业务流程为例,该目标业务流程的运行条件为用户进入付费直播间,那么测试设备103根据该目标业务流程的运行条件,模拟与运行条件匹配的用户侧操作,例如,以测试账号信息模拟一个点击付费直播间缩略图的用户侧操作,生成该用户侧操作对应的配置指令,配置指令包括付费直播间标识。测试设备103将该配置指令发送至应用侧设备102,应用侧设备102在接收该配置指令之后,根据配置指令,播放付费直播间标识所对应的直播,使得视频应用响应该模拟的用户侧操作,进入付费直播间。
109.该付费直播间可以是测试设备103预先配置的用于测试的付费直播间。测试设备103通过直接向应用侧设备102发送该直播间标识,达到进入直播间的效果,相较于模拟一个点击付费直播间缩略图的配置指令,获得配置指令的效率更高,提高了测试效率。
110.在以测试账号信息进入直播间之后,测试设备103可以通过调用查询接口,查询测试账号信息针对该付费直播间的付费记录,由于测试账号信息配置为没有任何使用记录的状态,因此当前测试账号信息针对该付费直播间的没有任何付费记录。此时,测试设备103可以查询视频应用中,该付费直播间的配置参数,确定在测试账号信息中没有针对该付费直播间的付款记录时,该付费直播间的播放时长,例如,对于未付费的用户,付费直播间仅支持5分钟的观看时长,因此,测试设备103可以查询该付费直播间的配置参数的播放时长是否为5分钟。如果是5分钟,那么可以确定该子业务逻辑正常。如果不是5分钟,那么确定该子业务逻辑异常。
111.在确定该子业务逻辑正常之后,视频应用运行到支付操作节点,等待响应用户侧支付操作。视频应用中,可以通过购买不同的礼物,实现支付操作,例如礼物参数gift_id为6584表示1元的礼物,礼物参数gift_id为6585表示10元的礼物。测试设备103查询视频应用中该支付业务逻辑中的参数,确定目标运行结果,例如查询buy_info参数中的fee参数,确定金额阈值为50元,在支付金额大于50元时可以观看完整直播,在支付金额小于50元时不可以观看完整直播的目标运行结果。测试设备103可以通过查询待测试应用中的play_info
参数,在play_info取值为0时表示不可以观看完整直播,在play_info取值为1时表示可以观看完整直播。
112.测试设备103模拟购买不同金额的礼物的用户侧操作,将每个用户侧操作对应的支付金额的操作结果,配置到待测试应用中,查询待测试应用根据每个操作结果运行后的测试运行结果,例如,购买5个1元的礼物,支付金额为5元,测试设备103通过查询user_pay_info参数中的pay_status参数,确定购买5个1元的礼物的操作是否操作成功,pay_status参数取值为0表示操作成功,pay_status参数取值为1表示操作失败。
113.测试设备103通过查询pay_total参数,可以获得测试账号信息针对该付费直播间的付费总金额,例如付费总金额为5元。测试设备103通过查询待测试应用中的play_info参数,确定是否可以观看完整直播,如果确定取值为0,那么可以确定测试运行结果满足目标运行结果,如果确定取值为1,那么可以确定测试运行结果不满足目标运行结果。如果付费总金额为50元,大于金额阈值,那么在play_info参数的取值为1时,可以确定测试运行结果满足目标运行结果,在确定取值为0时,可以确定测试运行结果不满足目标运行结果。
114.如果目标运行结果为不同的支付金额区间对应不同的观看时长,那么测试设备103可以查询待测试应用中的watch_total参数,确定付费总金额对应的观看时长是否满足目标运行结果等。
115.基于同一发明构思,本申请实施例提供一种应用测试装置,该装置相当于前文论述的测试设备103,能够实现前述应用测试方法对应的功能。请参考图3,该装置包括获取模块301和处理模块302,其中:
116.获取模块301:用于获得针对待测试应用的测试账号信息;其中,待测试应用包括至少一个业务逻辑;
117.处理模块302:用于针对至少一个业务逻辑中待测试的目标业务逻辑,以测试账号信息模拟目标业务逻辑运行过程中的各个操作节点的用户侧操作;
118.处理模块302还用于:将每个用户侧操作的操作结果配置到待测试应用中,并根据预先配置的每个操作节点的操作结果与目标运行结果之间的对应关系,查询待测试应用根据操作结果运行后的测试运行结果是否满足目标运行结果;
119.处理模块302还用于:当各个测试运行结果满足对应的目标运行结果时,确定目标业务逻辑的测试结果为正常。
120.在一种可能的实施例中,获取模块301还用于:
121.针对至少一个业务逻辑中待测试的目标业务逻辑,确定与目标业务逻辑匹配的测试账号配置策略;
122.基于测试账号配置策略,配置测试账号的测试账号信息,获得针对待测试应用的测试账号信息。
123.在一种可能的实施例中,处理模块302还用于:
124.在目标业务逻辑运行之前,根据目标业务逻辑的运行条件,模拟与运行条件匹配的用户侧操作;或者,
125.在目标业务逻辑运行过程中,根据操作节点,模拟操作节点对应的用户侧操作。
126.在一种可能的实施例中,在目标业务逻辑为登录业务逻辑,登录业务逻辑提供登录待测试应用的服务时,处理模块302还用于:
127.在登录业务逻辑运行过程中,若确定登录业务逻辑运行到登录操作节点,则根据登录操作节点,模拟用户侧登录操作,获得用户侧登录操作的操作结果。
128.在一种可能的实施例中,在当前业务逻辑为支付业务逻辑,支付业务逻辑提供向待测试应用付费的服务时,处理模块302还用于:
129.在支付业务逻辑运行之前,确定支付业务逻辑的运行条件为获取待测试应用提供的收费服务;
130.根据支付业务逻辑的运行条件,模拟与运行条件匹配的用户侧播放收费视频操作。
131.在一种可能的实施例中,每个用户侧操作的操作结果预先配置了优先级,优先级用于表征操作结果与其他操作节点之间的关联性,优先级的大小与关联性的高低成反比,处理模块302还用于:
132.在待测试应用根据操作结果运行后的测试运行结果不满足目标运行结果时,确定操作结果的优先级;
133.若优先级大于预设优先级,则继续对目标业务逻辑进行测试;否则,结束针对目标业务逻辑测试。
134.在一种可能的实施例中,操作结果与其他操作节点之间的预先配置了关联关系,关联关系用于表征其他操作节点需要在待测试应用根据操作结果运行后的测试运行结果满足目标运行结果的前提下运行,处理模块302还用于:
135.在待测试应用根据操作结果运行后的测试运行结果不满足目标运行结果时,确定与操作结果配置了关联关系的至少一个关联操作节点,并结束针对至少一个关联操作节点的测试。
136.基于同一发明构思,本申请实施例提供一种计算机设备,下面对该计算机设备400进行介绍。
137.请参照图4,上述应用测试装置可以运行在计算机设备400上,应用测试程序的当前版本和历史版本以及应用测试程序对应的应用软件可以安装在计算机设备400上,该计算机设备400包括显示单元440、处理器480以及存储器420,其中,显示单元440包括显示面板441,用于显示由用户交互操作界面等。
138.在一种可能的实施例中,可以采用液晶显示器(liquid crystal display,lcd)或有机发光二极管oled(organic light
‑
emitting diode)等形式来配置显示面板441。
139.处理器480用于读取计算机程序,然后执行计算机程序定义的方法,例如处理器480读取应用测试程序或文件等,从而在该计算机设备400上运行应用测试程序,在显示单元440上显示对应的界面。处理器480可以包括一个或多个通用处理器,还可包括一个或多个dsp(digital signal processor,数字信号处理器),用于执行相关操作,以实现本申请实施例所提供的技术方案。
140.存储器420一般包括内存和外存,内存可以为随机存储器(ram),只读存储器(rom),以及高速缓存(cache)等。外存可以为硬盘、光盘、usb盘、软盘或磁带机等。存储器420用于存储计算机程序和其他数据,该计算机程序包括各客户端对应的应用程序等,其他数据可包括操作系统或应用程序被运行后产生的数据,该数据包括系统数据(例如操作系统的配置参数)和用户数据。本申请实施例中程序指令存储在存储器420中,处理器480执行
存储其中420中的程序指令,实现前文图论述的任意的一种应用测试方法。
141.上述显示单元440用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与计算机设备400的用户设置以及功能控制有关的信号输入等。具体地,本申请实施例中,该显示单元440可以包括显示面板441。显示面板441例如触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在显示面板441上或在显示面板441的操作),并根据预先设定的程式驱动相应的连接装置。
142.在一种可能的实施例中,显示面板441可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测玩家的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器480,并能接收处理器480发来的命令并加以执行。
143.其中,显示面板441可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了显示单元440,计算机设备400还可以包括输入单元430,输入单元430可以包括图形输入设备431和其他输入设备432,其中其他输入设备可以但不限于包括物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
144.除以上之外,计算机设备400还可以包括用于给其他模块供电的电源490、音频电路460、近场通信模块470和rf电路410。计算机设备400还可以包括一个或多个传感器450,例如加速度传感器、光传感器、压力传感器等。音频电路460具体包括扬声器461和麦克风462等,例如计算机设备400可以通过麦克风462采集用户的声音,进行相应的操作等。
145.作为一种实施例,处理器480的数量可以是一个或多个,处理器480和存储器420可以是耦合设置,也可以是相对独立设置。
146.作为一种实施例,图4中的处理器480可以用于实现如图3中的获取模块301和处理模块302的功能。
147.作为一种实施例,图4中的处理器480可以用于实现前文论述的测试设备103对应的功能。
148.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(rom,read
‑
only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
149.或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
150.显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。