CN104699618B - 指定用户对高权限进程自动化测试的方法及装置 - Google Patents
指定用户对高权限进程自动化测试的方法及装置 Download PDFInfo
- Publication number
- CN104699618B CN104699618B CN201510148578.6A CN201510148578A CN104699618B CN 104699618 B CN104699618 B CN 104699618B CN 201510148578 A CN201510148578 A CN 201510148578A CN 104699618 B CN104699618 B CN 104699618B
- Authority
- CN
- China
- Prior art keywords
- user
- test
- authority
- test case
- specified user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 250
- 238000000034 method Methods 0.000 title claims abstract description 147
- 238000004088 simulation Methods 0.000 claims description 44
- 230000002452 interceptive effect Effects 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000007792 addition Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种指定用户对高权限进程自动化测试的方法及装置,高权限进程要求的用户测试权限高于指定用户的测试权限,其中方法包括:在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限;执行高权限进程的测试用例;判断测试用例对应的系统接口调用是否需要指定用户执行;若是,则模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。本方案不仅简单有效地解决了测试过程中需要高权限的问题,而且还避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种指定用户对高权限进程自动化测试的方法及装置。
背景技术
进程的测试是指在预设条件下对系统或程序进行测试,从而评估系统或程序的运行结果。目前,大部分的自动化测试进程都是Administrator管理员用户执行的,因为Administrator管理员用户拥有较高的权限,这样可以保证在测试进程执行的过程中有足够的权限去操作常用的系统资源。其中,会有一些自动化测试要求在特殊的测试条件下进行,比如,测试逻辑不仅要求User普通用户去执行自动化测试,并且还要求测试进程具有比当前用户要高的权限,如System用户的权限,这样的测试条件就会导致很多常规的测试代码因为权限问题而执行失败。
人们在面对上述存在的问题时,通常采用以下两种解决方法:
第一种解决方法是:通过User普通用户执行手动测试操作。但是由于第一种解决方法采用的是手动测试,所以存在着对人力、时间或硬件资源的浪费以及测试效率低的问题。
在Windows系统中,一般的User普通用户都默认开启UAC(User Account Control,用户帐户控制),UAC要求用户在执行可能会影响计算机运行的操作或执行更改影响其他用户的设置的操作之前,提供权限或管理员密码,从而帮助防止了恶意软件和间谍软件在未经许可的情况下在计算机上进行安装或对计算机进行更改,提高了系统安全。因此第二种解决方法是:通过关闭UAC来解决部分权限问题,但是第二种解决方法会造成测试环境与最终用户环境不一致,而且,即使关闭了UAC,对于当前用户权限低于测试进程权限的情况,自动化程序与测试进程之间的一些如窗口发送消息,进程内存读写等的交互操作仍然无法完成。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种指定用户对高权限进程自动化测试的方法及装置。
根据本发明的一个方面,提供了一种指定用户对高权限进程自动化测试的方法,高权限进程要求的用户测试权限高于指定用户的测试权限,该方法包括:
在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限;
执行高权限进程的测试用例;
判断测试用例对应的系统接口调用是否需要指定用户执行;若是,则模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。
进一步,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限进一步包括:将提权工具复制到系统目录下,运行命令提示符,接收指定用户输入的命令语句,触发运行提权工具;命令语句包括高权限进程的名称。
进一步,触发运行提权工具进一步包括:根据对话框中显示消息的点击命令,触发运行提权工具;对话框为接收命令语句后弹出的交互式服务对话框。
进一步,模拟指定用户进一步包括:
调用win32security.LogonUser系统接口,获取模拟指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
进一步,该指定用户对高权限进程自动化测试的方法还包括:判断测试用例是否执行完成;若否,则继续执行测试用例。
进一步,测试用例对应的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。
根据本发明的另一方面,提供了一种指定用户对高权限进程自动化测试的装置,高权限进程要求的用户测试权限高于指定用户的测试权限,该装置包括:
提权模块,适于在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限;
用例执行模块,适于执行高权限进程的测试用例;
第一判断模块,适于判断测试用例对应的系统接口调用是否需要指定用户执行;
模拟调用模块,适于在第一判断模块判断出测试用例对应的系统接口调用需要指定用户执行的情况下,模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。
进一步,提权模块进一步适于:将提权工具复制到系统目录下,运行命令提示符,接收指定用户输入的命令语句,触发运行提权工具;命令语句包括高权限进程的名称。
进一步,提权模块还适于:根据对话框中显示消息的点击命令,触发运行提权工具;对话框为接收命令语句后弹出的交互式服务对话框。
进一步,模拟调用模块进一步适于:
调用win32security.LogonUser系统接口,获取模拟指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
进一步,该指定用户对高权限进程自动化测试的装置还包括:第二判断模块,适于判断测试用例是否执行完成;若否,则触发用例执行模块继续执行测试用例。
进一步,测试用例对应的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。
根据本发明提供的技术方案,在高权限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限,并在执行高权限进程的测试用例过程中,通过模拟的指定用户调用需要指定用户执行的测试用例对应的系统接口。本发明提供的技术方案不仅简单有效地解决了测试过程中需要高权限的问题,而且还避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的指定用户对高权限进程自动化测试的方法的流程示意图;
图2示出了根据本发明另一个实施例的指定用户对高权限进程自动化测试的方法的流程示意图;
图3示出了根据本发明一个实施例的指定用户对高权限进程自动化测试的装置的功能结构示意图;
图4示出了根据本发明另一个实施例的指定用户对高权限进程自动化测试的装置的功能结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的指定用户对高权限进程自动化测试的方法的流程示意图,其中,高权限进程要求的用户测试权限高于指定用户的测试权限,如图1所示,该方法包括如下步骤:
步骤S100,在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限。
例如,提权工具可以为Pstools工具包中的PsExec.exe工具。PsExec.exe工具可以在Windows Vista、NT 4.0、Win2K、Windows XP和Server 2003(包括64位版本的Windows)系统上运行。使用PsExec.exe工具不仅可以执行其他系统上的进程,并且可以获得与控制台应用程序相当的完全交互性。将PsExec.exe工具作为提权工具可以简单有效地获取所要求的用户测试权限,具体方法包括:将PsExec.exe工具复制到系统目录下,例如system32系统目录下,使高权限进程具有其所要求的用户测试权限。
另外,当高权限进程所要求的用户测试权限为System用户权限时,还可以通过以sc指令为基础的脚本创建一个交互式服务,其中所有的服务都是由System用户所创建和运行的,从而使高权限进程具有其所要求的用户测试权限。
步骤S101,执行高权限进程的测试用例。
在使高权限进程具有其所要求的用户测试权限之后,开始执行高权限进程的测试用例。
步骤S102,判断测试用例对应的系统接口调用是否需要指定用户执行,若是,执行步骤S103。
由于一些特殊的测试条件不仅要求用户测试权限高于指定用户的测试权限,而且测试逻辑还会要求指定用户去执行自动化测试,所以为了成功执行测试用例对应的系统接口调用,需要对测试用例对应的系统接口调用是否需要指定用户执行进行判断。
例如,测试用例对应的系统接口可以包括以下系统接口中的一个或多个:RegOpenKey打开注册表、RegOpenKeyEx打开注册表、RegCreateKey添加注册表项、RegCreateKeyEx添加注册表项、RegQueryValue读取注册表项值、RegQueryValueEx读取注册表项值、RegSetValue设置注册表项值、RegSetValueEx设置注册表项值、RegDeleteKey删除注册表项、RegDeleteKeyEx删除注册表项、RegDeleteValue删除注册表值、RegCloseKey关闭注册表、SHGetDesktopFolder得到桌面目录、SHGetFolderPath获取系统文件夹路径以及SHGetSpecialFolderLocation获取系统特殊路径。
如果经判断得到测试用例对应的系统接口调用需要指定用户执行,则执行步骤S103。
步骤S103,模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。
经判断得到测试用例对应的系统接口调用需要指定用户执行,则进行模拟指定用户,并通过模拟的指定用户调用测试用例对应的系统接口,以确保需要指定用户执行的测试用例对应的系统接口调用成功。
根据本实施例提供的指定用户对高权限进程自动化测试的方法,在高权限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限,并在执行高权限进程的测试用例的过程中,通过模拟的指定用户调用需要指定用户执行的测试用例对应的系统接口。本发明提供的技术方案解决了指定用户对高权限进程自动化测试的问题,不仅简单有效地使高权限进程具有其所要求的用户测试权限,而且还避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
图2示出了根据本发明另一个实施例的指定用户对高权限进程自动化测试的方法的流程示意图,其中,高权限进程要求的用户测试权限高于指定用户的测试权限,如图2所示,该方法开始后包括如下步骤:
步骤S200,在以指定用户登录系统后,将提权工具复制到系统目录下。
将PsExec.exe工具作为提权工具可以简单有效地获取所要求的用户测试权限。具体地,在以指定用户登录系统后,可将PsExec.exe工具作为提权工具,需要将PsExec.exe工具复制到系统目录下,如system32系统目录下。
步骤S201,运行命令提示符,接收指定用户输入的命令语句,触发运行提权工具。
具体地,将PsExec.exe工具复制到系统目录下之后,运行CMD命令提示符,接收指定用户输入的命令语句,其中,该命令语句包括高权限进程的名称。
例如,需要运行的高权限进程是:D:\run.bat,则所接收的指定用户输入的命令语句为psexec-i-d-s/accepteula D:\run.bat;又如,需要运行的高权限进程是:1.exe,则所接收的指定用户输入的命令语句为psexec-i-d-s/accepteula 1.exe。
在接收指定用户输入的命令语句之后,需要触发运行提权工具。触发运行提权工具的具体方法可包括:根据对话框中显示消息的点击命令,触发运行提权工具,从而使高权限进程具有其所要求的用户测试权限。其中,对话框为接收命令语句后弹出的交互式服务对话框。
步骤S202,执行高权限进程的测试用例。
经过步骤S201之后,高权限进程已经具有其所要求的用户测试权限,则开始执行高权限进程的测试用例。
步骤S203,判断测试用例对应的系统接口调用是否需要指定用户执行;若是,则执行步骤S204;若否,则执行步骤S207。
由于在一些特殊的测试条件下,测试逻辑还会要求指定用户去执行自动化测试,所以为了成功执行测试用例对应的系统接口调用,需要对测试用例对应的系统接口调用是否需要指定用户执行进行判断。
在前一个实施例中,已列举了测试用例对应的系统接口包括的内容,此处不再赘述。
如果经判断得到测试用例对应的系统接口调用需要指定用户执行,则执行步骤S204;如果经判断得到测试用例对应的系统接口调用不需要指定用户执行,则执行步骤S207。
步骤S204,调用win32security.LogonUser系统接口,获取模拟指定用户的令牌。
令牌代表了指定用户所拥有的权限,或者也可以通过执行用于获取令牌的进程获取模拟指定用户的令牌。
步骤S205,模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。
win32security.ImpersonateLoggedOnUser系统接口的作用是让当前进程模拟一个指定用户。在获取模拟指定用户的令牌之后,通过调用win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户,然后通过模拟的指定用户调用测试用例对应的系统接口。在模拟指定用户完成上述测试用例对应的系统接口的调用后,为了保证正常调用其他的测试用例对应的系统接口,需要调用RevertToSelf系统接口来取消所模拟的指定用户,即待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
步骤S206,判断测试用例是否执行完成;若是,则该方法结束;若否,则继续执行步骤S202。
为了保证高权限进程的测试用例全部执行完成,需要判断测试用例是否执行完成。如果经判断得到测试用例已经执行完成,则该方法结束;如果经判断得到测试用例没有执行完成,则继续执行步骤S202。
步骤S207,调用测试用例对应的系统接口。
如果经步骤S203判断得到测试用例对应的系统接口调用不需要指定用户执行,则直接调用测试用例对应的系统接口。在完成步骤S207之后,执行步骤S206。
根据本实施例提供的指定用户对高权限进程自动化测试的方法,在高权限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过提权工具,使高权限进程具有其所要求的用户测试权限,并在执行高权限进程的测试用例的过程中,通过调用win32security.LogonUser等系统接口实现模拟指定用户,并以模拟的指定用户调用需要指定用户执行的测试用例对应的系统接口。本发明提供的技术方案解决了指定用户对高权限进程自动化测试的问题,不仅简单有效地使高权限进程具有其所要求的用户测试权限,而且还通过调用win32security.LogonUser等系统接口实现模拟指定用户,避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
图3示出了根据本发明一个实施例的指定用户对高权限进程自动化测试的装置的功能结构示意图,其中,高权限进程要求的用户测试权限高于指定用户的测试权限,如图3所示,该装置包括:提权模块310、用例执行模块320、第一判断模块330和模拟调用模块340。
提权模块310,适于在以指定用户登录系统后,将提权工具复制到系统目录下,使高权限进程具有其所要求的用户测试权限。
例如,当将PsExec.exe工具作为提权工具时,提权模块310将PsExec.exe工具复制到系统目录下,例如system32系统目录下,使高权限进程具有其所要求的用户测试权限。
另外,当高权限进程所要求的用户测试权限为System用户权限时,提权模块310还可以通过以sc指令为基础的脚本创建一个交互式服务,其中所有的服务都是由System用户所创建和运行的,从而使高权限进程具有其所要求的用户测试权限。
用例执行模块320,适于执行高权限进程的测试用例。
在使高权限进程具有其所要求的用户测试权限之后,用例执行模块320开始执行高权限进程的测试用例。
第一判断模块330,适于判断测试用例对应的系统接口调用是否需要指定用户执行。
由于一些特殊的测试条件不仅要求用户测试权限高于指定用户的测试权限,而且测试逻辑还会要求指定用户去执行自动化测试,所以为了成功执行测试用例对应的系统接口调用,需要第一判断模块330对测试用例对应的系统接口调用是否需要指定用户执行进行判断。
例如,第一判断模块330所判断的测试用例对应的系统接口可以包括以下系统接口中的一个或多个:RegOpenKey打开注册表、RegOpenKeyEx打开注册表、RegCreateKey添加注册表项、RegCreateKeyEx添加注册表项、RegQueryValue读取注册表项值、RegQueryValueEx读取注册表项值、RegSetValue设置注册表项值、RegSetValueEx设置注册表项值、RegDeleteKey删除注册表项、RegDeleteKeyEx删除注册表项、RegDeleteValue删除注册表值、RegCloseKey关闭注册表、SHGetDesktopFolder得到桌面目录、SHGetFolderPath获取系统文件夹路径以及SHGetSpecialFolderLocation获取系统特殊路径。
如果经第一判断模块330判断得到测试用例对应的系统接口调用需要指定用户执行,则启动模拟调用模块340。
模拟调用模块340,适于在第一判断模块330判断出测试用例对应的系统接口调用需要指定用户执行的情况下,模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口。
根据本实施例提供的指定用户对高权限进程自动化测试的装置,在高权限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过提权模块使高权限进程具有其所要求的用户测试权限,并在用例执行模块执行高权限进程的测试用例的过程中,对于第一判断模块判断出需要指定用户执行的测试用例对应的系统接口,模拟调用模块通过模拟的指定用户调用。该装置解决了指定用户对高权限进程自动化测试的问题,不仅简单有效地使高权限进程具有其所要求的用户测试权限,而且还避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
图4示出了根据本发明另一个实施例的指定用户对高权限进程自动化测试的装置的功能结构示意图,其中,高权限进程要求的用户测试权限高于指定用户的测试权限,如图4所示,该装置包括:提权模块410、用例执行模块420、第一判断模块430、模拟调用模块440和第二判断模块450。
提权模块410,适于在以指定用户登录系统后,将提权工具复制到系统目录下,运行命令提示符,接收指定用户输入的命令语句,触发运行提权工具。
具体地,提权模块410可将PsExec.exe工具作为提权工具,需要将PsExec.exe工具复制到系统目录下,如system32系统目录下,运行CMD命令提示符,接收指定用户输入的命令语句,其中,该命令语句包括高权限进程的名称。
例如,需要运行的高权限进程是:D:\run.bat,则提权模块410所接收的指定用户输入的命令语句为psexec-i-d-s/accepteula D:\run.bat;又如,需要运行的高权限进程是:1.exe,则提权模块410所接收的指定用户输入的命令语句为psexec-i-d-s/accepteula1.exe。
提权模块410进一步适于:根据对话框中显示消息的点击命令,触发运行提权工具。
在提权模块410接收指定用户输入的命令语句之后,还需要触发运行提权工具,具体地,可以根据对话框中显示消息的点击命令,触发运行提权工具,从而使高权限进程具有其所要求的用户测试权限。其中,对话框为接收命令语句后弹出的交互式服务对话框。
用例执行模块420,适于执行高权限进程的测试用例。
在使高权限进程具有其所要求的用户测试权限之后,用例执行模块420开始执行高权限进程的测试用例。
第一判断模块430,适于判断测试用例对应的系统接口调用是否需要指定用户执行。
由于在一些特殊的测试条件下,测试逻辑还会要求指定用户去执行自动化测试,所以为了成功执行测试用例对应的系统接口调用,需要第一判断模块430对测试用例对应的系统接口调用是否需要指定用户执行进行判断。
在前一个实施例装置中,已列举了第一判断模块所判断的测试用例对应的系统接口包括的内容,此处不再赘述。
如果经第一判断模块430判断得到测试用例对应的系统接口调用需要指定用户执行,则启动模拟调用模块440;如果经第一判断模块430判断得到测试用例对应的系统接口调用不需要指定用户执行,则启动第二判断模块450。
模拟调用模块440,适于在第一判断模块判断出测试用例对应的系统接口调用需要指定用户执行的情况下,调用win32security.LogonUser系统接口,获取模拟指定用户的令牌;调用win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户,通过模拟的指定用户调用测试用例对应的系统接口;待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
在获取模拟指定用户的令牌之后,通过调用win32security.ImpersonateLoggedOnUser系统接口,模拟指定用户,然后通过模拟的指定用户调用测试用例对应的系统接口。在模拟指定用户完成上述测试用例对应的系统接口的调用后,为了保证正常调用其他的测试用例对应的系统接口,需要调用RevertToSelf系统接口来取消所模拟的指定用户。
第二判断模块450,适于判断测试用例是否执行完成;若否,则触发用例执行模块420继续执行测试用例。
为了保证高权限进程的测试用例全部执行完成,需要第二判断模块450判断测试用例是否执行完成。如果经第二判断模块450判断得到测试用例没有执行完成,则继续启动用例执行模块420。
根据本实施例提供的指定用户对高权限进程自动化测试的装置,在高权限进程要求的用户测试权限高于指定用户的测试权限的情况下,通过提权模块使高权限进程具有其所要求的用户测试权限,并在用例执行模块执行高权限进程的测试用例的过程中,对于第一判断模块判断出需要指定用户执行的测试用例对应的系统接口,模拟调用模块通过模拟的指定用户调用,为了保证高权限进程的测试用例全部执行完成,还设置有第二判断模块用于判断测试用例是否执行完成。该装置解决了指定用户对高权限进程自动化测试的问题,不仅简单有效地使高权限进程具有其所要求的用户测试权限,而且还通过调用win32security.LogonUser等系统接口实现模拟指定用户,避免了提权后系统接口调用失败,丰富了自动化测试场景,优化了自动化测试方法。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:
A1、一种指定用户对高权限进程自动化测试的方法,所述高权限进程要求的用户测试权限高于所述指定用户的测试权限,所述方法包括:
在以所述指定用户登录系统后,将提权工具复制到系统目录下,使所述高权限进程具有其所要求的用户测试权限;
执行所述高权限进程的测试用例;
判断所述测试用例对应的系统接口调用是否需要指定用户执行;若是,则模拟所述指定用户,通过模拟的指定用户调用所述测试用例对应的系统接口。
A2、根据A1所述的方法,其特征在于,将提权工具复制到系统目录下,使所述高权限进程具有其所要求的用户测试权限进一步包括:将提权工具复制到系统目录下,运行命令提示符,接收所述指定用户输入的命令语句,触发运行所述提权工具;所述命令语句包括所述高权限进程的名称。
A3、根据A2所述的方法,其特征在于,触发运行所述提权工具进一步包括:根据对话框中显示消息的点击命令,触发运行所述提权工具;所述对话框为接收所述命令语句后弹出的交互式服务对话框。
A4、根据A1-A3任一项所述的方法,其特征在于,模拟所述指定用户进一步包括:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
A5、根据A1-A4任一项所述的方法,其特征在于,所述方法还包括:判断所述测试用例是否执行完成;若否,则继续执行所述测试用例。
A6、根据A1-A5任一项所述的方法,其特征在于,所述测试用例对应的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。
B7、一种指定用户对高权限进程自动化测试的装置,所述高权限进程要求的用户测试权限高于所述指定用户的测试权限,所述装置包括:
提权模块,适于在以所述指定用户登录系统后,将提权工具复制到系统目录下,使所述高权限进程具有其所要求的用户测试权限;
用例执行模块,适于执行所述高权限进程的测试用例;
第一判断模块,适于判断所述测试用例对应的系统接口调用是否需要指定用户执行;
模拟调用模块,适于在所述第一判断模块判断出所述测试用例对应的系统接口调用需要指定用户执行的情况下,模拟所述指定用户,通过模拟的指定用户调用所述测试用例对应的系统接口。
B8、根据B7所述的装置,其特征在于,所述提权模块进一步适于:将提权工具复制到系统目录下,运行命令提示符,接收所述指定用户输入的命令语句,触发运行所述提权工具;所述命令语句包括所述高权限进程的名称。
B9、根据B8所述的装置,其特征在于,所述提权模块还适于:根据对话框中显示消息的点击命令,触发运行所述提权工具;所述对话框为接收所述命令语句后弹出的交互式服务对话框。
B10、根据B7-B9任一项所述的装置,其特征在于,所述模拟调用模块进一步适于:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
B11、根据B7-B10任一项所述的装置,其特征在于,所述装置还包括:第二判断模块,适于判断所述测试用例是否执行完成;若否,则触发所述用例执行模块继续执行所述测试用例。
B12、根据B7-B11任一项所述的装置,其特征在于,所述测试用例对应的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。
Claims (12)
1.一种指定用户对高权限进程自动化测试的方法,所述高权限进程要求的用户测试权限高于所述指定用户的测试权限,所述方法包括:
在以所述指定用户登录系统后,将提权工具复制到系统目录下,使所述高权限进程具有其所要求的用户测试权限;
执行所述高权限进程的测试用例;
判断所述测试用例对应的系统接口调用是否需要指定用户执行;若是,则模拟所述指定用户,通过模拟的指定用户调用所述测试用例对应的系统接口。
2.根据权利要求1所述的方法,其特征在于,将提权工具复制到系统目录下,使所述高权限进程具有其所要求的用户测试权限进一步包括:将提权工具复制到系统目录下,运行命令提示符,接收所述指定用户输入的命令语句,触发运行所述提权工具;所述命令语句包括所述高权限进程的名称。
3.根据权利要求2所述的方法,其特征在于,触发运行所述提权工具进一步包括:根据对话框中显示消息的点击命令,触发运行所述提权工具;所述对话框为接收所述命令语句后弹出的交互式服务对话框。
4.根据权利要求1-3任一项所述的方法,其特征在于,模拟所述指定用户进一步包括:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:判断所述测试用例是否执行完成;若否,则继续执行所述测试用例。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述测试用例对应的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。
7.一种指定用户对高权限进程自动化测试的装置,所述高权限进程要求的用户测试权限高于所述指定用户的测试权限,所述装置包括:
提权模块,适于在以所述指定用户登录系统后,将提权工具复制到系统目录下,使所述高权限进程具有其所要求的用户测试权限;
用例执行模块,适于执行所述高权限进程的测试用例;
第一判断模块,适于判断所述测试用例对应的系统接口调用是否需要指定用户执行;
模拟调用模块,适于在所述第一判断模块判断出所述测试用例对应的系统接口调用需要指定用户执行的情况下,模拟所述指定用户,通过模拟的指定用户调用所述测试用例对应的系统接口。
8.根据权利要求7所述的装置,其特征在于,所述提权模块进一步适于:将提权工具复制到系统目录下,运行命令提示符,接收所述指定用户输入的命令语句,触发运行所述提权工具;所述命令语句包括所述高权限进程的名称。
9.根据权利要求8所述的装置,其特征在于,所述提权模块还适于:根据对话框中显示消息的点击命令,触发运行所述提权工具;所述对话框为接收所述命令语句后弹出的交互式服务对话框。
10.根据权利要求7-9任一项所述的装置,其特征在于,所述模拟调用模块进一步适于:
调用win32security.LogonUser系统接口,获取模拟所述指定用户的令牌;
调用win32security.ImpersonateLoggedOnUser系统接口,模拟所述指定用户;
待RevertToSelf系统接口被调用时,取消所模拟的指定用户。
11.根据权利要求7-9任一项所述的装置,其特征在于,所述装置还包括:第二判断模块,适于判断所述测试用例是否执行完成;若否,则触发所述用例执行模块继续执行所述测试用例。
12.根据权利要求7-9任一项所述的装置,其特征在于,所述测试用例对应的系统接口包括以下系统接口中的一个或多个:打开注册表、添加注册表项、读取注册表项值、设置注册表项值、删除注册表项、删除注册表值、关闭注册表、得到桌面目录、获取系统文件夹路径以及获取系统特殊路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510148578.6A CN104699618B (zh) | 2015-03-31 | 2015-03-31 | 指定用户对高权限进程自动化测试的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510148578.6A CN104699618B (zh) | 2015-03-31 | 2015-03-31 | 指定用户对高权限进程自动化测试的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104699618A CN104699618A (zh) | 2015-06-10 |
CN104699618B true CN104699618B (zh) | 2017-04-26 |
Family
ID=53346771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510148578.6A Active CN104699618B (zh) | 2015-03-31 | 2015-03-31 | 指定用户对高权限进程自动化测试的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699618B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159833A (zh) * | 2015-09-30 | 2015-12-16 | 努比亚技术有限公司 | 自动化测试装置及方法 |
CN109241722A (zh) * | 2018-09-25 | 2019-01-18 | 上海盛付通电子支付服务有限公司 | 用于获取信息的方法、电子设备和计算机可读介质 |
CN112799952A (zh) * | 2021-02-04 | 2021-05-14 | 上海云轴信息科技有限公司 | 用于自动测试云平台账户体系权限的方法与设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346870B2 (en) * | 2009-05-06 | 2013-01-01 | Microsoft Corporation | Low-privilege debug channel |
CN103246833A (zh) * | 2012-02-01 | 2013-08-14 | 精品科技股份有限公司 | 低权限模式下执行高权限软件的方法 |
CN103853567A (zh) * | 2012-12-03 | 2014-06-11 | 中兴通讯股份有限公司 | 终端软件的安装方法及装置 |
CN104268471A (zh) * | 2014-09-10 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
-
2015
- 2015-03-31 CN CN201510148578.6A patent/CN104699618B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8346870B2 (en) * | 2009-05-06 | 2013-01-01 | Microsoft Corporation | Low-privilege debug channel |
CN103246833A (zh) * | 2012-02-01 | 2013-08-14 | 精品科技股份有限公司 | 低权限模式下执行高权限软件的方法 |
CN103853567A (zh) * | 2012-12-03 | 2014-06-11 | 中兴通讯股份有限公司 | 终端软件的安装方法及装置 |
CN104268471A (zh) * | 2014-09-10 | 2015-01-07 | 珠海市君天电子科技有限公司 | 一种检测面向返程的编程攻击的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104699618A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762717B2 (en) | Automatically generating testing code for a software application | |
Felt et al. | Android permissions demystified | |
Mouelhi et al. | A model-based framework for security policy specification, deployment and testing | |
Agten et al. | JSand: complete client-side sandboxing of third-party JavaScript without browser modifications | |
Godefroid | Micro execution | |
US6941546B2 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
Shan et al. | Finding resume and restart errors in android applications | |
CN104699618B (zh) | 指定用户对高权限进程自动化测试的方法及装置 | |
CN105893839A (zh) | 一种安卓应用的广播的代理处理方法和装置 | |
US8539404B2 (en) | Functional simulation redundancy reduction by state comparison and pruning | |
Heap | Ansible: from beginner to pro | |
Kim et al. | {FuzzOrigin}: Detecting {UXSS} vulnerabilities in browsers through origin fuzzing | |
Wi et al. | Diffcsp: Finding browser bugs in content security policy enforcement through differential testing | |
US7793350B2 (en) | Apparatus, system, and method for simulated access to restricted computing resources | |
CN106648797A (zh) | 安装测试软件的方法、系统、测试服务器及共享服务器 | |
Zhang et al. | Grafter: Transplantation and differential testing for clones | |
CN113127022A (zh) | 一种代码的自动更新方法及装置、计算机设备、存储介质 | |
Wolf et al. | Automated testing for continuous delivery pipelines | |
Chin | Helping developers construct secure mobile applications | |
Sankarapandian | Detecting Exploitable Vulnerabilities in Android Applications | |
Farcic | The DevOps 2.4 Toolkit: Continuous Deployment to Kubernetes: Continuously Deploying Applications With Jenkins to a Kubernetes Cluster | |
Freeman et al. | Mastering Ansible: Automate configuration management and overcome deployment challenges with Ansible | |
Jamrozik | Mining sandboxes | |
Kilaru | Improving techniques for SQL injection defenses | |
JP5279657B2 (ja) | プログラム検査装置及び該装置としてコンピュータを動作させるプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220725 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |