一种测试方法、装置、终端及计算机可读存储介质与流程

文档序号:31520717发布日期:2022-09-14 12:45阅读:50来源:国知局
一种测试方法、装置、终端及计算机可读存储介质与流程

1.本技术涉及测试技术领域,具体而言,涉及一种测试方法、装置、终端及计算机可读存储介质。


背景技术:

2.产品测试过程中,测试人员需要对产品进行全方位的测试和评估,包括功能测试、性能测试、易用性测试、可靠性测试等。测试人员需要对待测项目进行遍历,编写对应的测试用例,人工执行对应的测试用例,过程较为繁琐。


技术实现要素:

3.本技术实施例的目的在于提供一种测试方法、装置、终端及计算机可读存储介质,以解决上述技术问题。
4.为实现上述目的,本技术提供的技术方案包括:
5.第一方面,提供一种测试方法,应用于终端,所述方法包括:
6.接收针对待测产品的测试指令;所述测试指令中包含当前需要进行自动化测试的待测任务的任务标识信息;
7.根据所述任务标识信息确定对应的自动化测试脚本;
8.执行所述自动化测试脚本。
9.在上述的实施方式中,可以执行自动化测试脚本自动实现测试,相对于现有的必须以手动方式进行测试的方案而言,可以提升测试效率、减少测试人员的工作量。
10.结合第一方面,在一些可选的实施方式中,在所述根据所述任务标识信息确定对应的自动化测试脚本之前,所述方法还包括:
11.获取用于实现所述待测任务的测试用例;
12.获取用于实现所述测试用例的自动化测试脚本,并将所述自动化测试脚本存储在本地。
13.在上述的实施方式中,生成自动化测试脚本存储在本地,以便于后续对该待测产品进行测试时可以直接执行该自动化测试脚本。
14.结合第一方面,在一些可选的实施方式中,所述获取用于实现所述待测任务的测试用例,包括:
15.从服务器中获取用于实现所述待测任务的测试用例;所述服务器中存储有多个测试用例;每一所述测试用例为对对应的测试路径进行转化生成的用例,所述测试路径为根据对应的待测任务生成的路径,每一所述测试路径由至少两个验证节点以及连接在所述验证节点之间的箭头组成,所述验证节点表征测试验证,所述箭头表征从一个验证节点到另一验证节点需要执行的测试动作。
16.在上述的实施方式中,可以从服务器中直接获取对应的测试用例,无需终端侧的测试人员手动编写用例,可以提升测试人员的工作效率。
17.结合第一方面,在一些可选的实施方式中,所述测试路径为利用graphwalker生成的闭环路径。
18.在上述的实施方式中,利用graphwalker生成闭环的测试路径,在这个过程中,有利于操作人员梳理测试流程,使生成的测试用例可靠性更高。
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.图5为本技术实施例提供的测试指令的示意图;
41.图6为本技术实施例提供的测试结果示意图;
42.图7为本技术实施例提供的测试装置的结构示意图;
43.图8为本技术实施例提供的终端的结构示意图。
具体实施方式
44.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.需要说明的是,在本发明实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
46.在本发明的描述中,需要理解的是,步骤前的数字标号并不表示执行步骤的前后顺序,仅用于方便描述本发明及区别每一步骤,因此不能理解为对本发明的限制。
47.下面,通过具体实施例对本技术的技术方案进行详细说明。
48.需要说明的是,下面的具体实施例可以互相结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
49.图1为本技术实施例提供的一种测试方法的流程示意图,该方法可以应用于终端,终端可以是手机、电脑、平板电脑等任意具备人机交互能力的设备。该方法可以包括如下步骤:
50.s11:接收针对待测产品的测试指令;测试指令中包含当前需要进行自动化测试的待测任务的任务标识信息。
51.s12:根据任务标识信息确定对应的自动化测试脚本。
52.s13:执行自动化测试脚本。
53.下面对上述步骤的具体过程进行详细阐述。
54.本技术实施例中的待测产品可以是浏览器、或者浏览器中的某一页面、或者可以是app,也可以是具备特定功能的硬件设备,例如,集成有嵌入式系统的硬件设备、漏洞扫描器等等。
55.在步骤s11中,测试人员可以根据实际测试需求向终端发送针对待测产品的测试指令,测试指令中包含需要进行自动化测试的待测任务的任务标识信息,通过该任务标识信息,终端确定出对应的自动化测试脚本,通过执行对应的自动化测试脚本完成待测任务。
56.可以理解的是,步骤s12中的自动化测试脚本可以是预先就存储在终端本地的脚本,也可以是在接收到测试指令后生成的。
57.示例性的,任务标识信息可以是脚本名称,终端通过该脚本名称可以查找到对应的自动化测试脚本。为便于测试人员辨识,任务标识信息也可以是任务名称,终端本地可以将任务名称与对应的自动化测试脚本进行关联存储。
58.在步骤s12之前,终端可以获取用于实现该待测任务的测试用例,然后根据该测试用例生成用于实现该测试用例的自动化测试脚本,并将该自动化测试脚本存储在本地。
59.示例性的,该测试用例可以是由测试人员编写的,测试人员可以将根据待测任务编写的对应的测试用例下发至该终端。当然,该测试用例也可以是自动生成的用例,比如,是对对应的测试路径进行转化自动生成的用例,测试路径为根据对应的待测任务生成的路径,每一测试路径由至少两个验证节点以及连接在验证节点之间的箭头组成,验证节点表征测试验证,箭头表征从一个验证节点到另一验证节点需要执行的测试动作。
60.本技术实施例中,可以从服务器中获取用于实现待测任务的测试用例。可选的,终端可以在确定本地不存在用于实现该待测任务的测试用例时,再从服务器中获取对应的测试用例。该服务器中可以存储有多个测试用例。可以理解的是,服务器中存储的测试用例可以是终端按照上述方式生成的用例,这里不再赘述,终端在通过上述方式生成测试用例后,将测试用例上传至服务器中。
61.应当说明的是,本技术实施例中的服务器可以对待测任务进行统一分配,也即在执行上述步骤s11之前,服务器可以接收测试目标,然后对该测试目标进行分解,得到针对该待测产品的多个待测任务,针对每一待测任务,确定执行该待测任务的终端,当服务器中存储有实现各测试任务的测试用例时,服务器可以将各待测任务对应的测试用例发送给对应的终端,以供各终端生成并存储对应的自动化测试脚本。当某一测试任务对应的测试用例暂未存储在服务器中时,服务器可以将该待测任务发送给对应的终端,由该终端生成对应的测试用例,并根据该测试用例生成对应的自动化测试脚本,并将生成的测试用例上传至该服务器,这样,当下一次需要由另一终端执行该待测任务时,服务器可以将该待测任务对应的测试用例发送给另一终端,由另一终端生成对应的自动化测试脚本。
62.在一种可选的实施方式中,终端在生成该自动化测试脚本后,可以自动运行该自动化测试脚本,完成被分配的待测任务。
63.在另外一种可选的实施方式中,服务器还用于将各待测任务分发至各对应的终端中。比如,可以由服务器根据分解的各待测任务,分别生成携带有对应任务标识信息的测试指令发送给相应的终端,也即,在本实施方式中,上述步骤s11中的测试指令由服务器生成。或者,服务器可以将分解的各待测任务分发至各对应的终端,终端可以根据该待测任务对测试人员进行提示,以供测试人员根据提示下发对应的测试指令。
64.服务器可以根据各终端当前已经累积的待测任务的数量为各终端分配经分解得到的新的待测任务,优先将该新的待测任务分配至当前累积的待测任务数量最少的终端上。服务器也可以确定实现该新的待测任务的测试用例是由哪一个终端发送的,由于该终端本地存储有对应的测试用例或者对应的自动化测试脚本,所以可以优先将该新的待测任务分配至向服务器发送对应测试用例的终端进行测试,可以进一步提升测试效率。
65.还应当说明的是,本技术实施例中的各终端可以与服务器处于同一局域网中。
66.在上述实施方式中,通过服务器实现了测试用例和待测任务的自动分配。
67.本技术实施例中的测试用例可以是基于graphwalker实现的。graphwalker是一个
基于mbt的自动化测试工具,可以用它读取fsm模型、json模型。下面对生成测试用例的过程进行详细阐述,可以理解的是,服务器中存储的各测试用例可以是由同一终端上传的,也可以是由不同的终端上传,在实际应用中,执行测试任务的终端与生成对应测试用例的终端也可能不是同一终端,请参见图2所示,生成测试用例的方法可以包括如下步骤:
68.s21:针对待测任务确定测试路径。
69.应当说明的是,这里的待测任务可以是上述服务器为该终端分配的任务,也可以是测试人员下发的待测任务。本技术实施例中可以利用graphwalker绘制测试模型图,也即,测试路径可以以测试模型图的形式体现,具体的可以参见图3所示。从初始的验证节点开始,最终回到初始的验证节点代表一条测试用例结束。
70.s22:将测试路径转化为目标语言格式的测试用例。
71.本技术实施例中的测试路径可以是json数据格式的模型路径,在步骤s22中,可以使用python对json模型路径进行解析,采用一个验证节点到下一验证节点的方式进行遍历,通过判断下一验证节点是否指向初始的验证节点判断一条测试路径是否结束,解析出的每条不重复的路径都是测试用的测试用例
72.s23:将测试用例上传至服务器。
73.在步骤s23中,可以通过testrail接口将测试用例上传至服务器。
74.在本技术实施例中,终端在生成测试用例之后,可以根据该测试用例获取用于实现该测试用例的自动化测试脚本。
75.在一种可选的实施方式中,可以根据该测试用例和预设的运行脚本生成对应的自动化测试脚本。
76.在另一种可选的实施方式中,可以由开发人员根据测试用例编写对应的自动化测试脚本,此时终端接收并存储该自动化测试脚本即可。
77.终端在获取得到自动化测试脚本后,可以将该自动化测试脚本发送至服务器进行存储。应当说明的是,服务器可以将该自动化测试脚本、测试用例以及对应可实现的待测任务进行关联。当某一终端需要执行该待测任务,且该终端本地未存储对应的自动化测试脚本时,若服务器中存储有对应的自动化测试脚本,服务器可以将该自动化测试脚本发送给该终端,提升了测试效率,服务器中的测试用例和自动化测试脚本都可以得到最大程度的使用。
78.本技术实施例中执行自动化测试脚本的过程就是针对待测任务进行任务测试的过程。对于步骤s13,可以包括如下子步骤:
79.自动生成用于实现待测任务的页面操作指令;
80.根据页面操作指令执行对应的测试操作。
81.应当说明的是,在本技术实施例中,可以利用webdriver和selenium控制浏览器生成页面操作指令,比如生成“点击页面”操作指令,无需人工点击页面中对应的按钮,提升了测试效率。
82.本技术实施例中的待测产品可以是扫描器,扫描器可以对目标网络中的主机进行扫描,比如,可以进行漏洞扫描,测试指令中还可以包括目标主机的地址信息;在步骤s11之后,还可以将该地址信息发送给扫描器,以供终端在执行自动化测试脚本的过程中,通过扫描器与对应的目标主机进行交互完成任务测试。
83.为便于理解本技术实施例提供的测试方法,下面以对扫描器进行测试为例,对测试方法进行进一步的介绍。
84.当需要对扫描器进行测试时,可以使用graphwalker绘制测试模型图。假设该测试模型图如图3所示。遍历测试模型图,生成json模型路径数据,使用python进行路径数据解析生成测试用例。请参见图4所示,可以通过调用服务器的接口,将生成的测试用例全部添加到testrail上。对于在实现方式上具有固定步骤的测试用例,可以生成对应的自动化测试脚本。在接收到对应的测试指令后,可以调用对应的自动化测试脚本,实现自动化测试。测试指令中可以包含与扫描器进行交互的目标主机的地址信息以及待测任务的任务名称。本示例中可以对扫描器的交互功能进行测试,由于扫描器的主要交互功能是基于主机实现的,所以可以对扫描器与主机进行交互的交互功能进行测试。所以,请参见图5所示,待测任务可以为“系统扫描任务”和“网页扫描任务”,终端在执行自动化测试脚本,完成对待测任务的测试后,可以将测试结果展示在显示页面,以对测试人员进行提示,具体的,可以参见图6所示。
85.本技术实施例还提供一种测试装置,应用于终端,请参见图7所示,该测试装置包括:
86.接收模块701,用于接收针对待测产品的测试指令;测试指令中包含当前需要进行自动化测试的待测任务的任务标识信息。
87.确定模块702,用于根据任务标识信息确定对应的自动化测试脚本。
88.执行模块703,用于执行自动化测试脚本。
89.在示例性的实施例中,该测试装置还包括获取模块,获取模块用于在根据任务标识信息确定对应的自动化测试脚本之前,获取用于实现待测任务的测试用例,获取用于实现测试用例的自动化测试脚本,并将自动化测试脚本存储在本地。
90.在示例性的实施例中,获取模块用于从服务器中获取用于实现待测任务的测试用例;服务器中存储有多个测试用例;每一测试用例为对对应的测试路径进行转化生成的用例,测试路径为根据对应的待测任务生成的路径,每一测试路径由至少两个验证节点以及连接在验证节点之间的箭头组成,验证节点表征测试验证,箭头表征从一个验证节点到另一验证节点需要执行的测试动作。
91.在示例性的实施例中,该测试装置还包括第一发送模块,第一发送模块用于将自动化测试脚本发送至服务器进行存储。
92.在示例性的实施例中,执行模块703用于自动生成用于实现所述待测任务的页面操作指令,根据页面操作指令执行对应的测试操作。
93.在示例性的实施例中,待测产品为用于对目标网络中的主机进行扫描的扫描器;测试指令中还包括目标主机的地址信息;该测试装置还包括第二发送模块,第二发送模块用于在接收针对待测产品的测试指令之后,将地址信息发送给扫描器,以供终端在执行自动化测试脚本的过程中,通过扫描器与对应的目标主机进行交互完成待测任务。
94.基于同一发明构思,本技术实施例还提供一种终端,请参见图8所示,包括处理器和存储器,存储器中存储有计算机程序,处理器执行计算机程序,以实现上述任意一种测试方法。
95.终端还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配
置。
96.处理器801可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述处理器801可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
97.存储器802包括但不限于随机存取存储器(ram),只读存储器(rom),可编程只读存储器(prom),可擦除只读存储器(eprom),电可擦除只读存储器(eeprom)等。本实施例中,存储器802存储了执行代码的编译方法所需要的程序。
98.处理器801和存储器802通过通信总线连接,总线可以是isa总线、pci总线或eisa总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
99.本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、u盘、安全数码(sd)卡、多媒体(mmc)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述各实施例中方法的各步骤,在此不再赘述。
100.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
101.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。
102.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1