文件上传方法、装置、存储介质、计算机设备与流程

文档序号:33371172发布日期:2023-03-08 02:19阅读:21来源:国知局
文件上传方法、装置、存储介质、计算机设备与流程

1.本技术涉及软件测试技术领域,尤其涉及一种文件上传方法、装置、存储介质、计算机设备。


背景技术:

2.基于浏览器/服务器架构的web应用程序实现ui(user interface,用户界面)自动化测试实践中,需要在一定的自动化测试框架通过模拟用户在浏览器端对ui界面的操作实现自动化测试。在此过程中,有时会需要进行文件上传操作,而文件上传操作在不同操作系统中所依赖的代码不同,在遇到跨操作系统测试的情形时,需要测试人员手动调整脚本代码,对测试效率影响较大。


技术实现要素:

3.本技术的目的旨在至少能解决上述的技术缺陷之一,特别是现有技术中测试效率低的技术缺陷。
4.第一方面,本技术实施例提供了一种文件上传方法,包括:
5.响应于被触发的文件上传事件,获取目标设备的操作系统类型;文件上传事件是在目标设备对ui界面进行自动化测试的过程中被触发的;
6.根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块;目标文件上传模块用于在ui界面模拟文件上传操作;
7.在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传。
8.在其中一个实施例中,在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传,包括:
9.判断目标设备是否安装有环境依赖组件;
10.若是,则调用目标文件上传模块进行文件上传;
11.若否,则安装环境依赖组件,并在安装成功后调用目标文件上传模块进行文件上传。
12.在其中一个实施例中,安装环境依赖组件,包括:
13.获取环境依赖组件的名称;
14.根据环境依赖组件的名称执行组件安装指令,以在目标设备安装环境依赖组件。
15.在其中一个实施例中,在根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块之前,还包括:
16.对于各待选操作系统类型,获取适配于各待选操作系统类型的文件上传工具库,将各文件上传工具库分别封装为公共方法,以得到多个文件上传模块。
17.在其中一个实施例中,待选操作系统类型包括windows系统和macos系统。
18.在其中一个实施例中,在目标设备基于python对ui界面进行自动化测试时,适配
于windows系统的文件上传工具库包括pyautogui或win32gui,适配于macos系统的文件上传工具库包括pyuserinput或pyperclip。
19.在其中一个实施例中,在目标设备基于python对ui界面进行自动化测试时,获取目标设备的操作系统类型,包括:
20.利用platform模块获取操作系统类型。
21.第二方面,本技术实施例提供了一种文件上传装置,包括:
22.类型获取单元,响应于被触发的文件上传事件,获取目标设备的操作系统类型;文件上传事件是在目标设备对ui界面进行自动化测试的过程中被触发的;
23.选择单元,用于根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块;目标文件上传模块用于在ui界面模拟文件上传操作;
24.调用单元,用于在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传。
25.第三方面,本技术实施例提供了一种计算机设备,包括一个或多个处理器,以及存储器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,执行上述任一实施例中的文件上传方法的步骤。
26.第四方面,本技术实施例提供了一种存储介质,存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例中的文件上传方法的步骤。
27.从以上技术方案可以看出,本技术实施例具有以下优点:
28.基于上述任一实施例,在目标设备上进行ui自动化测试时,将自动识别目标设备的操作系统类型,并确定适配于该操作系统类型的目标文件上传模块,为目标文件上传模块在目标设备上安装环境依赖组件后,即可通过目标文件上传模块实现文件上传操作。该方法使得测试人员无需再关注不同操作系统之间实现文件上传的代码差异,基于该方法,在执行测试用例的过程中目标设备将自动调用合适的文件上传模块进行文件上传,避免频繁修改代码带来的一系兼容或其他问题的产生,大大提高了测试效率,降低了测试人员的工作负担。
附图说明
29.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
30.图1为本技术实施例提供的文件上传方法的流程示意图;
31.图2为本技术实施例提供的文件上传装置的结构图;
32.图3为本技术实施例提供的计算机设备的内部结构图。
具体实施方式
33.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于
本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.由于目前的计算机设备存在多种操作系统,而脚本中的某些指令可能无法兼容多个操作系统,如运行脚本所依赖的组件仅适配于某个特定的操作系统或某些相同功能的指令在不同操作系统中结构却不同等。因此,在同一团队内部成员使用着不同操作系统的计算机设备时,团队成员之间的难以进行协同,导致测试效率低下。
35.为解决上述问题,本技术实施例提供了一种文件上传方法,请参阅图1,包括步骤s102至步骤s106。
36.s102,响应于被触发的文件上传事件,获取目标设备的操作系统类型。
37.可以理解,对ui界面的自动化测试一般是基于预设的自动化测试框架,在计算机设备上执行测试用例实现的。目标设备即为进行执行测试用例的计算机设备。文件上传事件是在目标设备对ui界面进行自动化测试的过程中被触发的。即在目标设备执行测试用例的过程中,在执行到与在ui界面进行文件上传的相关指令时,将触发文件上传事件。文件上传事件被触发即意味着需要在ui界面进行文件上传。
38.为了针对不同的操作系统类型做出相应的调整,需要先获取目标设备的操作系统类型。可以通过在目标设备的显示装置上展示输入控件,响应于用户对输入控件的操作获取到目标设备的操作系统类型。但由于自动化测试有些流程是基于对显示装置所展示的画面进行截图实现的,展示与ui界面自身无关的控件可能导致自动化测试中止。基于此,可通过在目标设备执行某些函数直接获得目标设备的操作系统类型。编写测试用例所使用的计算机语言不同,则具有相应功能的函数也将随之发生变化。例如,在目标设备基于python对ui界面进行自动化测试时,可利用python中的platform模块实现。具体而言,platform模块提供了多个可跨平台使用的函数。在目标设备中引入platform模块(这里的模块指的是python中的库,即实现相关功能的代码集合)后,使用platform模块中platform.system这一函数即可获取目标设备的操作系统类型。也可采用其他可跨平台使用的python库实现相应的功能。对于使用其他计算机语言,如java、c++等,也可引入类似的可跨平台使用的模块实现。
39.s104,根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块。
40.目标文件上传模块用于在ui界面模拟文件上传操作。自动化测试框架可直接运行在浏览器端,常见的自动化测试框架包括selenium、cypress等。目前的自动化测试框架对于页面元素的属性为input的文件上传可以直接使用自动化测试框架下通过send_keys()指令跳过文件上传的弹出框直接实现,但对于非input类型的情况而言,在触发文件上传事件时将弹出文件上传的弹出框,导致自动化测试执行阻塞。因此,本实施例中采取的方式是模仿用户实际对ui界面的操作,与ui界面的弹出框等控件进行交互的方式实现文件上传。每个操作系统类型都存在对应的文件上传模块,文件上传模块在对应的操作系统类型中可以使用,以模拟用户通过目标设备的外设(如键盘、鼠标)进行的文件上传操作。而目标文件上传模块即为多个文件上传模块中适配于目标设备的操作系统类型的文件上传模块。
41.s106,在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传。
42.可以理解,各文件上传模块可能是在其他的代码模块的基础上开发完成的,环境依赖组件即包括使用文件上传模块所需的代码模块。由于适配于各操作系统类型的文件上传模块不同,其所需的环境依赖组件也将存在差异,且安装于目标设备的环境依赖组件也应适配于目标设备的操作系统类型。在环境依赖组件安装于目标设备后,在目标设备中引入目标文件上传模块,即可顺利调用目标文件上传模块中的函数进行文件上传。
43.基于本实施例中的文件上传方法,在目标设备上进行ui自动化测试时,将自动识别目标设备的操作系统类型,并确定适配于该操作系统类型的目标文件上传模块,为目标文件上传模块在目标设备上安装环境依赖组件后,即可通过目标文件上传模块实现文件上传操作。该方法使得测试人员无需再关注不同操作系统之间实现文件上传的代码差异,基于该方法,在执行测试用例的过程中目标设备将自动调用合适的文件上传模块进行文件上传,避免频繁修改代码带来的一系兼容或其他问题的产生,大大提高了测试效率,降低了测试人员的工作负担。
44.在其中一个实施例中,在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传,包括:
45.1)判断目标设备是否安装有环境依赖组件。
46.2)若是,则调用目标文件上传模块进行文件上传。
47.3)若否,则安装环境依赖组件,并在安装成功后调用目标文件上传模块进行文件上传。
48.可以理解,目标文件上传模块与实现其他功能的模块可能存在相同的环境依赖组件,则目标设备在执行文件上传以外的工作时可能已安装了目标文件上传模块的环境依赖组件,在此情况下则无需重复安装。否则,应先在目标设备中安装目标文件上传模块的环境依赖组件。
49.在其中一个实施例中,安装环境依赖组件,包括:
50.1)获取环境依赖组件的名称。
51.2)根据环境依赖组件的名称执行组件安装指令,以在目标设备安装环境依赖组件。
52.可以理解,在常用的计算机语言中,都可通过执行组件安装指令来下载并安装组件,而需要输入组件安装指令的参数即为需要安装的组件的名称。以在目标设备基于python对ui界面进行自动化测试为例,组件安装指令可以为pip install xxx、conda install xxx等,其中xxx即为环境依赖组件的名称。
53.在其中一个实施例中,在根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块之前,还包括:对于各待选操作系统类型,获取适配于各待选操作系统类型的文件上传工具库,将各文件上传工具库分别封装为公共方法,以得到多个文件上传模块。
54.可以理解,待选操作系统类型即包括本方法所支持的所有操作系统类型。考虑到方法的简洁性,可只包括团队内成员所使用的计算机设备的操作系统类型,如团队中仅存在macos系统和windows系统的计算机设备,则待选操作系统类型则可只包括macos系统和windows系统。考虑到方法的拓展性,可将当前较为主流的操作系统类型均确定为待选操作系统类型。因此,可根据实际需要确定待选操作类型的范围。文件上传工具库即包括用于模
拟用户通过计算机设备的外设对计算机设备进行操作的各类代码。在有些实施例中,可以不对文件上传工具库进行封装,直接以文件上传工具库作为文件上传模块并调用其中的函数。但是,文件上传操作中的某个子操作是基于一定输入参数的多行代码实现的,如果不进行封装,在该子操作需要多次执行时,每次都要重复编写一遍相同的多行代码,导致工作量较大。而将每个文件上传工具库封装为一个文件上传模块后,即可将该子操作封装为文件上传模块中一个新的函数。通过将该子操作所需的输入参数输入该函数即可以一行代码代替前一种方式的多行代码,大大简化了代码,也更方便进行调用。而公共方法可被模块的外部访问和调用,使用较为方便,因此,本实施例选择公共方法这一封装形式。
55.在其中一个实施例中,待选操作系统类型包括windows系统和macos系统。在目标设备基于python对ui界面进行自动化测试时,适配于windows系统的文件上传工具库包括pyautogui或win32gui,适配于macos系统的文件上传工具库包括pyuserinput或pyperclip。以基于pyuserinput封装得到的文件上传模块为例,该文件上传模块所需的环境依赖组件包括pywin32和pyhook。
56.第二方面,本技术实施例提供了一种文件上传装置,请参阅图2,包括类型获取单元210、选择单元220以及调用单元230。类型获取单元210响应于被触发的文件上传事件,获取目标设备的操作系统类型。文件上传事件是在目标设备对ui界面进行自动化测试的过程中被触发的。选择单元220用于根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块。目标文件上传模块230用于在ui界面模拟文件上传操作。调用单元用于在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传。
57.在其中一个实施例中,调用单元230还用于判断目标设备是否安装有环境依赖组件;若是,则调用目标文件上传模块进行文件上传;若否,则安装环境依赖组件,并在安装成功后调用目标文件上传模块进行文件上传。
58.在其中一个实施例中,类型获取单元210用于获取环境依赖组件的名称;根据环境依赖组件的名称执行组件安装指令,以在目标设备安装环境依赖组件。
59.在其中一个实施例中,文件上传装置还包括封装单元。封装单元用于对于各待选操作系统类型,获取适配于各待选操作系统类型的文件上传工具库,将各文件上传工具库分别封装为公共方法,以得到多个文件上传模块。
60.关于文件上传装置的具体限定可以参见上文中对于文件上传方法的限定,在此不再赘述。上述文件上传装置中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式
61.第三方面,本技术实施例提供了一种计算机设备,包括一个或多个处理器,以及存储器,存储器中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,执行:响应于被触发的文件上传事件,获取目标设备的操作系统类型;文件上传事件是在目标设备对ui界面进行自动化测试的过程中被触发的;根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块;目标文件上传模块用于在ui界面模拟
文件上传操作;在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传。
62.在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:判断目标设备是否安装有环境依赖组件;若是,则调用目标文件上传模块进行文件上传;若否,则安装环境依赖组件,并在安装成功后调用目标文件上传模块进行文件上传。
63.在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:获取环境依赖组件的名称;根据环境依赖组件的名称执行组件安装指令,以在目标设备安装环境依赖组件。
64.在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,执行:对于各待选操作系统类型,获取适配于各待选操作系统类型的文件上传工具库,将各文件上传工具库分别封装为公共方法,以得到多个文件上传模块。
65.第四方面,本技术实施例提供了一种存储介质,存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:响应于被触发的文件上传事件,获取目标设备的操作系统类型;文件上传事件是在目标设备对ui界面进行自动化测试的过程中被触发的;根据操作系统类型,从多个文件上传模块中确定适配于操作系统类型的目标文件上传模块;目标文件上传模块用于在ui界面模拟文件上传操作;在目标设备安装有目标文件上传模块所需的环境依赖组件的情况下,调用目标文件上传模块进行文件上传。
66.在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:判断目标设备是否安装有环境依赖组件;若是,则调用目标文件上传模块进行文件上传;若否,则安装环境依赖组件,并在安装成功后调用目标文件上传模块进行文件上传。
67.在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:获取环境依赖组件的名称;根据环境依赖组件的名称执行组件安装指令,以在目标设备安装环境依赖组件。
68.在其中一个实施例中,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行:对于各待选操作系统类型,获取适配于各待选操作系统类型的文件上传工具库,将各文件上传工具库分别封装为公共方法,以得到多个文件上传模块。
69.示意性地,如图3所示,图3为本技术实施例提供的一种计算机设备的内部结构示意图,该计算机设备300可以被提供为一服务器。参照图3,计算机设备300包括处理组件302,其进一步包括一个或多个处理器,以及由存储器301所代表的存储器资源,用于存储可由处理组件302的执行的指令,例如应用程序。存储器301中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件302被配置为执行指令,以执行上述任意实施例的文本识别方法。
70.计算机设备300还可以包括一个电源组件303被配置为执行计算机设备300的电源管理,一个有线或无线网络接口304被配置为将计算机设备300连接到网络,和一个输入输出(i/o)接口305。计算机设备300可以操作基于存储在存储器301的操作系统,例如windows server tm、mac os xtm、unix tm、linux tm、free bsdtm或类似。
71.本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结
构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
72.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
73.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
74.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1