掌桥专利:专业的专利平台
掌桥专利
首页

一种用户权限测试方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:57:35


一种用户权限测试方法、装置、电子设备及存储介质

技术领域

本申请涉及芯片测试和软硬件测试的技术领域,具体而言,涉及一种用户权限测试方法、装置、电子设备及存储介质。

背景技术

基板管理控制器(Baseboard Management Controller,BMC),是一种主板上的微控制器,BMC通常是一个安装在服务器主板上的独立芯片。可以通过BMC来监视服务器主板的温度、电压、风扇或者电源等等运作状况,也可以通过BMC做相应的调节工作,以保证主板处于健康的状态。

目前,针对BMC的用户权限进行检测都是通过人工编写命令来执行测试的,在测试过程中,很容易误删除用户或用户组,或者,人为地修改用户或者用户组的权限,这些人为地误操作存在很多安全性问题,且很容易导致测试失败。因此,通过人工编写命令来对基板管理控制器的用户权限进行检测的测试效率较差。

发明内容

本申请实施例的目的在于提供一种用户权限测试方法、装置、电子设备及存储介质,用于改善对基板管理控制器的用户权限进行检测的测试效率较差的问题。

本申请实施例提供了一种用户权限测试方法,包括:获取针对基板管理控制器BMC进行测试的关键字,并根据关键字生成测试用例;通过测试用例对应的网络应用程序接口对BMC进行测试,获得第一测试结果;通过测试用例对应的原始设备制造商命令接口对BMC进行测试,获得第二测试结果;根据第一测试结果和第二测试结果生成BMC的测试报告。在上述的实现过程中,通过关键字生成的测试用例来调用接口对基板管理控制器进行测试,有效地避免了人工编写命令来进行测试导致测试失败的问题,从而提高了对基板管理控制器的用户权限进行检测的测试效率。

可选地,在本申请实施例中,根据关键字生成测试用例,包括:根据关键字在配置文件中查找用例数据配置项;使用Python单元测试框架根据用例数据配置项生成测试用例。在上述的实现过程中,通过根据关键字在配置文件中查找用例数据配置项,并使用Python单元测试框架根据用例数据配置项生成测试用例,从而有效地利用了Python单元测试框架来提高生成测试的效率,最终提高了对基板管理控制器的用户权限进行检测的测试效率。

可选地,在本申请实施例中,配置文件还包括:测试逻辑配置项和测试内容配置项;使用Python单元测试框架根据用例数据配置项生成测试用例,包括:使用Python单元测试框架根据用例数据配置项和测试内容配置项生成多个测试用例;根据测试逻辑配置项调整多个测试用例之间的测试执行顺序。在上述的实现过程中,通过根据用例数据配置项和测试内容配置项生成多个测试用例,并根据测试逻辑配置项调整多个测试用例之间的测试执行顺序,让不懂程序的用户也能够很好地编辑和添加用例数据配置项和测试内容配置项,从而极大地增加了用户编写配置文件的灵活性,最终提高了对基板管理控制器的用户权限进行检测的测试效率。

可选地,在本申请实施例中,在通过测试用例对应的网络应用程序接口对BMC进行测试之前,还包括:初始化测试用例中的用户检测参数;通过网络应用程序接口添加用户检测参数中的测试用户组。在上述的实现过程中,通过初始化测试用例中的用户检测参数,并通过网络应用程序接口添加用户检测参数中的测试用户组,从而将初始化的用户检测参数作为共享参数,减少了重复代码或者重复配置,从而避免了人工编写命令带来的人为误操作,最终提高了对基板管理控制器的用户权限进行检测的测试效率。

可选地,在本申请实施例中,通过测试用例对应的网络应用程序接口对BMC进行测试,包括:使用预设命令访问测试用例对应的网络应用程序接口,并在测试用户组中添加第一测试用户;通过网络应用程序接口检查第一测试用户是否具有测试用例中的访问权限,并删除第一测试用户。在上述的实现过程中,通过网络应用程序接口增加第一测试用户后进行访问权限检测,并在访问权限检测之后立即删除该第一测试用户,从而避免了该第一测试用户被非法人员利用导致安全性的问题,有效地提高了通过网络应用程序接口进行访问权限检测的安全性。

