功能测试方法、装置、电子设备及存储介质与流程

文档序号:32384001发布日期:2022-11-30 04:40阅读:41来源:国知局
功能测试方法、装置、电子设备及存储介质与流程

1.本公开涉及计算机技术领域,尤其涉及一种功能测试方法、装置、电子设备及存储介质。


背景技术:

2.随着云技术的日渐发展,云计算产品越来越受到关注。为了保证云计算产品的质量,需要及时对云计算产品进行功能测试。
3.相关技术中,主要通过客户服务器远程ssh(secure shell,安全外壳协议)登录目标服务器上进行功能测试。但是,在客户端服务器无法远程登录目标服务器时,则无法进行功能测试。


技术实现要素:

4.本技术提供一种功能测试方法、装置、电子设备及存储介质。
5.根据本技术实施例的第一方面,提供一种功能测试方法,应用于服务端,包括:接收客户端发送的访问请求,所述访问请求中包含系统命令;根据所述访问请求,获取所述服务端中预设目录下的测试脚本;根据所述测试脚本调用系统操作函数执行所述访问请求中的系统命令,以获取命令执行结果;将所述命令执行结果携带在访问响应中返回给所述客户端,以实现功能测试。
6.在该技术方案中,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应中返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
7.根据本技术实施例的第二方面,提供另一种功能测试方法,应用于客户端,包括:向服务端发送访问请求,其中,所述访问请求中包含系统命令;接收所述服务端返回的访问响应,其中,所述访问响应中包括:所述服务端根据预设目录下的测试脚本调用系统操作函数执行所述系统命令得到的命令执行结果;比对所述命令执行结果以及所述系统命令对应的预期命令执行结果,得到所述系统命令对应的功能测试结果。
8.根据本技术实施例的第三方面,提供一种功能测试装置,应用于服务端,包括:接收模块,用于接收客户端发送的访问请求,所述访问请求中包含系统命令;获取模块,用于根据所述访问请求,获取所述服务端中预设目录下的测试脚本;执行模块,用于根据所述测试脚本调用系统操作函数执行所述访问请求中的所述系统命令,以获取命令执行结果;响应模块,用于将所述命令执行结果携带在访问响应中返回给所述客户端,以实现功能测试。
9.根据本技术实施例的第四方面,提供另一种功能测试装置,应用于客户端,包括:发送模块,用于向服务端发送访问请求,其中,所述访问请求中包含系统命令;接收模块,用于接收所述服务端返回的访问响应,其中,所述访问响应中包括:所述服务端根据预设目录
下的测试脚本调用系统操作函数执行所述系统命令得到的命令执行结果;比对模块,用于比对所述命令执行结果以及所述系统命令对应的预期命令执行结果,得到所述系统命令对应的功能测试结果。
10.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
11.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
12.图1是根据一示例性实施例示出的一种功能测试方法的流程图;
13.图2是本技术实施例提供的一种功能测试方法的流程示意图;
14.图3是本技术实施例提供的另一种功能测试方法的流程示意图;
15.图4是本技术实施例提供的另一种功能测试方法的流程示意图;
16.图5是本技术实施例提供的另一种功能测试方法的流程示意图;
17.图6是本技术实施例提供的另一种功能测试方法的流程示意图;
18.图7是本技术实施例提供的另一种功能测试方法的流程示意图;
19.图8是根据本技术实施例的命令执行结果示意图;
20.图9是根据本技术实施例的系统命令对应的预期命令执行结果示意图;
21.图10是本公开实施例提供的一种功能测试装置的结构示意图;
22.图11是本公开实施例提供的另一种功能测试装置的结构示意图;
23.图12是用来实现本技术实施例的功能测试方法的电子设备的框图。
具体实施方式
24.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
25.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
26.目前,云计算的功能测试主要通过客户服务器远程ssh登录到目标服务器上并执行系统命令来做功能测试,ssh登录需要密码或密钥验证,且端口单一,操作比较麻烦。尤其在自动化测试中,编程语言需要使用相关模块来实现ssh登录,如python paramiko,java ganymed ssh-2,shell expect。如果网络通过vlan(virtual local area network,虚拟局域网)或vxlan(virtual extensible local area network,虚拟扩展局域网)做了隔离,则无法连接到目标服务器上。目前共有云环境的服务器通过vxlan做了隔离,传统的ssh登录验证方式已无法满足测试需求。
27.针对上述问题,本技术提供了功能测试方法、装置、电子设备及存储介质。
28.图1是根据一示例性实施例示出的一种功能测试方法的流程图。该功能测试方法应用于服务端,也就是说,本技术实施例的功能测试方法从服务端侧进行描述。
29.如图1所示,该功能测试方法包括以下步骤:
30.步骤101,接收客户端发送的访问请求,访问请求中包含系统命令。
31.在本技术实施例中,客户端发送的访问请求可以是http(hypertext transfer protocol,超文本传输协议)请求,比如,客户端可利用curl(commandline uniform resource locator,命令行统一资源定位器)命令向服务端发送http请求,服务端接收客户端发送的http请求,需要说明的是,访问请求中可包含系统命令,其中,系统命令可用于对服务端上的待测试功能进行测试。
32.步骤102,根据http请求,获取服务端中预设目录下的测试脚本。
33.接着,服务端接收到客户端发送的访问请求之后,可根据访问请求获取服务端中预设目录下的测试脚本。其中,测试脚部可包括但不限于php脚本、python(计算机编程语言)脚本。比如,服务端接收到客户端发送的http请求之后,可根据http请求获取服务端中预设目录下的php脚本或者python脚本。需要说明的是,http请求中可包含需要执行的php脚本或者python脚本字段。为了便于php脚本或者python脚本文件可直接通过访问http进行访问,php脚本或者python脚本可放置在服务端中的预设目录下,比如,php脚本或者python脚本可放置到“/var/www/html/”目录下,该目录为apache(web服务器软件)网站默认根目录。此外,php脚本或者python脚本的放置目录可通过修改apache服务的配置文件“/etc/httpd/conf/httpd.conf”进行自定义。
34.步骤103,根据测试脚本调用系统操作函数执行访问请求中的系统命令,以获取命令执行结果。
35.作为一种示例,php脚本调用系统操作函数执行http请求中的系统命令,从而获取命令执行结果。比如,http请求中的系统命令为“sudodf

