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.保存调试的未完成所述软件测试脚本或被测试软件;
37.更新自动化测试案例的软件测试脚本或被测试软件的测试数据;
38.依据更新的所述软件测试脚本或测试数据进行测试。
39.本发明实施例还公开一种软件自动化测试装置,所述装置包括:
40.测试标签模块,用于根据被测试软件的测试项目,生成软件测试的测试标签;
41.测试案例模块,用于依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,所述软件测试脚本为对被测试软件的测试数据进行测试的函数;
42.测试数据模块,用于依据所述测试标签,获取测试标签对应的数据库中的测试数据。
43.本发明实施例还公开一种电子设备,该设备包括一个或者多个处理器和存储器,存储器,用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,使得所述处理器实现本发明各实施例提供的软件自动测试方法。
44.本发明实施例还公开一种存储有计算机程序的计算机可读存储介质,该计算机程序被执行时实现本发明各实施例提供的软件自动测试方法。
45.在本技术实施例中,软件自动化测试通过获取软件测试的测试标签;依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,获取测试标签对应的数据库中的测试数据;依据所述软件自动化测试案例进行所述测试数据的测试。本发明对测试人员的技术要求低,便于使用和维护,具有自带测试报告功能,能够直接应用于特定场景的券商软件测试,复用率高。
附图说明
46.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本技术的其它特征、目的和优点将会变得更明显:
47.图1为一个实施例中软件自动化测试方法的应用场景图;
48.图2为一个实施例中软件自动化测试方法的流程示意图;
49.图3为另一个实施例中软件自动化测试方法的流程示意图;
50.图4为又一个实施例中软件自动化测试方法的流程示意图;
51.图5为一个实施例中软件自动化测试装置的结构框图;
52.图6为一个实施例中电子设备的内部结构图之一;
53.图7为一个实施例中电子设备的内部结构图之二。
具体实施方式
54.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
55.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
56.本技术提供的软件自动化测试方法,可以应用于如图1所示的应用环境中。该软件自动化测试方法应用于软件自动化测试装置中。该软件自动化测试装置可以配置在终端102或者服务器104,或者部分配置在终端102,部分配置在服务器104中,由终端102与服务器104交互完成软件自动化测试方法。
57.其中,终端102与服务器104可以通过网络进行通信。
58.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,终端102需具有获取软件测试脚本的功能,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
59.在一个实施例中,如图2所示,提供了一种软件自动化测试方法。本实施例主要以该方法应用于图1中的终端102来举例说明。
60.对于对软件自动化测试,现有技术使用的技术方案一般包括两种,一是采用requests库框架结构,requests是用python语言编写的,采用的是apache2 licensed开源协议的http库;二是采用data base library库,也是采用python语言编写的库,两种方法都不能解决如下问题:一是不能直接运用于案例流程,复用率低,由于券商项目本身产生的数据差异,导致基础库所提供的方法大部分情况下无法直接运用,需再进行一次关键字封装或自定义库的方式才能使用;二是部分场景功能无法有效支持,python本身自带的库对一些特定场景无法有效支撑,例如对小数位的向上取整无法实现,导致在案例的结果验证过程中无法实现,需要通过新增关键字或者扩展自定义库来实现。
61.因此,本技术提供一种新的软件自动化测试的方法,如图2所述,所述方法包括:
62.步骤201,获取软件测试的测试标签,所述测试标签用于定义被测试软件的测试项目。
63.具体的,在一次软件自动化测试的任务中,首先要设定需要测试软件的哪些功能,
这些功能被选中以后,即生成了软件测试的测试标签,具体的,测试标签就是确定具体的被测试软件的测试项目。
64.在一个实施例中,所述获取软件测试的测试标签包括:
65.获取软件自动化测试时需要测试的软件功能;
66.具体的,在一个软件自动化测试的项目中,首先需要了解软件测试的功能,比如,在券商软件的自动化测试中,需要测试的项目可能包括:出入金项目、订单项目、账户项目、资产项目等,在每一个项目中,都有其需要测试的功能,比如在出入金项目中包括的功能可能包括:月出入金统计功能、月利润统计功能、月利润率统计功能、月支出统计功能、月收入统计功能,等等,每一个项目,或者每一个项目的每一个功能,都可能存储在一个数据库中,也可能存在多个数据库中,在测试具体功能时,可以采集一定的测试数据,进行功能状况的测试。
67.根据所述需要测试的软件功能获取软件测试功能项目信息。
68.具体的,根据测试的功能即可汇总得到测试项目信息。
69.依据软件测试功能项目信息获取软件测试项目目录。
70.具体的,在测试标签上,使用测试目录的形式来表示软件测试的测试项目信息。
71.依据所述软件测试项目目录,将所述软件测试的项目目录关联对应的软件测试脚本和测试数据。
72.具体的,对于每一个待测试软件的测试功能进行测试时,需要对项目目录关联相应的软件测试脚本和测试数据,这样才能获取测试数据和测试数据的软件测试脚本,实现对软件的测试。
73.步骤202,依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,所述软件测试脚本为对被测试软件的测试数据进行测试的函数。
74.生成软件测试的脚本文件是需要提前完成相关软件测试的脚本程序,具体的,本技术使用python作为辅助语言编写相关函数,实现数据库的连接,并实现对数据库的增、删、改、查等业务进行软件自动化测试的方法,核心是编写python脚本文件,定义对数据库业务进行增、删、改、查的函数,再将python脚本文件作为一个library添加至软件自动化测试案例中。软件自动化测试案例可以直接调用这个用户关键字,据以调用编写的函数,连接指定的数据库,通过输入对应的参数值就可以实现对连接的数据库做增、删、改、查等业务操作。如果需要导入第三方脚本文件,需要首先导入要调用的第三方库代码模块;然后,定义一些对数据库做增、删、改、查等操作的函数,例如,需要连接指定数据库的函数,sql语句,执行结果成功与否的反馈方法等。
75.具体的,如图3所示,所述获取软件测试脚本,生成应用于被测试软件的测试项目的软件自动化测试案例包括以下步骤:
76.步骤301,依据所述测试标签,获取一个或多个软件测试脚本。
77.通过测试标签的软件测试项目目录,即可获取被测试软件的测试功能所需要的软件测试脚本,具体的调用一个还是多个软件测试脚本,根据被测试软件的测试功能的需要而定。
78.步骤302,依据获取的一个或多个所述软件测试脚本,设置软件自动化测试案例的测试点,所述测试点用于测试获取的一个数据库内的一个软件功能的测试数据。
79.测试点是为了完成一个数据库中的一个软件功能的测试,在实际执行时,存在着这样的情况,一个软件功能只需要一个软件测试脚本即可以完成,而完成整个软件测试也只需要调用一个数据库,那么这个测试点就是完成这个数据库中的一个测试数据的测试,同样的,如果一个数据库中需要调用多个测试数据,那么每一个测试数据需要一个测试点进行测试,对于一个测试点来说,其至少是一个软件测试脚本,也可能是多个软件测试脚本,因为一个测试数据一般完成一个软件功能的测试,即使一个测试数据不能完成一个软件功能的测试,那么一个测试数据也需要调用一个测试点,而一个测试点必然至少包括一个软件测试脚本。
80.步骤303,依据所述测试点,设置软件自动化测试案例的测试套,所述测试套用于测试获取的一个人数据库内的全部软件功能的测试数据。
81.具体的,在实际执行中,可能存在如下情况,比如一个被测试软件的软件功能需要从一个数据库中调取被测数据,而这些被测数据包括多个,如果还采用测试点,每一个测试数据都用一个测试点进行测试,那么测试的效率将会非常低,因此,通过将一个数据库的所有测试数据一次性由一个测试套进行测试的方式则会极大的提升测试效率,这个测试套包含着这个数据库调用的被测数据对应的所有测试点。
82.步骤304,依据一个或多个所述测试点,和/或,一个或多个所述测试套,生成软件自动化测试案例。
83.具体的,一个被测试软件的测试功能需要调用的数据库的测试数据可能存在如下情况:一是只需要调用一个数据库的一个测试数据,那么完成该软件自动化测试只需要一个测试点,这个软件自动化测试案例只包含一个测试点;二是需要调用多个数据库,但是每一个数据库仅需要一个测试数据,那么完成该软件自动化测试只需要多个测试点,这个软件自动化测试案例只包含多个测试点;三是需要调用一个数据库,但是一个数据库需要调用多个测试数据,那么完成该软件自动化测试只需要一个测试套,这个软件自动化测试案例只包含一个测试套;四是需要调用多个数据库,但是每一个数据库都需要调用多个测试数据,那么完成该软件自动化测试需要多个测试套,这个软件自动化测试案例只包含多个测试套;五是需要调用多个数据库,有的数据库只需要调用一个测试数据,有的数据库需要调用多个测试数据,那么完成该软件自动化测试需要多个测试套、多个测试点,这个软件自动化测试案例包含多个测试套和多个测试点。
84.步骤203,依据所述测试标签,获取测试标签对应的数据库中的测试数据。
85.所有的测试数据均在数据库中保存,具体的,这些数据库一般按照具体的功能类型保存相应的测试软件,比如:出入金数据库,则保存着相应的出入金测试数据;订单数据库,则保存着相应的资产测试数据;账户数据库,则保存着相应的账户测试数据;资产数据库,则保存着相应的资产测试数据,等等。
86.具体的,如图4所示,所述依据所述测试标签,获取测试标签对应的数据库中的测试数据包括:
87.步骤401,依据所述测试标签,获取需要调用的数据库的测试数据;
88.测试标签设置完成之后,通过测试标签列表,即可获取被测试软件的测试功能所需要调用的数据库的测试数据,具体的调用哪些数据库以及数据库中的哪些测试数据,根据被测试软件的测试功能的需要而定。
89.步骤402,将一个数据库的一个软件功能的测试数据设定为第一数据。
90.具体的,根据被测试软件的测试项目的不同,可能从一个数据库中调取一个测试数据,也可能是多个测试数据,也可能从多个数据库中分别调取一个测试数据,也可能是从多个数据库中分别调取多个测试数据,因此,为了提高效率,也为了与软件自动化测试案例中的测试点相对应,将一个数据库中的一个软件功能的测试数据设定为第一数据,第一数据的作用就是将这个第一数据指定到一个测试点进行测试。
91.步骤403,依据所述第一数据,将一个数据库的多个第一数据合并为第二数据。
92.具体的,对于一个数据库中获取多个测试数据进行测试,为了提高测试效率,将该数据库中提取的所有测试数据组合成为第二数据,第二数据包括该数据库中调用的所有第一数据,第二数据是为了与软件自动化测试案例中的测试套相对应,对于一个数据库中的所有被调用测试数据,只需要通过第二数据统一发送至对应的测试套即可完成相应测试。特别的,对于一个数据库如果只调用一个测试数据,形成第一数据,那么该第一数据不需要合并成第二数据,因为这种情况下,将第一数据直接发送至相应的测试点进行测试的效率更高。
93.步骤404,依据所述第一数据和/或第二数据,作为软件自动化测试的测试数据。
94.具体的,在实际进行软件自动化测试时,可能需要第一数据,也可能需要第二数据,也可能第一数据、第二数据都需要,因此,要根据具体的软件自动化测试项目,获取测试数据,并根据测试数据的特点生成第一数据和/或第二数据,特别的,软件自动化测试的测试数据包括第一数据、第二数据中的至少一个。
95.步骤204,依据所述软件自动化测试案例进行所述测试数据的测试。
96.具体的,依据所述第一数据,由所述测试点完成第一数据的测试;依据所述第二数据,由所述测试套完成所述第二数据的测试。通过第一数据、第二数据和测试点、测试套这样的测试方式,能够极大的提高测试效率,比如,对于一个数据库的一个软件功能的测试数据的测试,直接由测试点即可完成测试,对于一个数据库的多个第一数合并为第二数据,通过测试套直接对第二数据进行测试,减少了测试的次数和测试步骤,而且,直接打包测试的方式减少了测试本身的时间,比如,如果每一个第一数据都需要用测试点测试,那么一个数据库有多少个第一数据,就需要进行几次测试,如果形成第二数据,那么可以通过测试套一次即可完成对整个数据库的所有第一数据的测试。
97.在一个实施例中,本技术的软件自动化测试方法还包括:
98.依据所述测试数据的测试结果,生成测试报告;
99.依据所述测试报告,调试未完成的所述软件测试脚本或被测试软件,直至完成测试标签中所有测试项目的测试。
100.具体的,自动化测试的测试结果包含了哪些项目测试通过,哪些项目测试未通过,对于未通过测试的项目要分析是软件测试脚本的问题还是被测试软件自身的问题。对软件自动化测试报告中的问题进行排除后,需要将修正后的软件测试脚本和/或被测试软件程序进行保存,如果再出现问题,再次进行调试,直至所有的被测试软件的测试项目测试完毕。
101.在一个实施例中,本技术的软件自动化测试方法还包括:
102.保存调试的未完成所述软件测试脚本或被测试软件;
103.更新自动化测试案例的软件测试脚本或被测试软件的测试数据;
104.依据更新的所述软件测试脚本或测试数据进行测试。
105.具体的,在对未完成所述软件测试脚本或被测试软件进行调试后,需要将调试后的软件测试脚本或被测试软件进行更新保存,并使用更新后的软件测试脚本或被测试软件对应的测试数据进行测试,如果更新后的软件测试脚本或被测试软件通过了测试,则保存更新后的软件测试脚本或被测试软件,如果未通过测试,则继续调试,在完成所有项目的测试以后,软件自动化测试案例中保存的是最终的软件测试脚本,数据库中保存的是完成调试的被测试软件的测试数据。
106.需要特别说明的是,本技术所述的软件自动化测试的方法是在功能自动化测试框架robot framework下执行。
107.功能自动化测试框架robot framework是一款python编写的功能自动化测试框架,具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。
108.应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
109.在一个实施例中,如图5所示,提供了一种软件自动化测试装置,包括:测试标签模块、测试案例模块、测试数据模块。
110.测试标签模块,用于根据被测试软件的测试项目,生成软件测试的测试标签;
111.测试案例模块,用于依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,所述软件测试脚本为对被测试软件的测试数据进行测试的函数;
112.测试数据模块,用于依据所述测试标签,获取测试标签对应的数据库中的测试数据。
113.具体的,测试数据模块是功能自动化测试框架robot framework中负责与被测试软件的具体数据库连接的端口,如果测试案例模块要完成某一软件测试,需要调用相应被测试软件的数据库中的测试数据,则需要数据获取模块对数据库中的相应测试数据进行调取,然后将测试数据交付给测试案例模块,由测试案例模块完成相应的软件功能测试,数据获取模块一般包括至少一个数据端口,每一个数据端口可以对应于被测试软件的一个数据库,如果数据获取模块包括多个数据端口,那么,有些数据端口也可以是空闲的,即在对被测试软件的功能进行测试时,该数据端口不用调取对应的数据库的测试数据,有些数据端口也可以是空置的,空置的数据端口表示未连接任何数据库,在需要添加新的数据库时,可以将新的数据库连接该空置数据端口,如果被测试软件有多个数据库,数据获取模块可以设置数据库的数量一致的数据端口,每一个数据库对应一个数据端口。
114.具体的,测试案例模块完成对软件自动化测试以后,一般会生成测试报告,测试报告为对被测试软件设定测试项目的测试结果,包括各个测试项目的测试完成情况,如果有
的项目因软硬件故障未完成测试,则提示测试未完成;对于完成测试的项目,用户可以认为该项目的功能是可靠的,如果未完成测试,则需要用户对软件进行相应的修改,或者对测试案例模块中的脚本文件进行修改,或者对硬件设备进行检查,确保脚本文件是可靠的,修改后的软件或者脚本文件进行保存后再次执行测试,如果测试通过,则更新修改后的软件或脚本文件。
115.在一个实施例中,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图6所示。该电子设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储应用程序及软件自动化测试的数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件自动化测试方法。
116.在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图7所示。该电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、近场通信(nfc)或其他技术实现。该计算机程序被处理器执行时以实现软件自动化测试方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
117.本领域技术人员可以理解,图6、图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
118.在一个实施例中,本技术提供的软件自动化测试装置可以实现为一种计算机程序的形式,计算机程序可在如图6或图7所示的电子设备上运行。电子设备的存储器中可存储组成该软件自动化测试装置的各个程序模块,比如,图5所示的测试标签模块、测试案例模块、测试数据模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本技术各个实施例的软件自动化测试方法中的步骤。
119.例如,图6所示的电子设备可以通过5所示的软件自动化测试装置的测试标签模块根据被测试软件的测试项目,生成软件测试的测试标签;电子设备可以通过测试案例模块依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,所述软件测试脚本为对被测试软件的测试数据进行测试的函数;电子设备可以通过测试数据模块依据所述测试标签,获取测试标签对应的数据库中的测试数据。
120.例如,图7所示的电子设备可以通过5所示的软件自动化测试装置的测试标签模块根据被测试软件的测试项目,生成软件测试的测试标签;电子设备可以通过测试案例模块依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,所述软件测试脚本为对被测试软件的测试数据进行测试的函数;电子设备可以通过测试数据模
块依据所述测试标签,获取测试标签对应的数据库中的测试数据。
121.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,比如静态随机存取存储器(static random access memory,sram)和动态随机存取存储器(dynamic random access memory,dram)等。
122.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
123.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种软件自动化测试方法,其特征在于,所述方法包括:获取软件测试的测试标签,所述测试标签用于定义被测试软件的测试项目;依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,所述软件测试脚本为对被测试软件的测试数据进行测试的函数;依据所述测试标签,获取测试标签对应的数据库中的测试数据;依据所述软件自动化测试案例进行所述测试数据的测试。2.根据权利要求1所述的方法,其特征在于,所述获取软件测试的测试标签包括:获取软件自动化测试时需要测试的软件功能;根据所述需要测试的软件功能获取软件测试功能项目信息;依据软件测试功能项目信息获取软件测试项目目录;依据所述软件测试项目目录,将所述软件测试的项目目录关联对应的软件测试脚本和测试数据。3.根据权利要求1所述的方法,其特征在于,所述获取软件测试脚本,生成应用于被测试软件的测试项目的软件自动化测试案例包括:依据所述测试标签,获取一个或多个软件测试脚本;依据获取的一个或多个所述软件测试脚本,设置软件自动化测试案例的测试点,所述测试点用于测试获取的一个数据库内的一个软件功能的测试数据;依据所述测试点,设置软件自动化测试案例的测试套,所述测试套用于测试获取的一个人数据库内的全部软件功能的测试数据;依据一个或多个所述测试点,和/或,一个或多个所述测试套,生成软件自动化测试案例。4.根据权利要求3所述的方法,其特征在于,所述依据所述测试标签,获取测试标签对应的数据库中的测试数据包括:依据所述测试标签,获取需要调用的数据库的测试数据;将一个数据库的一个软件功能的测试数据设定为第一数据;依据所述第一数据,将一个数据库的多个第一数据合并为第二数据;依据所述第一数据和/或第二数据,作为软件自动化测试的测试数据。5.根据权利要求4所述的方法,其特征在于,所述依据所述软件自动化测试案例对所述测试数据进行测试包括:依据所述第一数据,由所述测试点完成第一数据的测试;依据所述第二数据,由所述测试套完成所述第二数据的测试。6.根据权利要求1所述的方法,其特征在于,还包括:依据所述测试数据的测试结果,生成测试报告;依据所述测试报告,调试未完成的所述软件测试脚本或被测试软件,直至完成测试标签中所有测试项目的测试。7.根据权利要求6所述的方法,其特征在于,还包括:保存调试的未完成所述软件测试脚本或被测试软件;更新自动化测试案例的软件测试脚本或被测试软件的测试数据;依据更新的所述软件测试脚本或测试数据进行测试。
8.一种软件自动化测试装置,其特征在于,所述装置包括:测试标签模块,用于根据被测试软件的测试项目,生成软件测试的测试标签;测试案例模块,用于依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例,所述软件测试脚本为对被测试软件的测试数据进行测试的函数;测试数据模块,用于依据所述测试标签,获取测试标签对应的数据库中的测试数据。9.一种电子设备,其特征在于,所述设备包括一个或者多个处理器和存储器,存储器,用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,使得所述处理器实现如权利要求1至7中任一项所述的方法。10.一种存储有计算机程序的计算机可读存储介质,其特征在于,该计算机程序被执行时实现如权利要求1至7中任一项所述的方法。
技术总结
本申请公开了一种软件自动化测试方法、装置、电子设备和存储介质。所述方法包括:获取软件测试的测试标签;依据所述测试标签,获取软件测试脚本,生成应用于测试标签的软件自动化测试案例;依据所述测试标签,获取测试标签对应的数据库中的测试数据;依据所述软件自动化测试案例进行所述测试数据的测试。在本申请实施例中,通过将软件测试脚本加载到软件自动化测试案例中,调用被测试软件的相应数据库的测试数据,实现对软件不同功能的自动化测试,对测试人员的技术要求低,便于使用和维护,能够直接应用于特定场景的券商软件测试,复用率高。高。高。
技术研发人员:王安全 李杰
受保护的技术使用者:湖南微步信息科技有限责任公司
技术研发日:2020.11.23
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-17781.html