可选地,在本申请实施例中,通过测试用例对应的原始设备制造商命令接口对BMC进行测试,包括:使用智能平台管理接口工具访问测试用例对应的原始设备制造商命令接口,并在测试用户组中添加第二测试用户;通过原始设备制造商命令接口检查第二测试用户是否具有测试用例中的访问权限,并删除第二测试用户。在上述的实现过程中,通过原始设备制造商命令接口增加第二测试用户后进行访问权限检测,并在访问权限检测之后立即删除该第二测试用户,从而避免了该第二测试用户被非法人员利用导致安全性的问题,有效地提高了通过原始设备制造商命令接口进行访问权限检测的安全性。

可选地,在本申请实施例中,在根据第一测试结果和第二测试结果生成BMC的测试报告之后,还包括:通过网络应用程序接口删除测试用户组。在上述的实现过程中,通过网络应用程序接口删除测试用户组,避免了该测试用户组被非法人员利用导致安全性的问题,有效地提高了进行访问权限检测的安全性。

本申请实施例还提供了一种用户权限测试装置,包括:测试用例生成模块,用于获取针对基板管理控制器BMC进行测试的关键字,并根据关键字生成测试用例;第一结果获得模块,用于通过测试用例对应的网络应用程序接口对BMC进行测试,获得第一测试结果;第二结果获得模块,用于通过测试用例对应的原始设备制造商命令接口对BMC进行测试,获得第二测试结果;测试报告生成模块,用于根据第一测试结果和第二测试结果生成BMC的测试报告。

可选地,在本申请实施例中,测试用例生成模块,包括:配置内容查找模块,用于根据关键字在配置文件中查找用例数据配置项;第一用例生成模块,用于使用Python单元测试框架根据用例数据配置项生成测试用例。

可选地,在本申请实施例中,配置文件还包括:测试逻辑配置项和测试内容配置项;第一用例生成模块,包括:第二用例生成模块,用于使用Python单元测试框架根据用例数据配置项和测试内容配置项生成多个测试用例;执行顺序调整模块,用于根据测试逻辑配置项调整多个测试用例之间的测试执行顺序。

可选地,在本申请实施例中,用户权限测试装置,还包括:检测参数初始模块,用于初始化测试用例中的用户检测参数;用户组添加模块,用于通过网络应用程序接口添加用户检测参数中的测试用户组。

可选地,在本申请实施例中,第一结果获得模块,包括:第一用户添加模块,用于使用预设命令访问测试用例对应的网络应用程序接口,并在测试用户组中添加第一测试用户;第一检查删除模块,用于通过网络应用程序接口检查第一测试用户是否具有测试用例中的访问权限,并删除第一测试用户。

可选地,在本申请实施例中,第二结果获得模块,包括:第二用户添加模块,用于使用智能平台管理接口工具访问测试用例对应的原始设备制造商命令接口,并在测试用户组中添加第二测试用户;第二检查删除模块,用于通过原始设备制造商命令接口检查第二测试用户是否具有测试用例中的访问权限,并删除第二测试用户。

可选地,在本申请实施例中,用户权限测试装置,还包括:用户组删除模块,用于通过网络应用程序接口删除测试用户组。

本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。

本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出的本申请实施例提供的用户权限测试方法的流程示意图;

图2示出的本申请实施例提供的根据关键字生成测试用例的程序架构图;

图3示出的本申请实施例提供的用户权限测试装置的结构示意图;

图4示出的本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。

在介绍本申请实施例提供的用户权限测试方法之前,先介绍本申请实施例中所涉及的一些概念:

智能平台管理接口(Intelligent Platform Management Interface,IPMI),是管理基于Intel结构的企业系统中所使用的外围设备采用的一种工业标准,用户可以利用IPMI监视服务器的物理健康特征。IPMI的核心是一个专用芯片或者控制器,具体例如基板管理控制器BMC,BMC并不依赖于服务器的处理器、基本输入输出系统(Basic Input OutputSystem,BIOS)或操作系统来工作。

智能平台管理接口工具(Intelligent Platform Management Interface tool,IPMI tool或IPMItool)是一种可用在linux操作系统下的命令行方式的IPMI平台管理工具,通过IPMItool可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能;也可以通过各个原始设备制造商(Original Equipment Manufacturer,OEM)厂商自定义的OEM命令能够不断丰富BMC板卡的功能。