h”,服务端可根据php脚本调用系统操作函数(如,函数system())执行“sudodf

h”系统命令,获取该命令执行结果。其中,需要说明的是,系统命令可用于对服务端上待测试功能进行测试。
36.步骤104,将命令执行结果携带在访问响应中返回给客户端,以实现功能测试。
37.进一步地,服务端可将命令执行结果通过访问(如http)返回至客户端,客户端可将该命令执行结果与预期的的命令结果进行比对,得到系统命令对应的测试结果。
38.综上,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测试脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
39.为了可以使服务端接收到客户端发送的访问请求,并根据测试脚本调用系统操作函数执行访问请求中的系统命令进行功能测试,如图2所示,图2是本技术实施例提供的一种功能测试方法的流程示意图。该方法可应用于服务端。在接收客户端发送的访问请求之前,可进行访问服务配置,通过配置的访问服务接收访问请求。如图2所示,该功能测试方法可以包括以下步骤:
40.步骤201,根据访问服务配置信息进行访问服务配置,以通过配置的访问服务接收
访问请求。
41.为了可以使服务端接收到客户端发送的访问请求,可选地,服务端可根据预设的访问服务配置信息进行访问服务配置,以便于服务端通过配置的访问服务接收客户端发送的访问请求。比如,服务端可根据预设的httpd(http服务器主程序)服务配置信息进行httpd服务配置,以便于服务端通过配置的httpd服务接收客户端发送的http请求。
42.步骤202,接收客户端发送的访问请求,访问请求中包含系统命令。
43.步骤203,根据访问请求,获取服务端中预设目录下的测试脚本。
44.步骤204,根据测试脚本调用系统操作函数执行访问请求中的系统命令,以获取命令执行结果。
45.步骤205,将命令执行结果携带在访问响应中返回给客户端,以实现功能测试。
46.其中,步骤202至205可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
47.综上,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测试脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
48.为了使普通用户具有权限执行系统所有命令,使功能测试更加自动化,如图3所示,图3是本技术实施例提供的另一种功能测试方法的流程示意图。该方法可应用于服务端。在根据测试脚本调用系统操作函数执行所述访问请求中的系统命令之前,可对系统权限进行配置,并根据配置的系统权限执行系统命令。如图3所示,该功能测试方法可以包括以下步骤:
49.步骤301,接收客户端发送的访问请求,访问请求中包含系统命令。
50.步骤302,根据访问请求,获取服务端中预设目录下的测试脚本。
51.步骤303,根据系统命令权限配置信息进行系统权限配置,以根据配置的系统权限执行系统命令。
52.可以理解的是,具有普通权限的用户可执行普通系统命令,具有最高权限(如,root权限)的用户可执行特殊系统命令,比如,apache用户具有普通权限,默认无法执行“sudo”命令,为了使普通权限的用户可执行特殊系统命令,可根据系统命令权限配置信息进行系统权限配置,服务端可根据配置的系统权限执行系统命令。
53.比如,为了使普通权限的用户执行“visudo”命令,可找到以下代码:
[0054]“root all=(all)
ꢀꢀꢀ
all”;
[0055]
在该代码后添加一行配置,配置如下,该配置容许apache用户通过“sudo”执行root权限命令,
[0056]“apache all=(all)nopasswd:all”;
[0057]
通过以上操作可设置apache用户无密码执行“sudo”权限。
[0058]
步骤304,根据测试脚本调用系统操作函数执行访问请求中的系统命令,以获取命令执行结果。
[0059]
步骤305,将命令执行结果携带在访问响应中返回给客户端,以实现功能测试。
[0060]
其中,步骤301-302、304-305可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0061]
综上,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测试脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
[0062]
为了使服务端更好地识别访问请求中的系统命令,如图4所示,图4是本技术实施例提供的另一种功能测试方法的流程示意图。该方法可应用于服务端。可将访问请求中的系统命令进行格式转换,获取测试脚本对应格式的系统命令,并对该测试脚本对应格式的系统命令进行执行。如图4所示,该功能测试方法可以包括以下步骤:
[0063]
步骤401,接收客户端发送的访问请求,访问请求中包含系统命令。其中,访问请求为http请求,系统命令的格式为http格式。
[0064]
步骤402,根据访问请求,获取服务端中预设目录下的测试脚本。
[0065]
步骤403,对系统命令进行格式转换,得到测试脚本对应格式的系统命令。
[0066]
可以理解的是,在系统命令的格式为http格式时,由于http格式可能会带有特殊字符,如,空格、“#”等,如果不对这些字符进行转换,服务端则无法识别http请求中的系统命令。因此,在本技术实施例中,在系统命令的格式为http格式时,可采用url编码对系统命令格式进行转换,得到测试脚本对应格式的系统命令。比如,可通过一些网站或者工具对系统命令进行url编码,如,通过访问“http://tool.oschina.net/encode?type=4”,可以进行在线url编码,或者,使用urllib模块进行url编码。
[0067]
步骤404,根据测试脚本调用系统操作函数执行测试脚本对应格式的系统命令,以获取命令执行结果。
[0068]
接着,服务端可根据测试脚本调用系统操作函数执行测试脚本对应格式的系统命令,获取命令执行结果。比如,php脚本可调用系统操作函数(如,函数system())执行php格式的系统命令“sudo%20df%20-h”,获取命令执行结果。
[0069]
步骤405,将命令执行结果携带在访问响应中返回给客户端,以实现功能测试。
[0070]
其中,步骤401-402、405可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0071]
综上,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测试脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
[0072]
在服务端通过vlan或vxlan与客户端进行隔离的情况下,为了使服务端获取到客户端发送的访问请求,如图5所示,图5是本技术实施例提供的另一种功能测试方法的流程示意图。该方法可应用于服务端。可通过第三方模块进行穿透vlan或vxlan获取到客户端发送的访问请求。如图5所示,该功能测试方法可以包括以下步骤:
[0073]
步骤501,接收客户端发送的访问请求,访问请求中包含系统命令,其中,客户端与
服务端隔离,访问请求为经过客户端上第三方模块进行封装得到的访问请求。
[0074]
在服务端通过vlan或vxlan与客户端进行隔离的情况下,为了使服务端获取到客户端发送的访问(如http)请求,可通过客户端上第三方模块(如slb_vsock模块,linux的一个内核模块)进行封装得到的访问请求,客户端将封装后的访问请求发送至服务端。其中,需要说明的是,第三方模块可穿透vlan或vxlan。
[0075]
步骤502,采用服务端上的第三方模块对访问请求进行解封装处理。
[0076]
接着,服务端在接收到客户端发送的经过第三方模块封装的访问请求,可根据服务端上的第三方模块对封装的访问请求进行解封装处理。
[0077]
步骤503,根据访问请求,获取服务端中预设目录下的测试脚本。
[0078]
步骤504,根据测试脚本调用系统操作函数执行访问请求中的系统命令,以获取命令执行结果。
[0079]
步骤505,将命令执行结果携带在访问响应中返回给客户端,以实现功能测试。
[0080]
其中,步骤503-505可以分别采用本公开的各实施例中的任一种方式实现,本公开实施例并不对此作出限定,也不再赘述。
[0081]
综上,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测试脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
[0082]
本技术实施例的功能测试方法,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测试脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
[0083]
本技术实施例提供了另一种功能测试方法,图6是本技术实施例提供的另一种功能测试方法的流程示意图。该功能测试方法可由客户端执行。
[0084]
如图6所示,该功能测试方法可以包括以下步骤:
[0085]
步骤601,向服务端发送访问请求,其中,访问请求中包含系统命令。
[0086]
在本技术实施例中,访问请求可为http请求,比如,客户端向服务端发送http请求,其中,http请求中可包括但不限于系统命令,该系统命令可为服务端上待进行功能测试的系统命令。
[0087]
步骤602,接收服务端返回的访问响应,其中,访问响应中包括:服务端根据预设目录下的测试脚本调用系统操作函数执行所述系统命令得到的命令执行结果。
[0088]
进一步地,服务端接收到客户端发送的访问请求之后,可根据预设目录下的测试脚本调用系统操作函数执行系统命令得到的命令执行结果,并将执行结果通过访问返回至客户端。
[0089]
步骤603,比对命令执行结果以及系统命令对应的预期命令执行结果,得到系统命令对应的功能测试结果。
[0090]
为了验证系统命令对应的命令执行结果的正确性,客户端在接收到服务端返回的
命令执行结果,可将服务端返回的命令执行结果与对应的预期命令执行结果进行比对,若比对结果一致,则表示系统命令对应的功能测试结果没有问题,若比对结果不一致,则表示系统命令对应的功能测试结果有问题。
[0091]
在服务端通过vlan或vxlan与客户端进行隔离的情况下,为了使客户端向服务端发送访问请求,如图7所示,图7是本技术实施例提供的另一种功能测试方法的流程示意图。该方法可应用于客户端。可通过第三方模块进行穿透vlan或vxlan将访问请求发送至服务端。如图7所示,该功能测试方法可以包括以下步骤:
[0092]
步骤701,采用客户端上的第三方模块对访问请求进行封装处理。
[0093]
在本技术实施例中,在服务端通过vlan或vxlan与客户端进行隔离的情况下,为了使客户端向服务端发送访问(如http)请求,可通过客户端上第三方模块(如slb_vsock模块,linux的一个内核模块)进行封装得到的封装后的访问请求。其中,需要说明的是,客户端上的第三方模块可穿透vlan或vxlan。
[0094]
步骤702,向服务端发送访问请求,其中,访问请求中包含系统命令。
[0095]
接着,客户端将封装后的访问请求发送至服务端。
[0096]
步骤703,接收服务端返回的访问响应,其中,访问响应中包括:服务端根据预设目录下的测试脚本调用系统操作函数执行系统命令得到的命令执行结果。
[0097]
步骤704,比对命令执行结果以及系统命令对应的预期命令执行结果,得到系统命令对应的功能测试结果。
[0098]
本技术实施例的功能测试方法,通过向服务端发送访问请求,其中,访问请求中包含系统命令;接收服务端返回的访问响应,其中,访问响应中包括:服务端根据预设目录下的测试脚本调用系统操作函数执行系统命令得到的命令执行结果;比对命令执行结果以及系统命令对应的预期命令执行结果,得到系统命令对应的功能测试结果。由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
[0099]
为了使本领域技术人员更加清楚地了解本技术,现举例进行说明。
[0100]
举例而言,比如,1、设置两台一台虚机(centos7.x),分别为虚机a和虚机b,虚机a做客户端,虚机b做服务端;
[0101]
2、虚机b通过“yum-y install httpdphp”安装php和“systemctl start httpd”安装httpd服务;
[0102]
3、创建一个php脚本exec_cmd.php,内容如下:
[0103]“《?php
[0104]
#获取查询语句,获取phpurl请求?后面的值赋值给变量cmd
[0105]
#比如curl http://10.101.104.237:80/exec_cmd.php?sudo%20df%20-h
[0106]
#sudo%20df%20-h即为获取到的查询语句
[0107]
$cmd=$_server["query_string"];
[0108]
#获取php格式的系统命令
[0109]
$cmd=urldecode($cmd);
[0110]
#使用php system函数执行linux命令
[0111]
system("{$cmd}");
[0112]
?》”;
[0113]
4、将该脚本放置到“/var/www/html/”目录下,该目录为apache网站默认根目录,放到该目录下的php脚本文件可直接通过访问http进行访问。如需自定义目录,可修改apache服务的配置文件“/etc/httpd/conf/httpd.conf”;
[0114]
5、设置apache用户无密码执行sudo权限,容许apache用户通过sudo执行root权限命令(apache用户为普通用户,默认无法执行sudo权限,如不需要执行root相关权限命令,可不做该设置);
[0115]
执行visudo命令,找到以下行:
[0116]“root all=(all) all”;
[0117]
在该行后添加一行配置,配置如下,该配置容许apache用户通过sudo执行root权限命令:
[0118]“apache all=(all)nopasswd:all”;
[0119]
通过以上操作可设置apache用户无密码执行sudo权限
[0120]
6、通过代码“systemctl start httpd”启动httpd服务器,如需开机自动,通过代码“systemctl enable httpd”可以设置开机自启动;
[0121]
7、对需要在远程执行的命令做url编码,比如,使用一些web网站或工具对所需要的命令进行url编码。通过访问“http://tool.oschina.net/encode?type=4”,可以进行在线url转码,如果用python,可以使用urllib模块进行url编码。比如,“sudodf-h”编码后的字符串为“sudo%20df%20-h”。
[0122]
8、在客户端虚机a上执行使用curl命令在服务端虚机b上执行“sudodf-h”,执行的url请求为“curl http://10.101.104.237:80/exec_cmd.php?sudo%20df%20-h”。命令执行结果如图8所示。直接在虚机b上执行的结果如图9所示,将图8中的命令执行结果与图9中的预期命令执行结果进行比对,图8中的命令执行结果与图9中的预期命令执行结果一致,表示系统命令对应的命令执行结果没有问题。
[0123]
与上述图1至图5实施例提供的功能测试方法相对应,本技术还提供一种功能测试装置,由于本公开实施例提供的功能测试装置与上述图1至图5实施例提供的功能测试方法相对应,因此在功能测试方法的实施方式也适用于本公开实施例提供的功能测试装置,在本技术实施例中不再详细描述。
[0124]
图10是本公开实施例提供的一种功能测试装置的结构示意图。
[0125]
如图10所示,该功能测试装置1000由服务端执行,该功能测试装置1000包括:接收模块1010、获取模块1020、执行模块1030、响应模块1040。
[0126]
其中,接收模块,用于接收客户端发送的访问请求,所述访问请求中包含系统命令;获取模块,用于根据访问请求,获取服务端中预设目录下的测试脚本;执行模块,用于根据测试脚本调用系统操作函数执行访问请求中的系统命令,以获取命令执行结果;响应模块,用于将命令执行结果携带在访问响应中返回给所述客户端,以实现功能测试。
[0127]
作为本技术实施例的一种可能实现方式,功能测试装置1000还包括:第一配置模块。
[0128]
其中,第一配置模块,用于根据访问服务配置信息进行访问服务配置,以通过配置的访问服务接收访问请求。
[0129]
作为本技术实施例的一种可能实现方式,功能测试装置1000还包括:第二配置模块。
[0130]
其中,第二配置模块,用于根据系统命令权限配置信息进行系统权限配置,以根据配置的系统权限执行系统命令。
[0131]
作为本技术实施例的一种可能实现方式,所述访问请求为http请求,所述系统命令的格式为http格式;执行模块,具体用于:对系统命令进行格式转换,得到测试脚本对应格式的系统命令;根据测试脚本调用系统操作函数执行测试脚本对应格式的系统命令,以获取命令执行结果。
[0132]
作为本技术实施例的一种可能实现方式,系统命令,为服务端上待进行功能测试的系统命令。
[0133]
作为本技术实施例的一种可能实现方式,客户端与服务端隔离,访问请求为经过客户端上第三方模块进行封装得到的访问请求,功能测试装置1000还包括:解封装模块。
[0134]
其中,解封装模块,用于采用服务端上的第三方模块对访问请求进行解封装处理。
[0135]
作为本技术实施例的一种可能实现方式,服务端通过虚拟局域网或者扩展虚拟局域网与所述客户端进行隔离。
[0136]
本技术实施例的功能测试装置,通过接收客户端发送的访问请求,根据该访问请求获取服务端中预设目录下的测试脚本,进而根据该测试脚本调用系统操作函数执行该访问请求中的系统命令,并将获取的命令执行结果通过访问响应返回给客户端,从而实现功能测试,由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
[0137]
与上述图6至图9实施例提供的功能测试方法相对应,本技术还提供一种功能测试装置,由于本公开实施例提供的功能测试装置与上述图6至图9实施例提供的功能测试方法相对应,因此在功能测试方法的实施方式也适用于本公开实施例提供的功能测试装置,在本技术实施例中不再详细描述。
[0138]
图11是本公开实施例提供的另一种功能测试装置的结构示意图。
[0139]
如图11所示,该功能测试装置1100由服务端执行,该功能测试装置1100包括:发送模块1110、接收模块1120、比对模块1130。
[0140]
其中,发送模块1110,用于向服务端发送访问请求,其中,访问请求中包含系统命令;接收模块1120,用于接收服务端返回的访问响应,其中,访问响应中包括:服务端根据预设目录下的测试脚本调用系统操作函数执行系统命令得到的命令执行结果;比对模块1130,用于比对命令执行结果以及系统命令对应的预期命令执行结果,得到系统命令对应的功能测试结果。
[0141]
作为本技术实施例的一种可能实现方式,系统命令用于对所述服务端上的待测试功能进行测试。
[0142]
作为本技术实施例的一种可能实现方式,客户端与所述服务端隔离,该功能测试装置1100还包括:封装模块。
[0143]
其中,封装模块,用于采用客户端上的第三方模块对访问请求进行封装处理。
[0144]
本技术实施例的功能测试装置,通过向服务端发送访问请求,其中,访问请求中包含系统命令;接收服务端返回的访问响应,其中,访问响应中包括:服务端根据预设目录下
的测试脚本调用系统操作函数执行系统命令得到的命令执行结果;比对命令执行结果以及系统命令对应的预期命令执行结果,得到系统命令对应的功能测试结果。由此,实现了不需要远程登录服务端即可执行服务端系统命令,并将命令的执行结果通过访问响应返回给客户端,实现测试功能。
[0145]
为了实现上述实施例,本技术还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0146]
图12示出了可以用来实施本技术的实施例的示例电子设备1200的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本技术的实现。
[0147]
如图12所示,设备1200包括计算单元1201,其可以根据存储在只读存储器(rom)1202中的计算机程序或者从存储单元1208加载到随机访问存储器(ram)1203中的计算机程序,来执行各种适当的动作和处理。在ram 1203中,还可存储设备1200操作所需的各种程序和数据。计算单元1201、rom 1202以及ram 1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。
[0148]
设备1200中的多个部件连接至i/o接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0149]
计算单元1201可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1201的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如功能测试方法。例如,在一些实施例中,功能测试方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由rom 1202和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到ram 1203并由计算单元1201执行时,可以执行上文描述的功能测试方法的一个或多个步骤。备选地,在其他实施例中,计算单元1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行功能测试方法。
[0150]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0151]
用于实施本技术的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0152]
在本技术的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0153]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0154]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。
[0155]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0156]
其中,需要说明的是,人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
[0157]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本技术公开的技术方案所期望的结果,本文在此不进行限制。
[0158]
上述具体实施方式,并不构成对本技术保护范围的限制。本领域技术人员应该明
白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本技术的精神和原则之内所作的修改、等同替换和改进等,均应包含在本技术保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1