单元测试(Unit Test),又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。Python单元测试(Python UnitTest)框架是一个专门用于进行Python程序单元测试的编码框架。测试用例(Test Case)是指在软件工程中,测试者根据测试用例来确定应用软件或软件系统是否正确工作的说明文档,或者理解为确定软件程序或系统是否通过测试的方法叫做测试准则。

需要说明的是,本申请实施例提供的用户权限测试方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。

在介绍本申请实施例提供的用户权限测试方法之前,先介绍该用户权限测试方法适用的应用场景,这里的应用场景包括但不限于:使用该用户权限测试方法来提高对基板管理控制器或者服务器主板进行测试的测试效率,当然也可以将该用户权限测试方法应用于其它芯片,这些其它芯片例如:PC主板或者图形处理单元(Graphics Processing Unit,GPU)等等。

请参见图1示出的本申请实施例提供的用户权限测试方法的流程示意图;该用户权限测试方法的主要思路是,通过关键字生成的测试用例来调用接口对基板管理控制器进行测试,有效地避免了人工编写命令来进行测试导致测试失败的问题,从而提高了对基板管理控制器的用户权限进行检测的测试效率;上述的用户权限测试方法可以包括:

步骤S110:获取针对基板管理控制器BMC进行测试的关键字,并根据关键字生成测试用例。

上述步骤S110中的针对基板管理控制器BMC进行测试的关键字的获取方式有很多种,包括但不限于:第一种获取方式,通过键盘或者其它输入设备获取测试人员输入的关键字;第二种获取方式,接收其它终端设备发送的关键字,将关键字存储至文件系统、数据库或移动存储设备中;第三种获取方式,获取预先存储的关键字,具体例如:从测试人员事先写入关键字的配置文件中获取关键字,或者从数据库中获取关键字,或者从移动存储设备中获取关键字;第四种获取方式,使用浏览器等软件获取互联网上的特定服务器上的关键文件,从关键文件中获取该关键字,或者使用其它应用程序从特定服务器上的关键文件中获取该关键字。

上述步骤S110中的根据关键字生成测试用例的实施方式包括:

步骤S111:电子设备根据关键字在配置文件中查找用例数据配置项。

配置文件(Configure Files),是指供程序软件读取且用户可自由配置程序软件行为的文件;该配置文件可以是测试人员预先设置的Excel格式文件,该配置文件包括:测试内容(Test Case)配置项、测试逻辑(Test Logic)配置项和用例数据(Case Data)配置项。其中,测试逻辑配置项又被称为测试步骤(Test Steps)配置项,主要用于定义多个测试用例内容之间的执行顺序;测试内容配置项用于开发人员编写定义测试的具体内容;用例数据配置项用于测试人员编写定义用户权限检测点的内容,测试内容配置项和用例数据配置项的区别将在下面介绍。

上述步骤S111的实施方式例如:上述测试内容配置项和用例数据配置项的主要区别在于,测试内容配置项是开发人员预先编写或者设置的内容项,而用例数据配置项是测试人员在测试时编写或设置的内容项,具体例如:假设开发人员编写的测试内容配置项为A、B和C,但是测试人员在测试时实际上只需要测试A和B,因此可以直接将用例数据配置项设置为A和B。电子设备可以在配置文件中查找与关键字匹配的用例数据配置项,其中,用例数据配置项可以包括:测试用例标识(Test Case IDentification,TCID)、用例数据标识(Case Data IDentification,CDID或CaseId)、运行模式(Run Mode)和运行周期(RunCycle)等等信息;此处的关键字可以根据用户需求自行输入。

步骤S112:使用Python单元测试框架根据用例数据配置项生成测试用例。

上述步骤S112的实施方式例如:上述的测试内容配置项中也包括:测试用例标识(TCID)、用例数据标识、运行模式和运行周期等等信息;因此,可以使用Python单元测试(Python UnitTest)框架对用例数据配置项和测试内容配置项进行匹配,根据匹配结果来生成多个测试用例,具体例如:判断用例数据配置项的TCID与测试内容配置项的TCID是否相同,且用例数据配置项的运行模式为Y(Y表示Yes);若是,则生成与该TCID对应的测试用例,从而为用例数据配置项中的每个TCID均生成一个测试用例,而用例数据配置项中可以包括多个TCID,因此生成了多个测试用例。然后,使用Python单元测试框架根据测试逻辑配置项调整多个测试用例之间的测试执行顺序,具体例如:使用Python单元测试框架读取测试逻辑配置项中的配置执行顺序,并根据该配置执行顺序调整多个测试用例之间的测试执行顺序。

请参见图2示出的本申请实施例提供的根据关键字生成测试用例的程序架构图;可选地,在具体测试之前,还可以创建专门用于测试的测试用户组,并使用该测试用户组中的用户来对基板管理控制器的用户权限进行测试,有效地保证了基板管理控制器的安全性,那么创建专门测试的用户组的操作可以在下面的步骤S120或者步骤S130之前执行,上述创建专门测试的用户组的具体过程可以包括:使用预先编写的初始化用户检测(InitUserCheck)函数来初始化(Initialize)测试用例中的用户检测参数,然后,使用预先编写的用户组增加(AddGroupsByCurl)函数来调用网络应用程序接口(WEB ApplicationProgramming Interface,WEB API),通过WEB API添加用户检测参数中的测试用户组;其中,WEB API又称为网络应用编程接口,是一些预先定义的函数,目的是通过网络提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

在步骤S110之后,执行步骤S120:通过测试用例对应的网络应用程序接口对BMC进行测试,获得第一测试结果。

上述步骤S120的实施方式可以包括:

步骤S121:使用预设命令访问测试用例对应的网络应用程序接口,并在测试用户组中添加第一测试用户。

其中,上述的预设命令是指能够访问网络应用程序接口(WEB API)的命令工具,可以使用的命令例如cURL命令;cURL是一个利用统一资源定位符(Uniform ResourceLocator,URL)语法在命令行下工作的文件传输工具。

上述步骤S121的实施方式例如:在测试用户组增加完成之后,还可以进行cURL检测测试;具体地,执行预先编写的第一用户增加(AddUsersByCurl)函数来调用cURL命令(或者Wget命令),通过执行cURL命令访问测试用例对应的网络应用程序接口(WEB API),并在测试用户组中添加第一测试用户。

步骤S122:通过网络应用程序接口检查第一测试用户是否具有测试用例中的访问权限,并删除第一测试用户。

上述步骤S122的实施方式例如:使用第一检测权限(CheckPermission1)函数调用cURL命令,执行cURL命令来访问网络应用程序接口,从而检查第一测试用户是否具有测试用例中的访问权限,并在确认第一测试用户具有测试用例中的访问权限之后,还可以使用第一删除用户(DelUsersByCurl)函数调用cURL命令,执行cURL命令来访问网络应用程序接口,从而通过网络应用程序接口来删除第一测试用户。

在步骤S110之后,执行步骤S130:通过测试用例对应的原始设备制造商命令接口对BMC进行测试,获得第二测试结果。

其中,上述的步骤S120和步骤S130的执行顺序可以不作限制,可以步骤S120先执行且步骤S130后执行,也可以步骤S130先执行且步骤S120后执行,当然也可以步骤S120和步骤S130并行执行,即步骤S120和步骤S130一起执行。

上述步骤S130的实施方式可以包括:

步骤S131:使用智能平台管理接口工具访问测试用例对应的原始设备制造商命令接口,并在测试用户组中添加第二测试用户。

上述步骤S131的实施方式例如:在cURL检测测试完成之后,还可以进行IPMI检测测试;具体地,执行预先编写的第二用户增加(AddUsersByIPMI)函数来调用智能平台管理接口工具(IPMI tool),通过IPMI tool访问测试用例对应的原始设备制造商命令接口,并在测试用户组中添加第二测试用户。

步骤S132:通过原始设备制造商命令接口检查第二测试用户是否具有测试用例中的访问权限,并删除第二测试用户。

上述步骤S132的实施方式例如:执行第二检测权限(CheckPermission2)函数调用原始设备制造商(OEM)命令接口,通过OEM命令接口来检查第二测试用户是否具有测试用例中的访问权限,并在确认第二测试用户具有测试用例中的访问权限之后,还可以使用第二删除用户(DelUsersByIPMI)函数调用OEM命令接口,从而通过OEM命令接口来删除第二测试用户。

在步骤S120和步骤S130之后,执行步骤S140:根据第一测试结果和第二测试结果生成BMC的测试报告。

上述步骤S140的实施方式例如:将第一测试结果和第二测试结果作为生成报告(GeneratePDF)函数的参数,然后执行生成报告(GeneratePDF)函数生成BMC的测试报告。可以理解的是,BMC的测试报告的格式包括但不限于:便携式文档格式(Portable DocumentFormat,PDF)或者超文本标记语言(Hyper Text Markup Language,HTML)等。

可选地,在根据第一测试结果和第二测试结果生成BMC的测试报告之后,还可以删除测试用户组,具体删除测试用户组的实施方式例如:使用删除用户组(DelGroupsByCurl)函数调用cURL命令,执行cURL命令来访问网络应用程序接口,从而通过网络应用程序接口删除测试用户组。

在上述的实现过程中,首先,获取针对基板管理控制器进行测试的关键字,并根据关键字生成测试用例,然后,使用测试用例分别调用网络应用程序接口和原始设备制造商命令对基板管理控制器进行测试,最后根据获得的测试结果生成测试报告。也就是说,通过关键字生成的测试用例来调用网络应用程序接口和原始设备制造商命令接口对基板管理控制器进行测试,有效地避免了人工编写命令来进行测试导致测试失败的问题,且人工编写命令难以覆盖所有的WEB API接口和OEM命令接口的检查点,而使用生成的测试用例能够覆盖所有的WEB API接口和OEM命令接口的检查点,从而提高了程序测试的覆盖率。在具体的实践过程中,还可以让生成的测试用例在夜晚或者服务器限制时进行自动化测试,减少了人为手动操作测试的时间,从而避免了人工编写命令带来的人为误操作,最终提高了对基板管理控制器的用户权限进行检测的测试效率。

请参见图3示出的本申请实施例提供的用户权限测试装置的结构示意图;本申请实施例提供了一种用户权限测试装置200,包括:

测试用例生成模块210,用于获取针对基板管理控制器BMC进行测试的关键字,并根据关键字生成测试用例。

第一结果获得模块220,用于通过测试用例对应的网络应用程序接口对BMC进行测试,获得第一测试结果。

第二结果获得模块230,用于通过测试用例对应的原始设备制造商命令接口对BMC进行测试,获得第二测试结果。

测试报告生成模块240,用于根据第一测试结果和第二测试结果生成BMC的测试报告。

可选地,在本申请实施例中,测试用例生成模块,包括:

配置内容查找模块,用于根据关键字在配置文件中查找用例数据配置项。

第一用例生成模块,用于使用Python单元测试框架根据用例数据配置项生成测试用例。

可选地,在本申请实施例中,配置文件还包括:测试逻辑配置项和测试内容配置项;第一用例生成模块,包括:

第二用例生成模块,用于使用Python单元测试框架根据用例数据配置项和测试内容配置项生成多个测试用例。

执行顺序调整模块,用于根据测试逻辑配置项调整多个测试用例之间的测试执行顺序。

可选地,在本申请实施例中,用户权限测试装置,还包括:

检测参数初始模块,用于初始化测试用例中的用户检测参数。

用户组添加模块,用于通过网络应用程序接口添加用户检测参数中的测试用户组。

可选地,在本申请实施例中,第一结果获得模块,包括:

第一用户添加模块,用于使用预设命令访问测试用例对应的网络应用程序接口,并在测试用户组中添加第一测试用户。

第一检查删除模块,用于通过网络应用程序接口检查第一测试用户是否具有测试用例中的访问权限,并删除第一测试用户。

可选地,在本申请实施例中,第二结果获得模块,包括:

第二用户添加模块,用于使用智能平台管理接口工具访问测试用例对应的原始设备制造商命令接口,并在测试用户组中添加第二测试用户。

第二检查删除模块,用于通过原始设备制造商命令接口检查第二测试用户是否具有测试用例中的访问权限,并删除第二测试用户。

可选地,在本申请实施例中,用户权限测试装置,还可以包括:

用户组删除模块,用于通过网络应用程序接口删除测试用户组。

应理解的是,该装置与上述的用户权限测试方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,OS)中的软件功能模块。

请参见图4示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。

本申请实施例还提供了一种计算机可读存储介质330,该计算机可读存储介质330上存储有计算机程序,该计算机程序被处理器310运行时执行如上的方法。

其中,计算机可读存储介质330可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。

本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。

另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。

相关技术
  • 一种用户权限测试方法、装置、电子设备及存储介质
  • 一种用户权限管理方法、装置、电子设备及存储介质
技术分类

06120113117385